diff --git a/.gitignore b/.gitignore index a0c6cfa6..a561b9e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ +**/__pycache__/ +**/.speakeasy/temp/ +**/.speakeasy/logs/ +.env +.env.local .venv/ pyrightconfig.json .speakeasy/reports diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index be0e647e..a416e39e 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,785 +1,3021 @@ lockVersion: 2.0.0 id: 986026b6-d725-4b86-9c4d-67f6e6904a30 management: - docChecksum: ace15c0d1b81b595278d710d80bb795b + docChecksum: 517152d5b81590618ea77153a814c15a docVersion: "2018-02-08" - speakeasyVersion: 1.521.1 - generationVersion: 2.558.5 - releaseVersion: 4.0.0 - configChecksum: 2bfc606265cf61a2b40af4e9c57595e5 + speakeasyVersion: 1.791.0 + generationVersion: 2.924.0 + releaseVersion: 5.0.0 + configChecksum: 44d4d4778f8531a7bc7e4559ee6b1066 repoURL: https://github.com/goshippo/shippo-python-sdk.git installationURL: https://github.com/goshippo/shippo-python-sdk.git published: true +persistentEdits: + generation_id: 37916bba-2581-49f1-ae11-00b7109c3a76 + pristine_commit_hash: 6fde7f803059c6e4e03d8964074edcf36bf45d34 + pristine_tree_hash: 38d1e01cd730a628d80cb5687772bda6f4a63b88 features: python: - additionalDependencies: 1.0.0 - constsAndDefaults: 1.0.5 - core: 5.12.4 + additionalDependencies: 1.1.0 + constsAndDefaults: 1.0.7 + core: 6.0.34 + decimal: 1.0.0 defaultEnabledRetries: 0.2.0 - enumUnions: 0.1.0 - envVarSecurityUsage: 0.3.2 + enumUnions: 0.1.1 + envVarSecurityUsage: 0.3.3 flattening: 3.1.1 - globalSecurity: 3.0.3 + globalSecurity: 3.0.7 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 - globalServerURLs: 3.1.0 + globalServerURLs: 3.2.1 globals: 3.0.0 hiddenGlobals: 1.0.0 includes: 3.0.0 - nameOverrides: 3.0.1 - nullables: 1.0.1 - responseFormat: 1.0.1 - retries: 3.0.2 - sdkHooks: 1.0.1 - unions: 3.0.4 + nameOverrides: 3.0.3 + nullables: 1.0.2 + responseFormat: 1.1.0 + retries: 3.0.7 + sdkHooks: 1.3.0 + unions: 3.1.7 webhooks: 2.0.0 -generatedFiles: - - .gitattributes - - .python-version - - .vscode/settings.json - - USAGE.md - - docs/models/components/address.md - - docs/models/components/addresscompletecreaterequest.md - - docs/models/components/addresscreaterequest.md - - docs/models/components/addressimporter.md - - docs/models/components/addresspaginatedlist.md - - docs/models/components/addressreturn.md - - docs/models/components/addressvalidationresults.md - - docs/models/components/addressvalidationresultsmessage.md - - docs/models/components/addressvalidationresultsmessagecodeenum.md - - docs/models/components/addressvalidationresultsmessagesourceenum.md - - docs/models/components/alcohol.md - - docs/models/components/ancillaryendorsement.md - - docs/models/components/attribute.md - - docs/models/components/authentication.md - - docs/models/components/batch.md - - docs/models/components/batchcreaterequest.md - - docs/models/components/batchshipment.md - - docs/models/components/batchshipmentcreaterequest.md - - docs/models/components/batchshipmentpaginatedlist.md - - docs/models/components/batchshipmentstatus.md - - docs/models/components/batchstatus.md - - docs/models/components/billing.md - - docs/models/components/billingtype.md - - docs/models/components/buildinglocationtype.md - - docs/models/components/buildingtype.md - - docs/models/components/carrieraccount.md - - docs/models/components/carrieraccountbase.md - - docs/models/components/carrieraccountbaseparameters.md - - docs/models/components/carrieraccountcanadapostcreateparameters.md - - docs/models/components/carrieraccountcanadapostcreaterequest.md - - docs/models/components/carrieraccountchronopostcreaterequest.md - - docs/models/components/carrieraccountchronopostcreaterequestparameters.md - - docs/models/components/carrieraccountcolissimocreaterequest.md - - docs/models/components/carrieraccountcolissimocreaterequestparameters.md - - docs/models/components/carrieraccountcorreoscreaterequest.md - - docs/models/components/carrieraccountcorreoscreaterequestparameters.md - - docs/models/components/carrieraccountdeutschepostcreaterequest.md - - docs/models/components/carrieraccountdeutschepostcreaterequestparameters.md - - docs/models/components/carrieraccountdhlexpresscreaterequest.md - - docs/models/components/carrieraccountdhlexpresscreaterequestparameters.md - - docs/models/components/carrieraccountdpddecreaterequest.md - - docs/models/components/carrieraccountdpddecreaterequestparameters.md - - docs/models/components/carrieraccountdpdukcreaterequest.md - - docs/models/components/carrieraccountdpdukcreaterequestparameters.md - - docs/models/components/carrieraccountfedexcreaterequest.md - - docs/models/components/carrieraccountfedexcreaterequestparameters.md - - docs/models/components/carrieraccounthermesukcreaterequest.md - - docs/models/components/carrieraccounthermesukcreaterequestparameters.md - - docs/models/components/carrieraccountmondialrelaycreaterequest.md - - docs/models/components/carrieraccountmondialrelaycreaterequestparameters.md - - docs/models/components/carrieraccountpaginatedlist.md - - docs/models/components/carrieraccountparameters.md - - docs/models/components/carrieraccountposteitalianecreaterequest.md - - docs/models/components/carrieraccountposteitalianecreaterequestparameters.md - - docs/models/components/carrieraccountregistrationstatus.md - - docs/models/components/carrieraccountsendlecreaterequest.md - - docs/models/components/carrieraccountsendlecreaterequestparameters.md - - docs/models/components/carrieraccountservicelevel.md - - docs/models/components/carrieraccountupscreaterequest.md - - docs/models/components/carrieraccountupscreaterequestparameters.md - - docs/models/components/carrieraccountuspscreaterequest.md - - docs/models/components/carrieraccountuspscreaterequestparameters.md - - docs/models/components/carrieraccountwithextrainfo.md - - docs/models/components/carrieraccountwithextrainfoparameters.md - - docs/models/components/carrieraccountwithextrainfostatus.md - - docs/models/components/carrieraccountwithextrainfotype.md - - docs/models/components/carrierparceltemplate.md - - docs/models/components/carrierparceltemplatelist.md - - docs/models/components/carriersenum.md - - docs/models/components/cod.md - - docs/models/components/connectexistingownaccountrequest.md - - docs/models/components/connectexistingownaccountrequestparameters.md - - docs/models/components/corerate.md - - docs/models/components/createdby.md - - docs/models/components/customerreference.md - - docs/models/components/customsdeclaration.md - - docs/models/components/customsdeclarationaddress.md - - docs/models/components/customsdeclarationb13afilingoptionenum.md - - docs/models/components/customsdeclarationcontentstypeenum.md - - docs/models/components/customsdeclarationcreaterequest.md - - docs/models/components/customsdeclarationcreaterequestaddress.md - - docs/models/components/customsdeclarationcreaterequestdutiespayor.md - - docs/models/components/customsdeclarationcreaterequesttype.md - - docs/models/components/customsdeclarationdutiespayor.md - - docs/models/components/customsdeclarationeelpfcenum.md - - docs/models/components/customsdeclarationincotermenum.md - - docs/models/components/customsdeclarationnondeliveryoptionenum.md - - docs/models/components/customsdeclarationpaginatedlist.md - - docs/models/components/customsdeclarationtype.md - - docs/models/components/customsdeclarationunion.md - - docs/models/components/customsexporteridentification.md - - docs/models/components/customsinvoicedcharges.md - - docs/models/components/customsitem.md - - docs/models/components/customsitemcreaterequest.md - - docs/models/components/customsitempaginatedlist.md - - docs/models/components/customstaxidentification.md - - docs/models/components/customstaxidentificationtype.md - - docs/models/components/dangerousgoodsbiologicalmaterial.md - - docs/models/components/dangerousgoodscode.md - - docs/models/components/dangerousgoodslithiumbatteries.md - - docs/models/components/dangerousgoodsobject.md - - docs/models/components/defaultparceltemplate.md - - docs/models/components/defaultparceltemplateupdaterequest.md - - docs/models/components/departmentnumber.md - - docs/models/components/distanceunitenum.md - - docs/models/components/dryice.md - - docs/models/components/fedexconnectexistingownaccountparameters.md - - docs/models/components/instanttransactioncreaterequest.md - - docs/models/components/insurance.md - - docs/models/components/insuranceprovider.md - - docs/models/components/invoicenumber.md - - docs/models/components/labelfiletype.md - - docs/models/components/labelfiletypeenum.md - - docs/models/components/latitude.md - - docs/models/components/lineitem.md - - docs/models/components/lineitembase.md - - docs/models/components/liverate.md - - docs/models/components/liveratecreaterequest.md - - docs/models/components/liveratecreaterequestaddressfrom.md - - docs/models/components/liveratecreaterequestaddressto.md - - docs/models/components/liveratecreaterequestparcel.md - - docs/models/components/liveratepaginatedlist.md - - docs/models/components/location.md - - docs/models/components/longitude.md - - docs/models/components/manifest.md - - docs/models/components/manifestcreaterequest.md - - docs/models/components/manifestcreaterequestaddressfrom.md - - docs/models/components/manifestpaginatedlist.md - - docs/models/components/manifeststatus.md - - docs/models/components/objectinfo.md - - docs/models/components/objectresults.md - - docs/models/components/objectstate.md - - docs/models/components/objectstateenum.md - - docs/models/components/order.md - - docs/models/components/ordercreaterequest.md - - docs/models/components/orderpaginatedlist.md - - docs/models/components/ordershopappenum.md - - docs/models/components/orderstatusenum.md - - docs/models/components/ordertransaction.md - - docs/models/components/parcel.md - - docs/models/components/parcelcreatefromtemplaterequest.md - - docs/models/components/parcelcreaterequest.md - - docs/models/components/parcelextra.md - - docs/models/components/parcelinsurance.md - - docs/models/components/parcelinsuranceprovider.md - - docs/models/components/parcelpaginatedlist.md - - docs/models/components/parceltemplatearamexaustraliaenum.md - - docs/models/components/parceltemplatedhlecommerceenum.md - - docs/models/components/parceltemplatedpdukenum.md - - docs/models/components/parceltemplateenumset.md - - docs/models/components/parceltemplatefedexenum.md - - docs/models/components/parceltemplateupsenum.md - - docs/models/components/parceltemplateuspsenum.md - - docs/models/components/paymentmethod.md - - docs/models/components/pickup.md - - docs/models/components/pickupbase.md - - docs/models/components/pickupstatus.md - - docs/models/components/ponumber.md - - docs/models/components/preferreddeliverytimeframe.md - - docs/models/components/rate.md - - docs/models/components/ratepaginatedlist.md - - docs/models/components/rateunion.md - - docs/models/components/recipienttype.md - - docs/models/components/refund.md - - docs/models/components/refundpaginatedlist.md - - docs/models/components/refundrequestbody.md - - docs/models/components/refundstatus.md - - docs/models/components/responsemessage.md - - docs/models/components/returnservicetype.md - - docs/models/components/rmanumber.md - - docs/models/components/security.md - - docs/models/components/servicegroup.md - - docs/models/components/servicegroupaccountandservicelevel.md - - docs/models/components/servicegroupcreaterequest.md - - docs/models/components/servicegrouptypeenum.md - - docs/models/components/servicegroupupdaterequest.md - - docs/models/components/servicelevel.md - - docs/models/components/servicelevelairterraenum.md - - docs/models/components/servicelevelapcpostalenum.md - - docs/models/components/servicelevelapgenum.md - - docs/models/components/servicelevelaramexaustraliaenum.md - - docs/models/components/servicelevelasendiaenum.md - - docs/models/components/servicelevelaustraliapostenum.md - - docs/models/components/servicelevelbettertrucksenum.md - - docs/models/components/servicelevelcanadapostenum.md - - docs/models/components/servicelevelcdlenum.md - - docs/models/components/servicelevelchronopostenum.md - - docs/models/components/servicelevelcolissimoenum.md - - docs/models/components/servicelevelcorreosespanaenum.md - - docs/models/components/serviceleveldeutschepostenum.md - - docs/models/components/serviceleveldhlecommerceenum.md - - docs/models/components/serviceleveldhlexpressenum.md - - docs/models/components/serviceleveldhlgermanyenum.md - - docs/models/components/serviceleveldpddeenum.md - - docs/models/components/serviceleveldpdukenum.md - - docs/models/components/servicelevelenumset.md - - docs/models/components/servicelevelepostglobalenum.md - - docs/models/components/servicelevelevriukenum.md - - docs/models/components/servicelevelfedexenum.md - - docs/models/components/servicelevelglobegisticsenum.md - - docs/models/components/servicelevelglsusenum.md - - docs/models/components/serviceleveljitsuenum.md - - docs/models/components/servicelevellasershipenum.md - - docs/models/components/servicelevellsoenum.md - - docs/models/components/servicelevelmondialrelayenum.md - - docs/models/components/servicelevelontracenum.md - - docs/models/components/servicelevelparcelforceenum.md - - docs/models/components/servicelevelpostitalianeenum.md - - docs/models/components/servicelevelpurolatorenum.md - - docs/models/components/servicelevelroyalmailenum.md - - docs/models/components/servicelevelsendleenum.md - - docs/models/components/servicelevelswyftenum.md - - docs/models/components/serviceleveludsenum.md - - docs/models/components/servicelevelupsenum.md - - docs/models/components/serviceleveluspsenum.md - - docs/models/components/servicelevelvehoenum.md - - docs/models/components/servicelevelwithparent.md - - docs/models/components/shipment.md - - docs/models/components/shipmentcreaterequest.md - - docs/models/components/shipmentcreaterequestaddressfrom.md - - docs/models/components/shipmentcreaterequestaddressto.md - - docs/models/components/shipmentcreaterequestparcel.md - - docs/models/components/shipmentextra.md - - docs/models/components/shipmentextralasershipattributesenum.md - - docs/models/components/shipmentextrareturnservicetypelasershipenum.md - - docs/models/components/shipmentextrareturnservicetypeupsenum.md - - docs/models/components/shipmentpaginatedlist.md - - docs/models/components/shipmentstatus.md - - docs/models/components/shippoaccount.md - - docs/models/components/shippoaccountpaginatedlist.md - - docs/models/components/shippoaccountupdaterequest.md - - docs/models/components/signatureconfirmation.md - - docs/models/components/track.md - - docs/models/components/trackingstatus.md - - docs/models/components/trackingstatusenum.md - - docs/models/components/trackingstatuslocationbase.md - - docs/models/components/trackingstatussubstatus.md - - docs/models/components/tracksrequest.md - - docs/models/components/transaction.md - - docs/models/components/transactioncreaterequest.md - - docs/models/components/transactionpaginatedlist.md - - docs/models/components/transactionstatusenum.md - - docs/models/components/upsconnectexistingownaccountparameters.md - - docs/models/components/upsreferencefields.md - - docs/models/components/userparceltemplate.md - - docs/models/components/userparceltemplatecreaterequest.md - - docs/models/components/userparceltemplatelist.md - - docs/models/components/userparceltemplateupdaterequest.md - - docs/models/components/userparceltemplatewithcarriertemplatecreaterequest.md - - docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md - - docs/models/components/webhook.md - - docs/models/components/webhookeventtypeenum.md - - docs/models/components/webhookpaginatedlist.md - - docs/models/components/webhookpayload.md - - docs/models/components/webhookpayloadbatch.md - - docs/models/components/webhookpayloadtrack.md - - docs/models/components/webhookpayloadtransaction.md - - docs/models/components/webhookupdaterequest.md - - docs/models/components/weightunitenum.md - - docs/models/errors/badrequesterror.md - - docs/models/errors/notfounderror.md - - docs/models/errors/unauthorizederror.md - - docs/models/internal/globals.md - - docs/models/operations/addshipmentstobatchglobals.md - - docs/models/operations/addshipmentstobatchrequest.md - - docs/models/operations/carrier.md - - docs/models/operations/createaddressglobals.md - - docs/models/operations/createbatchglobals.md - - docs/models/operations/createcarrieraccountglobals.md - - docs/models/operations/createcustomsdeclarationglobals.md - - docs/models/operations/createcustomsitemglobals.md - - docs/models/operations/createliverateglobals.md - - docs/models/operations/createmanifestglobals.md - - docs/models/operations/createorderglobals.md - - docs/models/operations/createparcelglobals.md - - docs/models/operations/createparcelrequest.md - - docs/models/operations/createpickupglobals.md - - docs/models/operations/createrefundglobals.md - - docs/models/operations/createservicegroupglobals.md - - docs/models/operations/createshipmentglobals.md - - docs/models/operations/createshippoaccountglobals.md - - docs/models/operations/createtrackglobals.md - - docs/models/operations/createtransactionglobals.md - - docs/models/operations/createtransactionrequest.md - - docs/models/operations/createuserparceltemplateglobals.md - - docs/models/operations/deletedefaultparceltemplateglobals.md - - docs/models/operations/deletedefaultparceltemplaterequest.md - - docs/models/operations/deleteservicegroupglobals.md - - docs/models/operations/deleteservicegrouprequest.md - - docs/models/operations/deleteuserparceltemplateglobals.md - - docs/models/operations/deleteuserparceltemplaterequest.md - - docs/models/operations/deletewebhookrequest.md - - docs/models/operations/getaddressglobals.md - - docs/models/operations/getaddressrequest.md - - docs/models/operations/getbatchglobals.md - - docs/models/operations/getbatchrequest.md - - docs/models/operations/getcarrieraccountglobals.md - - docs/models/operations/getcarrieraccountrequest.md - - docs/models/operations/getcarrierparceltemplateglobals.md - - docs/models/operations/getcarrierparceltemplaterequest.md - - docs/models/operations/getcarrierregistrationstatusglobals.md - - docs/models/operations/getcarrierregistrationstatusrequest.md - - docs/models/operations/getcustomsdeclarationglobals.md - - docs/models/operations/getcustomsdeclarationrequest.md - - docs/models/operations/getcustomsitemglobals.md - - docs/models/operations/getcustomsitemrequest.md - - docs/models/operations/getdefaultparceltemplateglobals.md - - docs/models/operations/getdefaultparceltemplaterequest.md - - docs/models/operations/getmanifestglobals.md - - docs/models/operations/getmanifestrequest.md - - docs/models/operations/getorderglobals.md - - docs/models/operations/getorderrequest.md - - docs/models/operations/getparcelglobals.md - - docs/models/operations/getparcelrequest.md - - docs/models/operations/getrateglobals.md - - docs/models/operations/getraterequest.md - - docs/models/operations/getrefundglobals.md - - docs/models/operations/getrefundrequest.md - - docs/models/operations/getshipmentglobals.md - - docs/models/operations/getshipmentrequest.md - - docs/models/operations/getshippoaccountglobals.md - - docs/models/operations/getshippoaccountrequest.md - - docs/models/operations/gettrackglobals.md - - docs/models/operations/gettrackrequest.md - - docs/models/operations/gettransactionglobals.md - - docs/models/operations/gettransactionrequest.md - - docs/models/operations/getuserparceltemplateglobals.md - - docs/models/operations/getuserparceltemplaterequest.md - - docs/models/operations/getwebhookrequest.md - - docs/models/operations/include.md - - docs/models/operations/initiateoauth2signinglobals.md - - docs/models/operations/initiateoauth2signinrequest.md - - docs/models/operations/initiateoauth2signinresponse.md - - docs/models/operations/listaddressesglobals.md - - docs/models/operations/listaddressesrequest.md - - docs/models/operations/listcarrieraccountsglobals.md - - docs/models/operations/listcarrieraccountsrequest.md - - docs/models/operations/listcarrierparceltemplatesglobals.md - - docs/models/operations/listcarrierparceltemplatesrequest.md - - docs/models/operations/listcustomsdeclarationsglobals.md - - docs/models/operations/listcustomsdeclarationsrequest.md - - docs/models/operations/listcustomsitemsglobals.md - - docs/models/operations/listcustomsitemsrequest.md - - docs/models/operations/listmanifestsglobals.md - - docs/models/operations/listmanifestsrequest.md - - docs/models/operations/listordersglobals.md - - docs/models/operations/listordersrequest.md - - docs/models/operations/listparcelsglobals.md - - docs/models/operations/listparcelsrequest.md - - docs/models/operations/listrefundsglobals.md - - docs/models/operations/listrefundsrequest.md - - docs/models/operations/listservicegroupsglobals.md - - docs/models/operations/listservicegroupsrequest.md - - docs/models/operations/listshipmentratesbycurrencycodeglobals.md - - docs/models/operations/listshipmentratesbycurrencycoderequest.md - - docs/models/operations/listshipmentratesglobals.md - - docs/models/operations/listshipmentratesrequest.md - - docs/models/operations/listshipmentsglobals.md - - docs/models/operations/listshipmentsrequest.md - - docs/models/operations/listshippoaccountsglobals.md - - docs/models/operations/listshippoaccountsrequest.md - - docs/models/operations/listtransactionsglobals.md - - docs/models/operations/listtransactionsrequest.md - - docs/models/operations/listuserparceltemplatesglobals.md - - docs/models/operations/listuserparceltemplatesrequest.md - - docs/models/operations/purchasebatchglobals.md - - docs/models/operations/purchasebatchrequest.md - - docs/models/operations/registercarrieraccountglobals.md - - docs/models/operations/registercarrieraccountrequest.md - - docs/models/operations/removeshipmentsfrombatchglobals.md - - docs/models/operations/removeshipmentsfrombatchrequest.md - - docs/models/operations/updatecarrieraccountglobals.md - - docs/models/operations/updatecarrieraccountrequest.md - - docs/models/operations/updatedefaultparceltemplateglobals.md - - docs/models/operations/updateservicegroupglobals.md - - docs/models/operations/updateshippoaccountglobals.md - - docs/models/operations/updateshippoaccountrequest.md - - docs/models/operations/updateuserparceltemplateglobals.md - - docs/models/operations/updateuserparceltemplaterequest.md - - docs/models/operations/updatewebhookrequest.md - - docs/models/operations/validateaddressglobals.md - - docs/models/operations/validateaddressrequest.md - - docs/models/utils/retryconfig.md - - docs/sdks/addresses/README.md - - docs/sdks/batches/README.md - - docs/sdks/carrieraccounts/README.md - - docs/sdks/carrierparceltemplates/README.md - - docs/sdks/customsdeclarations/README.md - - docs/sdks/customsitems/README.md - - docs/sdks/manifests/README.md - - docs/sdks/orders/README.md - - docs/sdks/parcels/README.md - - docs/sdks/pickups/README.md - - docs/sdks/rates/README.md - - docs/sdks/ratesatcheckout/README.md - - docs/sdks/refunds/README.md - - docs/sdks/servicegroups/README.md - - docs/sdks/shipments/README.md - - docs/sdks/shippo/README.md - - docs/sdks/shippoaccounts/README.md - - docs/sdks/trackingstatus/README.md - - docs/sdks/transactions/README.md - - docs/sdks/userparceltemplates/README.md - - docs/sdks/webhooks/README.md - - poetry.toml - - py.typed - - pylintrc - - pyproject.toml - - scripts/prepare_readme.py - - scripts/publish.sh - - src/shippo/__init__.py - - src/shippo/_hooks/__init__.py - - src/shippo/_hooks/sdkhooks.py - - src/shippo/_hooks/types.py - - src/shippo/_version.py - - src/shippo/addresses.py - - src/shippo/basesdk.py - - src/shippo/batches.py - - src/shippo/carrier_accounts.py - - src/shippo/carrier_parcel_templates.py - - src/shippo/customs_declarations.py - - src/shippo/customs_items.py - - src/shippo/httpclient.py - - src/shippo/manifests.py - - src/shippo/models/__init__.py - - src/shippo/models/components/__init__.py - - src/shippo/models/components/address.py - - src/shippo/models/components/addresscompletecreaterequest.py - - src/shippo/models/components/addresscreaterequest.py - - src/shippo/models/components/addressimporter.py - - src/shippo/models/components/addresspaginatedlist.py - - src/shippo/models/components/addressvalidationresults.py - - src/shippo/models/components/addressvalidationresultsmessage.py - - src/shippo/models/components/addressvalidationresultsmessagecodeenum.py - - src/shippo/models/components/addressvalidationresultsmessagesourceenum.py - - src/shippo/models/components/alcohol.py - - src/shippo/models/components/batch.py - - src/shippo/models/components/batchcreaterequest.py - - src/shippo/models/components/batchshipment.py - - src/shippo/models/components/batchshipmentcreaterequest.py - - src/shippo/models/components/batchshipmentpaginatedlist.py - - src/shippo/models/components/billing.py - - src/shippo/models/components/carrieraccount.py - - src/shippo/models/components/carrieraccountbase.py - - src/shippo/models/components/carrieraccountcanadapostcreateparameters.py - - src/shippo/models/components/carrieraccountcanadapostcreaterequest.py - - src/shippo/models/components/carrieraccountchronopostcreaterequest.py - - src/shippo/models/components/carrieraccountcolissimocreaterequest.py - - src/shippo/models/components/carrieraccountcorreoscreaterequest.py - - src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py - - src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py - - src/shippo/models/components/carrieraccountdhlexpresscreaterequestparameters.py - - src/shippo/models/components/carrieraccountdpddecreaterequest.py - - src/shippo/models/components/carrieraccountdpdukcreaterequest.py - - src/shippo/models/components/carrieraccountfedexcreaterequest.py - - src/shippo/models/components/carrieraccounthermesukcreaterequest.py - - src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py - - src/shippo/models/components/carrieraccountpaginatedlist.py - - src/shippo/models/components/carrieraccountposteitalianecreaterequest.py - - src/shippo/models/components/carrieraccountregistrationstatus.py - - src/shippo/models/components/carrieraccountsendlecreaterequest.py - - src/shippo/models/components/carrieraccountservicelevel.py - - src/shippo/models/components/carrieraccountupscreaterequest.py - - src/shippo/models/components/carrieraccountupscreaterequestparameters.py - - src/shippo/models/components/carrieraccountuspscreaterequest.py - - src/shippo/models/components/carrieraccountwithextrainfo.py - - src/shippo/models/components/carrierparceltemplate.py - - src/shippo/models/components/carrierparceltemplatelist.py - - src/shippo/models/components/carriersenum.py - - src/shippo/models/components/cod.py - - src/shippo/models/components/connectexistingownaccountrequest.py - - src/shippo/models/components/corerate.py - - src/shippo/models/components/customerreference.py - - src/shippo/models/components/customsdeclaration.py - - src/shippo/models/components/customsdeclarationb13afilingoptionenum.py - - src/shippo/models/components/customsdeclarationcontentstypeenum.py - - src/shippo/models/components/customsdeclarationcreaterequest.py - - src/shippo/models/components/customsdeclarationeelpfcenum.py - - src/shippo/models/components/customsdeclarationincotermenum.py - - src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py - - src/shippo/models/components/customsdeclarationpaginatedlist.py - - src/shippo/models/components/customsexporteridentification.py - - src/shippo/models/components/customsinvoicedcharges.py - - src/shippo/models/components/customsitem.py - - src/shippo/models/components/customsitemcreaterequest.py - - src/shippo/models/components/customsitempaginatedlist.py - - src/shippo/models/components/customstaxidentification.py - - src/shippo/models/components/dangerousgoodsbiologicalmaterial.py - - src/shippo/models/components/dangerousgoodslithiumbatteries.py - - src/shippo/models/components/dangerousgoodsobject.py - - src/shippo/models/components/defaultparceltemplate.py - - src/shippo/models/components/defaultparceltemplateupdaterequest.py - - src/shippo/models/components/departmentnumber.py - - src/shippo/models/components/distanceunitenum.py - - src/shippo/models/components/dryice.py - - src/shippo/models/components/fedexconnectexistingownaccountparameters.py - - src/shippo/models/components/instanttransactioncreaterequest.py - - src/shippo/models/components/insurance.py - - src/shippo/models/components/invoicenumber.py - - src/shippo/models/components/labelfiletypeenum.py - - src/shippo/models/components/lineitem.py - - src/shippo/models/components/lineitembase.py - - src/shippo/models/components/liverate.py - - src/shippo/models/components/liveratecreaterequest.py - - src/shippo/models/components/liveratepaginatedlist.py - - src/shippo/models/components/location.py - - src/shippo/models/components/manifest.py - - src/shippo/models/components/manifestcreaterequest.py - - src/shippo/models/components/manifestpaginatedlist.py - - src/shippo/models/components/objectstateenum.py - - src/shippo/models/components/order.py - - src/shippo/models/components/ordercreaterequest.py - - src/shippo/models/components/orderpaginatedlist.py - - src/shippo/models/components/ordershopappenum.py - - src/shippo/models/components/orderstatusenum.py - - src/shippo/models/components/parcel.py - - src/shippo/models/components/parcelcreatefromtemplaterequest.py - - src/shippo/models/components/parcelcreaterequest.py - - src/shippo/models/components/parcelextra.py - - src/shippo/models/components/parcelinsurance.py - - src/shippo/models/components/parcelpaginatedlist.py - - src/shippo/models/components/parceltemplatearamexaustraliaenum.py - - src/shippo/models/components/parceltemplatedhlecommerceenum.py - - src/shippo/models/components/parceltemplatedpdukenum.py - - src/shippo/models/components/parceltemplateenumset.py - - src/shippo/models/components/parceltemplatefedexenum.py - - src/shippo/models/components/parceltemplateupsenum.py - - src/shippo/models/components/parceltemplateuspsenum.py - - src/shippo/models/components/pickup.py - - src/shippo/models/components/pickupbase.py - - src/shippo/models/components/ponumber.py - - src/shippo/models/components/rate.py - - src/shippo/models/components/ratepaginatedlist.py - - src/shippo/models/components/refund.py - - src/shippo/models/components/refundpaginatedlist.py - - src/shippo/models/components/refundrequestbody.py - - src/shippo/models/components/responsemessage.py - - src/shippo/models/components/rmanumber.py - - src/shippo/models/components/security.py - - src/shippo/models/components/servicegroup.py - - src/shippo/models/components/servicegroupaccountandservicelevel.py - - src/shippo/models/components/servicegroupcreaterequest.py - - src/shippo/models/components/servicegrouptypeenum.py - - src/shippo/models/components/servicegroupupdaterequest.py - - src/shippo/models/components/servicelevel.py - - src/shippo/models/components/servicelevelairterraenum.py - - src/shippo/models/components/servicelevelapcpostalenum.py - - src/shippo/models/components/servicelevelapgenum.py - - src/shippo/models/components/servicelevelaramexaustraliaenum.py - - src/shippo/models/components/servicelevelasendiaenum.py - - src/shippo/models/components/servicelevelaustraliapostenum.py - - src/shippo/models/components/servicelevelbettertrucksenum.py - - src/shippo/models/components/servicelevelcanadapostenum.py - - src/shippo/models/components/servicelevelcdlenum.py - - src/shippo/models/components/servicelevelchronopostenum.py - - src/shippo/models/components/servicelevelcolissimoenum.py - - src/shippo/models/components/servicelevelcorreosespanaenum.py - - src/shippo/models/components/serviceleveldeutschepostenum.py - - src/shippo/models/components/serviceleveldhlecommerceenum.py - - src/shippo/models/components/serviceleveldhlexpressenum.py - - src/shippo/models/components/serviceleveldhlgermanyenum.py - - src/shippo/models/components/serviceleveldpddeenum.py - - src/shippo/models/components/serviceleveldpdukenum.py - - src/shippo/models/components/servicelevelenumset.py - - src/shippo/models/components/servicelevelepostglobalenum.py - - src/shippo/models/components/servicelevelevriukenum.py - - src/shippo/models/components/servicelevelfedexenum.py - - src/shippo/models/components/servicelevelglobegisticsenum.py - - src/shippo/models/components/servicelevelglsusenum.py - - src/shippo/models/components/serviceleveljitsuenum.py - - src/shippo/models/components/servicelevellasershipenum.py - - src/shippo/models/components/servicelevellsoenum.py - - src/shippo/models/components/servicelevelmondialrelayenum.py - - src/shippo/models/components/servicelevelontracenum.py - - src/shippo/models/components/servicelevelparcelforceenum.py - - src/shippo/models/components/servicelevelpostitalianeenum.py - - src/shippo/models/components/servicelevelpurolatorenum.py - - src/shippo/models/components/servicelevelroyalmailenum.py - - src/shippo/models/components/servicelevelsendleenum.py - - src/shippo/models/components/servicelevelswyftenum.py - - src/shippo/models/components/serviceleveludsenum.py - - src/shippo/models/components/servicelevelupsenum.py - - src/shippo/models/components/serviceleveluspsenum.py - - src/shippo/models/components/servicelevelvehoenum.py - - src/shippo/models/components/servicelevelwithparent.py - - src/shippo/models/components/shipment.py - - src/shippo/models/components/shipmentcreaterequest.py - - src/shippo/models/components/shipmentextra.py - - src/shippo/models/components/shipmentextralasershipattributesenum.py - - src/shippo/models/components/shipmentextrareturnservicetypelasershipenum.py - - src/shippo/models/components/shipmentextrareturnservicetypeupsenum.py - - src/shippo/models/components/shipmentpaginatedlist.py - - src/shippo/models/components/shippoaccount.py - - src/shippo/models/components/shippoaccountpaginatedlist.py - - src/shippo/models/components/shippoaccountupdaterequest.py - - src/shippo/models/components/track.py - - src/shippo/models/components/trackingstatus.py - - src/shippo/models/components/trackingstatusenum.py - - src/shippo/models/components/trackingstatuslocationbase.py - - src/shippo/models/components/trackingstatussubstatus.py - - src/shippo/models/components/tracksrequest.py - - src/shippo/models/components/transaction.py - - src/shippo/models/components/transactioncreaterequest.py - - src/shippo/models/components/transactionpaginatedlist.py - - src/shippo/models/components/transactionstatusenum.py - - src/shippo/models/components/upsconnectexistingownaccountparameters.py - - src/shippo/models/components/upsreferencefields.py - - src/shippo/models/components/userparceltemplate.py - - src/shippo/models/components/userparceltemplatecreaterequest.py - - src/shippo/models/components/userparceltemplatelist.py - - src/shippo/models/components/userparceltemplateupdaterequest.py - - src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py - - src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py - - src/shippo/models/components/webhook.py - - src/shippo/models/components/webhookeventtypeenum.py - - src/shippo/models/components/webhookpaginatedlist.py - - src/shippo/models/components/webhookpayload.py - - src/shippo/models/components/webhookpayloadbatch.py - - src/shippo/models/components/webhookpayloadtrack.py - - src/shippo/models/components/webhookpayloadtransaction.py - - src/shippo/models/components/webhookupdaterequest.py - - src/shippo/models/components/weightunitenum.py - - src/shippo/models/errors/__init__.py - - src/shippo/models/errors/initiateoauth2signin.py - - src/shippo/models/errors/sdkerror.py - - src/shippo/models/internal/__init__.py - - src/shippo/models/internal/globals.py - - src/shippo/models/operations/__init__.py - - src/shippo/models/operations/addshipmentstobatch.py - - src/shippo/models/operations/createaddress.py - - src/shippo/models/operations/createbatch.py - - src/shippo/models/operations/createcarrieraccount.py - - src/shippo/models/operations/createcustomsdeclaration.py - - src/shippo/models/operations/createcustomsitem.py - - src/shippo/models/operations/createliverate.py - - src/shippo/models/operations/createmanifest.py - - src/shippo/models/operations/createorder.py - - src/shippo/models/operations/createparcel.py - - src/shippo/models/operations/createpickup.py - - src/shippo/models/operations/createrefund.py - - src/shippo/models/operations/createservicegroup.py - - src/shippo/models/operations/createshipment.py - - src/shippo/models/operations/createshippoaccount.py - - src/shippo/models/operations/createtrack.py - - src/shippo/models/operations/createtransaction.py - - src/shippo/models/operations/createuserparceltemplate.py - - src/shippo/models/operations/deletedefaultparceltemplate.py - - src/shippo/models/operations/deleteservicegroup.py - - src/shippo/models/operations/deleteuserparceltemplate.py - - src/shippo/models/operations/deletewebhook.py - - src/shippo/models/operations/getaddress.py - - src/shippo/models/operations/getbatch.py - - src/shippo/models/operations/getcarrieraccount.py - - src/shippo/models/operations/getcarrierparceltemplate.py - - src/shippo/models/operations/getcarrierregistrationstatus.py - - src/shippo/models/operations/getcustomsdeclaration.py - - src/shippo/models/operations/getcustomsitem.py - - src/shippo/models/operations/getdefaultparceltemplate.py - - src/shippo/models/operations/getmanifest.py - - src/shippo/models/operations/getorder.py - - src/shippo/models/operations/getparcel.py - - src/shippo/models/operations/getrate.py - - src/shippo/models/operations/getrefund.py - - src/shippo/models/operations/getshipment.py - - src/shippo/models/operations/getshippoaccount.py - - src/shippo/models/operations/gettrack.py - - src/shippo/models/operations/gettransaction.py - - src/shippo/models/operations/getuserparceltemplate.py - - src/shippo/models/operations/getwebhook.py - - src/shippo/models/operations/initiateoauth2signin.py - - src/shippo/models/operations/listaddresses.py - - src/shippo/models/operations/listcarrieraccounts.py - - src/shippo/models/operations/listcarrierparceltemplates.py - - src/shippo/models/operations/listcustomsdeclarations.py - - src/shippo/models/operations/listcustomsitems.py - - src/shippo/models/operations/listmanifests.py - - src/shippo/models/operations/listorders.py - - src/shippo/models/operations/listparcels.py - - src/shippo/models/operations/listrefunds.py - - src/shippo/models/operations/listservicegroups.py - - src/shippo/models/operations/listshipmentrates.py - - src/shippo/models/operations/listshipmentratesbycurrencycode.py - - src/shippo/models/operations/listshipments.py - - src/shippo/models/operations/listshippoaccounts.py - - src/shippo/models/operations/listtransactions.py - - src/shippo/models/operations/listuserparceltemplates.py - - src/shippo/models/operations/purchasebatch.py - - src/shippo/models/operations/registercarrieraccount.py - - src/shippo/models/operations/removeshipmentsfrombatch.py - - src/shippo/models/operations/updatecarrieraccount.py - - src/shippo/models/operations/updatedefaultparceltemplate.py - - src/shippo/models/operations/updateservicegroup.py - - src/shippo/models/operations/updateshippoaccount.py - - src/shippo/models/operations/updateuserparceltemplate.py - - src/shippo/models/operations/updatewebhook.py - - src/shippo/models/operations/validateaddress.py - - src/shippo/orders.py - - src/shippo/parcels.py - - src/shippo/pickups.py - - src/shippo/py.typed - - src/shippo/rates.py - - src/shippo/rates_at_checkout.py - - src/shippo/refunds.py - - src/shippo/sdk.py - - src/shippo/sdkconfiguration.py - - src/shippo/service_groups.py - - src/shippo/shipments.py - - src/shippo/shippo_accounts.py - - src/shippo/tracking_status.py - - src/shippo/transactions.py - - src/shippo/types/__init__.py - - src/shippo/types/basemodel.py - - src/shippo/user_parcel_templates.py - - src/shippo/utils/__init__.py - - src/shippo/utils/annotations.py - - src/shippo/utils/enums.py - - src/shippo/utils/eventstreaming.py - - src/shippo/utils/forms.py - - src/shippo/utils/headers.py - - src/shippo/utils/logger.py - - src/shippo/utils/metadata.py - - src/shippo/utils/queryparams.py - - src/shippo/utils/requestbodies.py - - src/shippo/utils/retries.py - - src/shippo/utils/security.py - - src/shippo/utils/serializers.py - - src/shippo/utils/url.py - - src/shippo/utils/values.py - - src/shippo/webhooks.py +trackedFiles: + .gitattributes: + id: 24139dae6567 + last_write_checksum: sha1:53134de3ada576f37c22276901e1b5b6d85cd2da + pristine_git_object: 4d75d59008e4d8609876d263419a9dc56c8d6f3a + .vscode/settings.json: + id: 89aa447020cd + last_write_checksum: sha1:f84632c81029fcdda8c3b0c768d02b836fc80526 + pristine_git_object: 8d79f0abb72526f1fb34a4c03e5bba612c6ba2ae + USAGE.md: + id: 3aed33ce6e6f + last_write_checksum: sha1:d1ed321f1cfc25888deffb6714078686cea66f38 + pristine_git_object: 301aadd09176d959cab92c2bc1a1f3cd0ddfc25a + docs/models/components/address.md: + id: 897900884ecb + last_write_checksum: sha1:053bd01fac14a3e04d2aa11d8660309a2dffdca5 + pristine_git_object: 256c30f607dd5cfb035153378c3be70b6e455736 + docs/models/components/addresscompletecreaterequest.md: + id: 8b64971d854c + last_write_checksum: sha1:46ad70e24663ddc68b5e23ac0301a1704ee695a4 + pristine_git_object: e9b3284ddbe058c383bd34d349c4e3c2b200533c + docs/models/components/addresscreaterequest.md: + id: 1138a35a4bf8 + last_write_checksum: sha1:370b7e8aeffcfa86bc5eb1223c3a134c1f84bbd8 + pristine_git_object: a6531a9ded7e8a389756aa0f4af65ce89445082e + docs/models/components/addressimporter.md: + id: db1b3ee1399d + last_write_checksum: sha1:1e67863b1c73cdbe80cb09fa76fd59ede93094f8 + pristine_git_object: 90149a9750d8716f0bfedf428e8ff1f3022e25b1 + docs/models/components/addresspaginatedlist.md: + id: a173613ecbaf + last_write_checksum: sha1:8371ec0083d9d8993c899e6489d1df6a2925c005 + pristine_git_object: 2a8c601818451549f6f2e90ae4d41a3c40ce7fe8 + docs/models/components/addressreturn.md: + id: e95a7f77ac8d + last_write_checksum: sha1:b3f14ef389c5f74d37d38e9652167cf07f25aee2 + pristine_git_object: 37047d9c66a8abf8f5ab07d5dd8d84bb7791ed1a + docs/models/components/addressvalidationresults.md: + id: 1262b7b46f5c + last_write_checksum: sha1:e78d7b6a09fc9e58ff9322bfcdf6e113a96dac66 + pristine_git_object: 47f16190517ada18df46a8f38efb818aa147d106 + docs/models/components/addressvalidationresultsmessage.md: + id: 89a3c3081aa7 + last_write_checksum: sha1:556b4a17f1c97fb4635c7065b323590450775219 + pristine_git_object: 4308ae474765b5a79a7f7c2fad28099d5cabe45a + docs/models/components/addressvalidationresultsmessagecodeenum.md: + id: da55e07c7dc0 + last_write_checksum: sha1:8e41ffa5329c8525fefc087b1c808194dd619b94 + pristine_git_object: 1aa56196c824c0e14c49689443ed2bc9971e2eb4 + docs/models/components/addressvalidationresultsmessagesourceenum.md: + id: aea63c2c0fb6 + last_write_checksum: sha1:91a2426c11a91314859bb6388d874e411f34ca20 + pristine_git_object: a4223ceea8fa00cda6f5d755608772ff2f15cc3a + docs/models/components/alcohol.md: + id: 15ed7579c9cc + last_write_checksum: sha1:a3eec3362dbd633e7bc800c3c275672e8c900471 + pristine_git_object: b3f1af4883326d00abaedcfbd59fc1c0c6292eec + docs/models/components/ancillaryendorsement.md: + id: 22c52882d09e + last_write_checksum: sha1:f95279c58993cfb78a22f3cddfd47e7b73df48a1 + pristine_git_object: a56fec6021d499c6631c0882e3a8288ea4f83761 + docs/models/components/attribute.md: + id: 73bdfcc990f2 + last_write_checksum: sha1:398f6a0799da3ff265bb546636c13d9ed9b69614 + pristine_git_object: d8ecadf9034a081881a80db9ffb628ae9c0e33e6 + docs/models/components/authentication.md: + id: 880c5a2c4a09 + last_write_checksum: sha1:aa0516ae05a9ed32cdcf1e682149a3741d562b91 + pristine_git_object: 0cf931296a81fc3b76f5456cf3ef258fdce1956f + docs/models/components/batch.md: + id: 5ab0270aaad8 + last_write_checksum: sha1:b0ff5879d54ee0f3fc8b3e2f67a3032d3946ba75 + pristine_git_object: 33a56b10cb7da18be0826d96fe0e65b4f9e9130e + docs/models/components/batchcreaterequest.md: + id: a693b99aab97 + last_write_checksum: sha1:dc9a09158ed85a1613a982cb8f1694b972bd0837 + pristine_git_object: 07ed159c3079e1546aac267a65fd09d1fdd77f6d + docs/models/components/batchshipment.md: + id: 0d6eefd7d078 + last_write_checksum: sha1:15a3d6a28c44e8806a4c8ec6ea6e04b46efaf903 + pristine_git_object: e7d77c506c8504e918ec8c310834161222a4b9a1 + docs/models/components/batchshipmentcreaterequest.md: + id: 0a768639ed18 + last_write_checksum: sha1:12fb1f7391c13c3f5c2e93a7f0bbe02850d37132 + pristine_git_object: e66c9b60f2b2c858faf64f92ac94e80c09206446 + docs/models/components/batchshipmentpaginatedlist.md: + id: f2e4ad249c45 + last_write_checksum: sha1:f3215d05edab05e4a251c306ddc423644e276cad + pristine_git_object: 4ee1f8cbd2d803ef99afe10bcb40166b92358873 + docs/models/components/batchshipmentstatus.md: + id: 226423c6f41c + last_write_checksum: sha1:aadc17721b9ec893a601c1b6277ec14a613ac94a + pristine_git_object: e87c9adbbc84914718a7a43a5a713c775b329b9c + docs/models/components/batchstatus.md: + id: d727379a7089 + last_write_checksum: sha1:7d57ac08c0c369923c7729a45424509ed16aec95 + pristine_git_object: eef6cd025305b8b1596e9345dba1a55161616680 + docs/models/components/billing.md: + id: 3a990442758e + last_write_checksum: sha1:ff631a62d6d643f234aa403c52faf2105251ac20 + pristine_git_object: 2393daa8d422225fecdfb24cdc87d74bc12fd30d + docs/models/components/billingtype.md: + id: 106b0fdf9cdb + last_write_checksum: sha1:9df85f5ada73273a79139606ebf2363666491f6d + pristine_git_object: f884fdf7913a7acbdf126d9af983d093dc472e29 + docs/models/components/buildinglocationtype.md: + id: 8da6c36c5b2d + last_write_checksum: sha1:b5918af5a53da5586365d2e6002bb74b4e423ac2 + pristine_git_object: f59b26ff3fac6deac5344729ee79d1f111878792 + docs/models/components/buildingtype.md: + id: 2aba7812546d + last_write_checksum: sha1:26e58e710e6f356f36724540c1b30d3680e56c28 + pristine_git_object: e96596242504d282c6935c80769e55fb6d6a7c5d + docs/models/components/carrieraccount.md: + id: 15c3f9f9348b + last_write_checksum: sha1:b1452ddf2791bdd575fafac0d9322fdc39de5287 + pristine_git_object: e0a6d100b687d34937e10a39aecaf131b51ce6d9 + docs/models/components/carrieraccountbase.md: + id: 20658b3fec9b + last_write_checksum: sha1:1423284d5918d4a53433bfe54246d39a64c29c35 + pristine_git_object: 540a047a8f4189ad0afe2e33882e32055fd93e84 + docs/models/components/carrieraccountbaseparameters.md: + id: dcb6fe5756e4 + last_write_checksum: sha1:0b470560149988d1326230e23c29f55c9b906ea7 + pristine_git_object: 6d9dfa867c1d93e8b6c7d08da0f62a5927bd66a6 + docs/models/components/carrieraccountcanadapostcreateparameters.md: + id: 1c3cfb8c9152 + last_write_checksum: sha1:d70f7446f21b2ec0bfc460def985bb860a055cef + pristine_git_object: bd895a74d5f95ba24d35723ed325685be4cf9c0b + docs/models/components/carrieraccountcanadapostcreaterequest.md: + id: 39dd1d41c1cb + last_write_checksum: sha1:e013e2b96eaf5446da05cba231d2fc0ca28e0053 + pristine_git_object: 7becfc5ab5154fa7cfc87df07cda0c802ca64f1c + docs/models/components/carrieraccountchronopostcreaterequest.md: + id: a790b4f16f5c + last_write_checksum: sha1:cf5c065d05608df9f884cd1896f58005b24a012d + pristine_git_object: 761ed8e81c917051bf0eff6525188347091cd666 + docs/models/components/carrieraccountchronopostcreaterequestparameters.md: + id: 274c53c31c11 + last_write_checksum: sha1:f9d5fb8f6b87e3271e76ad6d85f97281d95c0bb3 + pristine_git_object: 6935838ca18b4ffb45333814acd744acfe856d4e + docs/models/components/carrieraccountcolissimocreaterequest.md: + id: b513a679d2d7 + last_write_checksum: sha1:f9b890017aca81f0553cd81f99c86dc4a79e4b6d + pristine_git_object: a34b2d5eb5b08b2a7eb8d3151eed068d6df54d6a + docs/models/components/carrieraccountcolissimocreaterequestparameters.md: + id: 300647a07142 + last_write_checksum: sha1:b2726ff96729aa5be8689bf4c8a67d6d92a55f71 + pristine_git_object: 52e78bc5d0326ba4b91c1a35aab32527a0854e59 + docs/models/components/carrieraccountcorreoscreaterequest.md: + id: 856b87734ec9 + last_write_checksum: sha1:df78d2eca27b0f2a69ebddf1b4ad92a2588903c4 + pristine_git_object: a731f9b5265a7008dc13d3de1dd6ce0eb527daf0 + docs/models/components/carrieraccountcorreoscreaterequestparameters.md: + id: c6bfb09ec39b + last_write_checksum: sha1:a6470baec920c3ceb4bedc0bf5de4c6d5e0054a0 + pristine_git_object: 13a0aae6fddd814a591a339657253114fe03bc4c + docs/models/components/carrieraccountdeutschepostcreaterequest.md: + id: 45e856bf9267 + last_write_checksum: sha1:3f327703201ff930da486febc6005243ebf61cd1 + pristine_git_object: 4ece805e200ee49b9f4d3257524af39fabbbe984 + docs/models/components/carrieraccountdeutschepostcreaterequestparameters.md: + id: 89de3c814410 + last_write_checksum: sha1:a35114c50a08aae73e6bda5faee5227bf09cb79e + pristine_git_object: 829d052bba16bba2369f703aeff7c6a9d0b48597 + docs/models/components/carrieraccountdhlexpresscreaterequest.md: + id: 5c611a7b131b + last_write_checksum: sha1:32a6c3d545274e8e068cccdfe7bce0e7dff5067b + pristine_git_object: 5545b3f187a00e8049243b2c271379408bfde5a3 + docs/models/components/carrieraccountdhlexpresscreaterequestparameters.md: + id: 21d803e35209 + last_write_checksum: sha1:1be88695b78c9a9a6e8d5522143edfe4682c7b4c + pristine_git_object: e1827687a290f6bea1e76acbee6ed71c837f86ec + docs/models/components/carrieraccountdpddecreaterequest.md: + id: 8dbf7603f4c1 + last_write_checksum: sha1:4680acbf2a70e19dcf289a7fea0ddb6fc621c44f + pristine_git_object: a04151dde9f9adc8a8844894084b5f3bafe67a69 + docs/models/components/carrieraccountdpddecreaterequestparameters.md: + id: b7b9b477e38d + last_write_checksum: sha1:bd9dc66a1a4cccc2f0df3f4ffd69e1ea127efd1e + pristine_git_object: 4a84103ae529385df36f0bfbc235a04a0e7f260b + docs/models/components/carrieraccountdpdukcreaterequest.md: + id: 39987e924e81 + last_write_checksum: sha1:fd7e201ea561027912284808e8e2678f4a6870c0 + pristine_git_object: c1068369112710ad381e76c13ee2de79fc6881cb + docs/models/components/carrieraccountdpdukcreaterequestparameters.md: + id: ebc289735c2c + last_write_checksum: sha1:cacbdd804e18adf4900b213499da421cd24a8a12 + pristine_git_object: 6c4e1fabe8f05cff22b14217fd927c6b4edca53e + docs/models/components/carrieraccountfedexcreaterequest.md: + id: 3401f83ed000 + last_write_checksum: sha1:9fd397e5c80656dfb2ed84553fe8f9c2d7e5b73d + pristine_git_object: 904c203d79353f0f8b1be690f9e89d107d3bba3d + docs/models/components/carrieraccountfedexcreaterequestparameters.md: + id: a01bf5e628e7 + last_write_checksum: sha1:0e40ff80cfcbcda8b21ef7bab6e6752435b29c7b + pristine_git_object: 761e76afd77d6342c395ad442243cea683021ebd + docs/models/components/carrieraccounthermesukcreaterequest.md: + id: 1e77687c46ad + last_write_checksum: sha1:9e947aa0b4024d0efa5211b97ab27226603a9ce5 + pristine_git_object: ed0bbb26811bc6f39567633b41a6704d14085977 + docs/models/components/carrieraccounthermesukcreaterequestparameters.md: + id: ac5c4d1a0f8c + last_write_checksum: sha1:4c9e7c227e844d2290679396501ecd1901e5a2f6 + pristine_git_object: a6992c0a27a1d2e3b6c61cb69352345951672d82 + docs/models/components/carrieraccountmondialrelaycreaterequest.md: + id: 7610e96f1c18 + last_write_checksum: sha1:f131cb5d519e31a3dce687ef41eaf84f7c11a9ee + pristine_git_object: 637c7c86a64ce6bc44a5177153585f626cd35c26 + docs/models/components/carrieraccountmondialrelaycreaterequestparameters.md: + id: a91db02b2144 + last_write_checksum: sha1:14c7df79c1a9ca0427677e32a3455955b447ccda + pristine_git_object: 2980d14327703d4201679380e921751c67794225 + docs/models/components/carrieraccountpaginatedlist.md: + id: 45d484e18841 + last_write_checksum: sha1:3959216071532ca6552205d9139924ce068f9583 + pristine_git_object: 330bf8e80dfde94806114f25f9c754452f87829a + docs/models/components/carrieraccountparameters.md: + id: 5536ce015a3f + last_write_checksum: sha1:be9e00643df173a38b71479df61c0bcf7937ad15 + pristine_git_object: ed888faec7aac6584ca9b1a8f495e0bec6e8a07a + docs/models/components/carrieraccountposteitalianecreaterequest.md: + id: d6b6d97f9ce9 + last_write_checksum: sha1:d4f33260456957c7a73a7f3e121ad2870d41d989 + pristine_git_object: b47ae6ce516e3483d6d4a75efe412728c5e69413 + docs/models/components/carrieraccountposteitalianecreaterequestparameters.md: + id: 6531b31a2477 + last_write_checksum: sha1:323e4ad68108a01c78340c7d702ee9f32d74fe1f + pristine_git_object: b429bd77505646133ee31664a4474c23d19736d2 + docs/models/components/carrieraccountregistrationstatus.md: + id: fc8c21616bbb + last_write_checksum: sha1:c5990053d14594436b3ca3b385ed6f5537ce9fc5 + pristine_git_object: e0bd3ada50c31dd466ad68c11bcddaf78a6ca904 + docs/models/components/carrieraccountroyalmailcreaterequest.md: + id: 39581bf5cdc4 + last_write_checksum: sha1:b0ecb373d7bd2eb6925c00d205ce70a651dc25ca + pristine_git_object: 11f0bf103c3c230e2e74bc267fb48d8c693e5f80 + docs/models/components/carrieraccountroyalmailcreaterequestparameters.md: + id: bcf44b5f1cd3 + last_write_checksum: sha1:223251ea410fed662800e1c8ad54ae15d069d8ef + pristine_git_object: 43ca7a53e588a5ac7fdc1d9f43212fc650a977c7 + docs/models/components/carrieraccountroyalmailsfcreaterequest.md: + id: 6a199bacfc5d + last_write_checksum: sha1:d8057006d006954cdc66c9b4a7aeb05ee2dd30dc + pristine_git_object: 207f8fc081684ed916a1acb6f6ca5a9d9f1cc00d + docs/models/components/carrieraccountroyalmailsfcreaterequestparameters.md: + id: 866f22dc1743 + last_write_checksum: sha1:87d1eb6922a78f84a12a7ee29af57445822bb4d1 + pristine_git_object: 8dba89548ffdff688d7b6feb4d5a694dd55f5168 + docs/models/components/carrieraccountservicelevel.md: + id: 758e1b1a5c70 + last_write_checksum: sha1:3b28f3a23d94bb63daefac39f467f44d3c79290e + pristine_git_object: a233100eceb6d8416f4f4b4fcd4671789c3cb8d1 + docs/models/components/carrieraccountupscreaterequest.md: + id: d9ef467ab779 + last_write_checksum: sha1:f6853ad0c024a14aa2c8f2e296dfb250684fa003 + pristine_git_object: cf80dfc8dff9793e26b92bcd811be9311981abf5 + docs/models/components/carrieraccountupscreaterequestparameters.md: + id: 1fdffd5a37c8 + last_write_checksum: sha1:456a0978d9c46880d76aa8a5cba854919a396eb2 + pristine_git_object: 794c8e3a033b8ba586c28a1443a8bdde6640a924 + docs/models/components/carrieraccountuspscreaterequest.md: + id: 163d2367824e + last_write_checksum: sha1:2b7dad70400b5c89f7b326cac83a0dc3c049df4d + pristine_git_object: 83c38f85f121f46a7b20a8eb10f7e7cca5bc1b30 + docs/models/components/carrieraccountuspscreaterequestparameters.md: + id: 273a85cc3dd9 + last_write_checksum: sha1:76e7a6e5c45b6f70d5737492d1b36d370e584ae8 + pristine_git_object: 392e69209f970edf36dc8f70421036ff4fb58a85 + docs/models/components/carrieraccountwithextrainfo.md: + id: 0b5945e54319 + last_write_checksum: sha1:90130295d294f79284de9f737a0265b58e8338e0 + pristine_git_object: c6f7dd9a5169c999b619845ca5456e6f04688a30 + docs/models/components/carrieraccountwithextrainfoparameters.md: + id: 19c3bae6cc17 + last_write_checksum: sha1:94d44f7041afaa8758a122e39eccff8ebd4c27d2 + pristine_git_object: 90c4fc83461e3d87e5c021c120e465a86be296b4 + docs/models/components/carrieraccountwithextrainfostatus.md: + id: e3b09842b53e + last_write_checksum: sha1:59c371c8335be84742eca6cc41a881d5fc791e4b + pristine_git_object: da6a00dcd6213be6f9fd072e6a9a90f64869af97 + docs/models/components/carrieraccountwithextrainfotype.md: + id: ea099692a969 + last_write_checksum: sha1:3b99968fe397929a43a6a385f664a185d9f44186 + pristine_git_object: 632f2ede24044180b349c4e2b62fb5d4560689d0 + docs/models/components/carrierparceltemplate.md: + id: 7de46a17c839 + last_write_checksum: sha1:fdde8f4920e2928a9f060d5abc192367805eb674 + pristine_git_object: 3284fcdc92e8da0837c043de7cefb8fb65c86e63 + docs/models/components/carrierparceltemplatelist.md: + id: 14ae9918361f + last_write_checksum: sha1:d62bc0fa570e4bda207007a42e4c14b4d494c2dd + pristine_git_object: 5b2308f4216c37becd322c47c5a15ccf3542fcb0 + docs/models/components/carriersenum.md: + id: 6f0c9c0cef8e + last_write_checksum: sha1:552a70ce00aa3713b8f312622b0923421da32d48 + pristine_git_object: ba2c436f46a267936b5d57e5f0f55ab819a968d6 + docs/models/components/cod.md: + id: 90681657f5ba + last_write_checksum: sha1:14785c2fc853119a79a319a2119299717103343e + pristine_git_object: 6fc4561a09a9d8dc1a80a17e2bbdd645df164434 + docs/models/components/connectexistingownaccountrequest.md: + id: fd0d6bedfa49 + last_write_checksum: sha1:56b1bf9fa0f11836be8f5ab0c0de52da7ff74cd6 + pristine_git_object: 045330ff6bbd9accf82049c9e0c5876c4e5edbd3 + docs/models/components/connectexistingownaccountrequestparameters.md: + id: b8dd8f629f6a + last_write_checksum: sha1:7b5bf51652f552ad93ac6885ab22f66a701910c4 + pristine_git_object: 0c8c3f386a937288a9f00596db8f2e42d44af94b + docs/models/components/corerate.md: + id: f6fe48943943 + last_write_checksum: sha1:6df4e66374ca20fb388c7bf3e8c8cc1241d40dc9 + pristine_git_object: 1add788605a97f54569e1eb333bdf37f14e9114a + docs/models/components/createdby.md: + id: de1dc57eaf53 + last_write_checksum: sha1:c14e5e3e4c98b45c86970df9775606b4568f831b + pristine_git_object: 8f2ecb7319fd8b322d84da7eb66c65daccf0e59b + docs/models/components/customerreference.md: + id: 26ba564e1316 + last_write_checksum: sha1:2ffd20e2411b091b2731cdf223913fff72d06b09 + pristine_git_object: 85adc6b2783e5c2bb1e1d44ff2b18b0451a82439 + docs/models/components/customsdeclaration.md: + id: 92b099d30bc3 + last_write_checksum: sha1:e1ca317a66b7a40edb2487fcc3feb0424979a61e + pristine_git_object: 6bffaf3aa37a13bf531df01c316021564024c7ea + docs/models/components/customsdeclarationaddress.md: + id: 13fdc7359119 + last_write_checksum: sha1:36698b87cbea7c8e5152bd821357155ad53cbb9a + pristine_git_object: 656093983c2b642eb4c66a1f0aad554f2860766f + docs/models/components/customsdeclarationb13afilingoptionenum.md: + id: e988ac476c62 + last_write_checksum: sha1:71b60ce4fa0965b709457356aeeb138fdf7a0cde + pristine_git_object: 4068c619195a4c0464f39a0eef93a14456407b12 + docs/models/components/customsdeclarationcontentstypeenum.md: + id: 9e4d2f250e7c + last_write_checksum: sha1:44936ad129e7c30da0e760548f6d9c01b45698fb + pristine_git_object: 5b4ceab9af49eb41738839232e384039e94ca7c4 + docs/models/components/customsdeclarationcreaterequest.md: + id: 045c137b533a + last_write_checksum: sha1:88548b667377bc559aeb1e2b675f3353c79626da + pristine_git_object: 5867519e19a31eee7df23380021f5cb8a97ddd3f + docs/models/components/customsdeclarationcreaterequestaddress.md: + id: e810a6b6e44d + last_write_checksum: sha1:630fec071a7115e0f5b9ead0755b0f070c93b648 + pristine_git_object: d0f54a828a85e9d79ef4cef6d0685535e480e782 + docs/models/components/customsdeclarationcreaterequestdutiespayor.md: + id: b463a4839347 + last_write_checksum: sha1:7e186154ac5104fa50489d3b877780f48cd81b08 + pristine_git_object: 299651cfd4afd56671207f05047d1acdb471bae9 + docs/models/components/customsdeclarationcreaterequesttype.md: + id: 33fab0242659 + last_write_checksum: sha1:c4ea42817f467f1616c93ec597c80fae7405f17e + pristine_git_object: e773871b1983cb617e138ad689a86d8b5ffabd6a + docs/models/components/customsdeclarationdutiespayor.md: + id: 8240562672b6 + last_write_checksum: sha1:97a30b3b36d55bb992ae594746c04b1b51f53766 + pristine_git_object: e6594efcd36cd5396efd387f6d93e43f48a0f7a5 + docs/models/components/customsdeclarationeelpfcenum.md: + id: 217df7dd260e + last_write_checksum: sha1:28f3da8202ab3adf808a9b2002bb3f0201cf9791 + pristine_git_object: 5d2ca433eec9e313fd56f0c243ed54487cc809ef + docs/models/components/customsdeclarationincotermenum.md: + id: f5cda6184124 + last_write_checksum: sha1:f3bccc58657854d84338f31c179d744f42ac2e4c + pristine_git_object: 2484dc9360542ace70416e5a30b9ce0e4a136df9 + docs/models/components/customsdeclarationnondeliveryoptionenum.md: + id: 815f4598fec5 + last_write_checksum: sha1:77e01861efecaf7a763126f2b3ea57c012ec53e0 + pristine_git_object: 1407ac2ae42a45d9ec0a10a193b7f29df946ad3a + docs/models/components/customsdeclarationpaginatedlist.md: + id: b14cbf8df00d + last_write_checksum: sha1:85159ca61c1007416471911867eb6248e7fcec1d + pristine_git_object: 073e810acc0c08cb49fd165b6bdf171959b46c07 + docs/models/components/customsdeclarationtype.md: + id: 503948ac7254 + last_write_checksum: sha1:2a8eb4729662e3101d11feb39a9240cf56f9ff63 + pristine_git_object: 814fc8ad0d842ab8e8df04074a6689f247de6aaf + docs/models/components/customsdeclarationunion.md: + id: 0ef7d7e08ff8 + last_write_checksum: sha1:71e0d7dc193f0be3df1b0fc520f29df8b0814fbb + pristine_git_object: fdfe2a53dda9725a1757ff186a52be8b6331a2c9 + docs/models/components/customsexporteridentification.md: + id: eaa4c187cca8 + last_write_checksum: sha1:c530bd59f78cc85aad6f8bef4c5a1113d2b41e6b + pristine_git_object: d24e9b719490d8e2009cb7b24abf34105176fbfd + docs/models/components/customsinvoicedcharges.md: + id: 43d7b54ef624 + last_write_checksum: sha1:14a0c4b5685b08aeb3b380f32e5f27d96521c11b + pristine_git_object: 0738de28707240b8c4bee9e7125223e4ce20ffaa + docs/models/components/customsitem.md: + id: 2abf9302db65 + last_write_checksum: sha1:4b1fab015cd52c7b98fc3efc00eadc35f9b798f2 + pristine_git_object: 82f0f9b950e3538a692ac8afdae79554ade66847 + docs/models/components/customsitemcreaterequest.md: + id: 67c137d6c607 + last_write_checksum: sha1:08c60c30244c89a9110be0444a68a6aef6d4323c + pristine_git_object: e8321b0f38bb72f907a8b13bce43174c9512a0f1 + docs/models/components/customsitempaginatedlist.md: + id: 75319e271697 + last_write_checksum: sha1:4072a63a9715443ba9c711c95c8b0957fd31d893 + pristine_git_object: 09139c20eef67c88c2623264d1132570c2608dcd + docs/models/components/customstaxidentification.md: + id: 5639eaf4b84a + last_write_checksum: sha1:eb40468ce56c5730203bc88d62511919f684d945 + pristine_git_object: 95a9945d001b558cf1c66f418cd78ce4a341608b + docs/models/components/customstaxidentificationtype.md: + id: fd051250ba58 + last_write_checksum: sha1:c63c2b122c89130753ae2f4c201ee0f28bf2bb2f + pristine_git_object: 7821b36b26501d80c43de2e92c3e08128df517ac + docs/models/components/dangerousgoodsbiologicalmaterial.md: + id: abef411de403 + last_write_checksum: sha1:5ee975206ef64a47a4dbc7ae2a4af070e79e2e4e + pristine_git_object: 7467d120baa23c25b44079e242da6ae875192236 + docs/models/components/dangerousgoodscode.md: + id: 76899ad1dd8b + last_write_checksum: sha1:3883b28bb46a6e2e7dca6c7a9361acf8e4f4ecc4 + pristine_git_object: 0ea725544401b9c24f6493736c3f893243b76895 + docs/models/components/dangerousgoodslithiumbatteries.md: + id: 6c5d4eea8c61 + last_write_checksum: sha1:d8d30067d06fc1a451728fa263c22d4dae3e4f2f + pristine_git_object: d9208145b3e0300102d4944e6b57f26610faa82a + docs/models/components/dangerousgoodsobject.md: + id: 276082f08169 + last_write_checksum: sha1:8f2fe2d7870703afd8f42a695a68952b76d4ab69 + pristine_git_object: 5831b0ac3cee0daae492fbceb5fe208e7f305e30 + docs/models/components/defaultparceltemplate.md: + id: ff184671bcac + last_write_checksum: sha1:781f437888bc6c287bc77658bf8312bedb94ec87 + pristine_git_object: 98aa2d3598db29ab0d53e4efff75236676da16eb + docs/models/components/defaultparceltemplateupdaterequest.md: + id: 2c44261adea7 + last_write_checksum: sha1:6700a478005b4275945f521949993d57929d7494 + pristine_git_object: 314415ad40ec4e9bc460173552171f7488af4cc7 + docs/models/components/departmentnumber.md: + id: 08501ae2a9ed + last_write_checksum: sha1:ad64f7063364d43f4edd00ebd6263901bdf4f528 + pristine_git_object: 71e1060adb528730b1d652c43e66796e47892ecb + docs/models/components/distanceunitenum.md: + id: 39a14d6640f4 + last_write_checksum: sha1:cf3da2703781a3ad2e4695b3e51526249f5f18a8 + pristine_git_object: a2fad86e048d2f9c91c017899f56ad2ef28b9e24 + docs/models/components/dryice.md: + id: 2ec99e2db00e + last_write_checksum: sha1:9d5c3091c6af7d12c98e8a1cf658ef1c55b142c1 + pristine_git_object: 95d11051a3522382b6583c80fdae6f11db8703e9 + docs/models/components/fedexconnectexistingownaccountparameters.md: + id: 9121ff311085 + last_write_checksum: sha1:e7de9ea3d8b5eec5635138850490a569eb6cfd00 + pristine_git_object: b376103da8462de72f3c26cfbaba5c10bb0aae10 + docs/models/components/instanttransactioncreaterequest.md: + id: 5b3f06fccb9b + last_write_checksum: sha1:c72f32914d98e765c65acb242523687cd321a5d4 + pristine_git_object: 1549ccc6032f449cabfa2e0633a6cab73d970fdd + docs/models/components/insurance.md: + id: e1e986c65354 + last_write_checksum: sha1:5b5a6708cbe74de31cd4caac10c168e8fd6fbaa1 + pristine_git_object: 914f5db41ab7e2a0a9be27fb8671c5afb7dc5ee2 + docs/models/components/insuranceprovider.md: + id: 651d2aee234b + last_write_checksum: sha1:aa110b4d996d6cc549d8e519793b928623c1fd19 + pristine_git_object: 7d9586ee433a1bb2f5b3a95fede3c0da70eaf7e6 + docs/models/components/invoicenumber.md: + id: cc2978b4cc38 + last_write_checksum: sha1:2b5dd4cfbe30876e2ab1ed8ceaa6c22f1b17cad7 + pristine_git_object: 9673d4fc7d112acf17084e539e091f1243ae8b6c + docs/models/components/labelfiletype.md: + id: 59854af7f4a0 + last_write_checksum: sha1:b7ac0015e6d8121d1a29c61f16e064df3ed680f9 + pristine_git_object: 5becea5b1fe744ed462838f4c9672396d196c2b7 + docs/models/components/labelfiletypeenum.md: + id: aaf78a5a2b12 + last_write_checksum: sha1:100cb832077ae6f225419cf99d93927445ed5089 + pristine_git_object: fd52dbb77517267ec9a48b64a092a456e2b34515 + docs/models/components/latitude.md: + id: e8ad33d0f49e + last_write_checksum: sha1:d489c231168a38c14545945742bda74d44768c6e + pristine_git_object: 7560a2a9f2d834e47c01d14156ca9037d230b228 + docs/models/components/lineitem.md: + id: 97e125223c72 + last_write_checksum: sha1:07b776eefafbd12d0940c4b3a8186887d73d728d + pristine_git_object: baae9141b9cced00e19acc23c760a5d21921b78e + docs/models/components/lineitembase.md: + id: 109d8d336fa5 + last_write_checksum: sha1:7e40f56ea648a8b471d308089f665478b7f49fa5 + pristine_git_object: 72b8b282d450a6f4e2e140baaf69affec75fe23a + docs/models/components/liverate.md: + id: 00236fcad6fc + last_write_checksum: sha1:e3c02f4ee9e3a488ac58c9e97c6449a516a4aaf2 + pristine_git_object: 88f897965a286b1c13814d69198a7ec00c08147f + docs/models/components/liveratecreaterequest.md: + id: 630238133ce7 + last_write_checksum: sha1:da5e12f91b915ca1d19d1c12a90468bcb9cc5884 + pristine_git_object: e29c14fff5cc2ad0f65f81794c2f50805b264470 + docs/models/components/liveratecreaterequestaddressfrom.md: + id: 1171d4935701 + last_write_checksum: sha1:c5d95fb797052dea834720f8a8c2d78409fbdc19 + pristine_git_object: e4c3011014cb9823ec34996141eac47bddabe242 + docs/models/components/liveratecreaterequestaddressto.md: + id: b5c0a191fdd2 + last_write_checksum: sha1:644037f2aded69cfb08b0ae1378f0926013d3e40 + pristine_git_object: c5f4909d01d92c0d6ce17a2ae51d73cd5f2f8823 + docs/models/components/liveratecreaterequestparcel.md: + id: 6d4f831ed967 + last_write_checksum: sha1:1269d4076e4f15cd8e8065f94f3ea86da120f23c + pristine_git_object: fa14079b7197713e9bfd69cd6bab68d22da3b2d6 + docs/models/components/liveratepaginatedlist.md: + id: d5a95de8252a + last_write_checksum: sha1:5154ed9da0f4c4b41eca2589a3fae0b2439e35e3 + pristine_git_object: 7c98fc3afd8544943e71658bef653b1501b13829 + docs/models/components/location.md: + id: 6ac85d9d83d3 + last_write_checksum: sha1:efb395e63f7d6327935755f5f39419a40566b573 + pristine_git_object: ae9d387b69ea5b43c6861c143093f20887a62281 + docs/models/components/longitude.md: + id: ed0719abee5b + last_write_checksum: sha1:7e84b98476b3ba53bce0a73c893c79990a9d0d48 + pristine_git_object: 051eca204da8b77501f2a3b67c9dec9494a6ce68 + docs/models/components/manifest.md: + id: ab82543dfdb2 + last_write_checksum: sha1:da2e255face3b5e6d6081eb59f69b216656e81f8 + pristine_git_object: 2744cc9b1dcf388784c54b79aeb94c5fb0102aa0 + docs/models/components/manifestcreaterequest.md: + id: 6a64df639306 + last_write_checksum: sha1:a64fba2c4f71d4ff1f10d0c33c65879f84dfd779 + pristine_git_object: a237835786290e82ec236cdf58e143a550f1ae49 + docs/models/components/manifestcreaterequestaddressfrom.md: + id: 3789e66c1c03 + last_write_checksum: sha1:78f0ff4204f35514261297746d833a6b1c13d79e + pristine_git_object: e576bdab23b995e29454a23ec43e0b6a4643a8c8 + docs/models/components/manifestpaginatedlist.md: + id: ca50dcdde792 + last_write_checksum: sha1:a7988a594dfc1bfac4f0ab692120f18af783601a + pristine_git_object: 927165c811b0a1b151098a6455f579e62f27ebfe + docs/models/components/manifeststatus.md: + id: 2c3422849697 + last_write_checksum: sha1:93f445002f7274a6341d49ca5bbce0e77f1b980f + pristine_git_object: 45485f5b53a37b20713104cd36d941aa7cdaa76f + docs/models/components/objectinfo.md: + id: 419831aba495 + last_write_checksum: sha1:39a193f1e5851d61be54ecfa41038512bd2273cf + pristine_git_object: 93847f0ca74b3e27fd9b1acf8c8093fa9943dc6d + docs/models/components/objectresults.md: + id: ef5fbb5c219a + last_write_checksum: sha1:35f871d4bf1d4a2dcc1d1943125280e8dc66882d + pristine_git_object: 673cf964a9a317ac5cdd8691cfcf1faab7b58321 + docs/models/components/objectstate.md: + id: 6730ee5f5e46 + last_write_checksum: sha1:ee18d42217f1a5fafe1f4129b39c219917324099 + pristine_git_object: f0d411acf54a9b2cd947f966f10d02494dd8fb07 + docs/models/components/objectstateenum.md: + id: 74150b82f6da + last_write_checksum: sha1:9f5f0b2adadf8121952dc2178dac4d4665b8b551 + pristine_git_object: ca5ca96613c8de1c515cd041dee0e9e020ed98fb + docs/models/components/order.md: + id: 6e3d74da5756 + last_write_checksum: sha1:c0ba0ec07dea8cdcb2f605a9e2b01e28d6ecde00 + pristine_git_object: 4f9ec5bbe7004b2aeac5d5176851e8dae093074d + docs/models/components/ordercreaterequest.md: + id: ae4718443a04 + last_write_checksum: sha1:de7d6dc306e1dc08353be58056c8d70ca45275c3 + pristine_git_object: 1dfc412a2c8e885046727db909c3310055552290 + docs/models/components/orderpaginatedlist.md: + id: f75c18eb1b0a + last_write_checksum: sha1:493a186e52e82f03b38cb3b2200c0abd0f0af315 + pristine_git_object: d6619215f0b515b02cf623c14d961d183fa563c2 + docs/models/components/ordershopappenum.md: + id: 58fd50c7bf1f + last_write_checksum: sha1:87eeae5c82cc7870d5f5f8de6911ba91572035df + pristine_git_object: cfdce2185102ee106befcec88940f150c8db6d22 + docs/models/components/orderstatusenum.md: + id: 20e496625846 + last_write_checksum: sha1:92ead0ba1183800bf1d33fce7ff8481b955ff649 + pristine_git_object: 19e5e20f788c746e90dba50514b86235e7ed05a3 + docs/models/components/ordertransaction.md: + id: a998a89b98e1 + last_write_checksum: sha1:51841a9209f17a135ddf99d5732cf75645b4d810 + pristine_git_object: 5df80802afdf7146208993cf6d6928c3c81f0086 + docs/models/components/parcel.md: + id: 7759af633813 + last_write_checksum: sha1:00e5bc47cc9786f40eceea83907bff7185acb57f + pristine_git_object: a504e109d5ab25454beed693c7e4cf300ab7581f + docs/models/components/parcelcreatefromtemplaterequest.md: + id: d3b3d939b4f0 + last_write_checksum: sha1:98828ff18d5e5922755fcf710136cf1d62d22fab + pristine_git_object: 351a212577dabdf223b560c6f2e5fd1832957142 + docs/models/components/parcelcreaterequest.md: + id: 56ac54f082cb + last_write_checksum: sha1:0ebb130a6e16f02899f4e1945fb92ef1d4bfcb55 + pristine_git_object: 95e734784f9a970048de821df0b31591a4ee75f7 + docs/models/components/parcelextra.md: + id: e8dc84c7e033 + last_write_checksum: sha1:5b492ab3a1baf5d2085267088a38cee6b77cb34e + pristine_git_object: 861c8bcffd3f5a7af11f90e1eb81ed265c22dee0 + docs/models/components/parcelinsurance.md: + id: de09f57b2ac2 + last_write_checksum: sha1:72801a77a14e8d6df6b795f83e0c1c5d64ef6797 + pristine_git_object: 5fbca86ec2bcb3e8e3d7dbcfcfeec86024d4e1e0 + docs/models/components/parcelinsuranceprovider.md: + id: 534943ea0a20 + last_write_checksum: sha1:a46192acca49c07bafacf9ff5d14a42bbb7fbc06 + pristine_git_object: 2864678b43cca645670a71271b366c3e8c57027a + docs/models/components/parcelpaginatedlist.md: + id: 867e12305484 + last_write_checksum: sha1:d6325403bb72264d6243f1ceb8a72a52ebd26e82 + pristine_git_object: 26f71ae954cee75d922f603c440bb0d367d6e08c + docs/models/components/parceltemplatearamexaustraliaenum.md: + id: a5c455a84a26 + last_write_checksum: sha1:743cfbc7a6c189325b3610ce4082bcd7131b1f6f + pristine_git_object: 38374de66b6b2052346f53df9771c016baeee937 + docs/models/components/parceltemplatedhlecommerceenum.md: + id: 9f0e77e66676 + last_write_checksum: sha1:b57076c57549004acfe067e2c2f559fcdaccc7d5 + pristine_git_object: 45dc0604c4d75e555e6e71270bfd1cb4059a13f9 + docs/models/components/parceltemplatedpdukenum.md: + id: 1aaffdf9d666 + last_write_checksum: sha1:d9d3238b5bd63ce63c5a48705442ffe46e5a0417 + pristine_git_object: 3af6a699e86e110b4ba8b5a6e856250e8d693e1a + docs/models/components/parceltemplateenumset.md: + id: b5d1028ccefb + last_write_checksum: sha1:2f1edaffb10d7ac26b4d05cd89cf5319329981c4 + pristine_git_object: 3dd8f1a517cca665b02ab2afb049f98861e3af10 + docs/models/components/parceltemplatefedexenum.md: + id: 29f456d4ca03 + last_write_checksum: sha1:f19653aa98ed25ec9eb0031ddad410931e6dbf78 + pristine_git_object: 985969eba9ed55e2e12fe4994cca6a28646fae2b + docs/models/components/parceltemplateupsenum.md: + id: eb6e11d851b2 + last_write_checksum: sha1:114a86aae9e488f6b8551f8a4a2706bf5472046f + pristine_git_object: e3ebbcfdf41130b57327bb2408f935778a85347a + docs/models/components/parceltemplateuspsenum.md: + id: 5f41e0020a05 + last_write_checksum: sha1:9016d3e7c3adf204dfe14e499beb648a0cd16e3b + pristine_git_object: 186d0e4bd759fdc2b36d91ac5a02f9392bb0a1d4 + docs/models/components/paymentmethod.md: + id: 722f86eed889 + last_write_checksum: sha1:1bf707ee3a1cc2ac6336f0c53dfa0a10c2cfee64 + pristine_git_object: ea3c5bf5386fc43026f98c1148e6532639ffb7a7 + docs/models/components/pickup.md: + id: 982ef529fc21 + last_write_checksum: sha1:af6eb21c8598c30d86fb892b25ffe740c99e8374 + pristine_git_object: d99424409214f81046d02f3384f710cc5175885d + docs/models/components/pickupbase.md: + id: cfa4f2323bb9 + last_write_checksum: sha1:dd8fd4541d2f61c59b65317a34b916e92c57e2a4 + pristine_git_object: 37ef076818d07fad8fdfe3c47371cfef8de60cde + docs/models/components/pickupstatus.md: + id: 02dfc01ddc1f + last_write_checksum: sha1:07e05597ccff8a59533cde7d6c94fd12c5edc2d0 + pristine_git_object: f9af6c65d94d49635838533502434c29cb1a03ea + docs/models/components/policy.md: + id: 66c097e1389b + last_write_checksum: sha1:9c47e910c484ecf06007fdd1408ab2d8c4df2f38 + pristine_git_object: 8875e66bb44ffd67e4b7c31650d9025e557f6121 + docs/models/components/ponumber.md: + id: d5d1b5c9ab7b + last_write_checksum: sha1:8d351f316a130da1ab30dc22ebd9d3d9e1a7d2ac + pristine_git_object: 7bbafb0e013b21d7d52725f203347ca2f2483e24 + docs/models/components/preferreddeliverytimeframe.md: + id: e5959e679827 + last_write_checksum: sha1:535726894bc23a7488a190fb68866162a4b846e8 + pristine_git_object: 1316e208b99a860672b0dadca8382a28dc5125b3 + docs/models/components/rate.md: + id: 2b4408495589 + last_write_checksum: sha1:87d01d41c6f13f7078fbe7e7a260e309e614b66a + pristine_git_object: 7ae01c5833e80738db63961e1cf7fa9d0b64510a + docs/models/components/ratepaginatedlist.md: + id: 53c20a3a16f5 + last_write_checksum: sha1:0cd4dcb8a6809cde58e9cbbf5088d17560b033d3 + pristine_git_object: b2f1f4a15327aa93f94eb4a7261e86c839b20411 + docs/models/components/rateunion.md: + id: a5ac2d60b464 + last_write_checksum: sha1:2884d1ec01a9647e7311b6709d7122eb32630122 + pristine_git_object: 4937ddc742aaec731d769edec9106d818f8fc453 + docs/models/components/recipienttype.md: + id: 3fa30425ae78 + last_write_checksum: sha1:5b49a897eec3684e28e0a0526fe8fc6113cc654c + pristine_git_object: 6f355138b1ab701f9f1cab1df745d1ee474c0306 + docs/models/components/refund.md: + id: a9ba6686865f + last_write_checksum: sha1:f0e49491fe77f9b4dee6a0a1b294bc83b49af18e + pristine_git_object: fa1b72ecdf8778545688d810c15fa632a1f7281a + docs/models/components/refundpaginatedlist.md: + id: a000995628a1 + last_write_checksum: sha1:3834746eeee91e352d2b5fb120272034ab430535 + pristine_git_object: 533f644f97ccf5492aaf316968a6c6704b6ffc0c + docs/models/components/refundrequestbody.md: + id: 21b90379146b + last_write_checksum: sha1:5f22ccb60039315b449c5e963e1ddf8f9f69d226 + pristine_git_object: 1c678f745bcdb9ef0fc91f6c771ecdb839ac5b3a + docs/models/components/refundstatus.md: + id: ccd8379bb890 + last_write_checksum: sha1:c3bdfa390febace9621989d3d73724f7a1894ba1 + pristine_git_object: 0c1816eee8fce83474938966490fb3df58970924 + docs/models/components/responsemessage.md: + id: 509bb3192e74 + last_write_checksum: sha1:6b78bc6b540789ae36a8bf07ea87f9acc8edd489 + pristine_git_object: 649c38b79269e3da20858c88cecc80a25b02e3c7 + docs/models/components/returnservicetype.md: + id: 5881ad00f810 + last_write_checksum: sha1:d51e892e13bfedfb84f27944b86b7d1bfd04534f + pristine_git_object: 423f71d6e4665eadd5faa37b19378af7ed6572b0 + docs/models/components/rmanumber.md: + id: 9e495fc0bd54 + last_write_checksum: sha1:fe5b261bc1f4489065f29ece10bd9a17602fcced + pristine_git_object: eabeb57c0f09208c6186bafdc80532605951b751 + docs/models/components/security.md: + id: 54906b49ea28 + last_write_checksum: sha1:983a06ece33422e2b1b9037f7a786f67529bd0bc + pristine_git_object: 4a121d348fbd55b88f90d81baa5a91e383eff390 + docs/models/components/servicegroup.md: + id: 71a8011ec204 + last_write_checksum: sha1:e6eda923e661eb2f202c7fb2a695d5e9b3dddcb8 + pristine_git_object: a88c000ad6ee0cfff6aa2f3184683df6c45ce32b + docs/models/components/servicegroupaccountandservicelevel.md: + id: 25d5072c5738 + last_write_checksum: sha1:0e7e85d8bfca480f758d8ffeed6ff8ae582099b5 + pristine_git_object: ccd7562eb384bb0a6a11c2866dd69a816133d267 + docs/models/components/servicegroupcreaterequest.md: + id: 56de82c63e46 + last_write_checksum: sha1:380ded84ba14edd5c6e11ed89bde69eef7b26be6 + pristine_git_object: 00d190d9de495ac1ff86d5c1a80a2177812b86be + docs/models/components/servicegrouptypeenum.md: + id: 6314550ce650 + last_write_checksum: sha1:6cca70be00265617409e465652670c75cd5926c6 + pristine_git_object: e957293dbd8763e0f6b1c303dfb6237de0642728 + docs/models/components/servicegroupupdaterequest.md: + id: 049aa5d6c4f7 + last_write_checksum: sha1:026ede6c25be0ce822665df68ff3e384ee037920 + pristine_git_object: d3c8c7b9bc79d6495d3c267ac155ef1722bde5c7 + docs/models/components/servicelevel.md: + id: eca5285495cf + last_write_checksum: sha1:05790688d6bfb403ed87f060716e459ed84278f6 + pristine_git_object: 50a4bdfb5ed4e1200180566be3e1b2b3fd8136be + docs/models/components/servicelevelairterraenum.md: + id: 251f97c884a7 + last_write_checksum: sha1:70eeb8d8e7f40fbed8bb970dafe861cc82779efc + pristine_git_object: de5957f11f817322da973e332fbc8f51c19d58ba + docs/models/components/servicelevelapcpostalenum.md: + id: df06df33ebaf + last_write_checksum: sha1:1404e3c956ad6ba376ce5722a3c5b271e7a04dc8 + pristine_git_object: b57d2da17f63e91ccabd820501c4963c48b96f57 + docs/models/components/servicelevelapgenum.md: + id: c9e2fa4c0c4e + last_write_checksum: sha1:3542f3f76bcfa15e338a4154bda7a30fad4543c2 + pristine_git_object: 40e87d2ebae33c7aca09d290c987ba7c5b94a095 + docs/models/components/servicelevelaramexaustraliaenum.md: + id: f9a0fffc21cc + last_write_checksum: sha1:7c34942649e987d0d6d2cda5d769e47403e4797d + pristine_git_object: 300c91dc6d2718fce5393f307682c75c5ac2d0be + docs/models/components/servicelevelasendiaenum.md: + id: 6140c52f8467 + last_write_checksum: sha1:69d2ac020c7ab2e95421cbc8ed089c539c088c6f + pristine_git_object: 0cf56246baae377c1e0942f3146bdca4183ad968 + docs/models/components/servicelevelaustraliapostenum.md: + id: 3a9bcc83b406 + last_write_checksum: sha1:908d6b91ed63566108f2b5aad343df00bc7c69ba + pristine_git_object: 46d48ef4e7f34adafe7196d50716c41e40f37da0 + docs/models/components/servicelevelbettertrucksenum.md: + id: 08eeee6eccf0 + last_write_checksum: sha1:e7934fefd91fa5adf81bac84fbcf644e59800c16 + pristine_git_object: 7cd6700405690f63712387a302657a3dc2210d36 + docs/models/components/servicelevelcanadapostenum.md: + id: 77b4f9644c8c + last_write_checksum: sha1:7adbe431f93c5123ecc62cbe27021994785631e9 + pristine_git_object: 3e50cfedecdbee067b4e58a14ec7a263c4d10cb5 + docs/models/components/servicelevelchronopostenum.md: + id: a1336083ab3b + last_write_checksum: sha1:d41f6d15be5c4b5ecd9190e4b6ebbe4bde7063fd + pristine_git_object: a9da42ae1ee9f295f6800379ca9036f180501df7 + docs/models/components/servicelevelcolissimoenum.md: + id: 659ebef98f45 + last_write_checksum: sha1:b1df1e9a0911fd46d690116f4729c1a88a3e2fb6 + pristine_git_object: fbc9a940dc102ed237293b3efdb78cd10f8701dd + docs/models/components/servicelevelcorreosespanaenum.md: + id: 4b7674c1279c + last_write_checksum: sha1:2c7659ffe043705a87a2a1fe9f64420f5704aa12 + pristine_git_object: d35716bd65de151b91ca8b23cf96260daa8cf90d + docs/models/components/serviceleveldeutschepostenum.md: + id: 4a92ccd39c5f + last_write_checksum: sha1:bcae3ad3ca63036b8490d2e3a106a1637604a981 + pristine_git_object: d1205f0310b07507eb60c398065faa85173067f3 + docs/models/components/serviceleveldhlecommerceenum.md: + id: 53cdcc448070 + last_write_checksum: sha1:d893ba7e38896ad7720a5ea44bae825a2b0b1dd2 + pristine_git_object: 377148c160f207521de8dc7d6f4f0e7f213dffd0 + docs/models/components/serviceleveldhlexpressenum.md: + id: b213600bee17 + last_write_checksum: sha1:6ab826a2e2d2fc62e383e486086e77a5ac30afce + pristine_git_object: 567ca9c6aa063c41ffae43f011c87fb3377cb52e + docs/models/components/serviceleveldhlgermanyenum.md: + id: 62d88960f7c7 + last_write_checksum: sha1:9c2a356f2990fd6458cbf223d4b92800aa1f0436 + pristine_git_object: 1bc32c6fc0bd49a18ae60151e764f2c07ed4ba99 + docs/models/components/serviceleveldpddeenum.md: + id: 9f14f9f2ae59 + last_write_checksum: sha1:83488707b6cc2009a11f549f88070283c511faf8 + pristine_git_object: 84a7f5cbe93ea9628bee933aeddce50017b9b3ca + docs/models/components/serviceleveldpdukenum.md: + id: e7ddbf42d3c8 + last_write_checksum: sha1:9e1f936209535e75bfeb24094ce351e3fbfd6638 + pristine_git_object: 0aee15f3e64bc2dd9109d928357172d20454fc65 + docs/models/components/servicelevelenumset.md: + id: 986f78996c2a + last_write_checksum: sha1:5d2e145b17c8ac7896d95685c4055c3e2b47d641 + pristine_git_object: 450cc4e2013f02aa05b6b47ed814fa34d23f5886 + docs/models/components/servicelevelepostglobalenum.md: + id: 32f3130168a0 + last_write_checksum: sha1:06e6d731c5a9f7a297ad401b6e15d5b071c006ed + pristine_git_object: 461a3d57a83c6def303d7da2cfaeb8089ca86b9e + docs/models/components/servicelevelevriukenum.md: + id: 2c98701d9d8b + last_write_checksum: sha1:00eef48ad837679498d54408200f776815cdcc89 + pristine_git_object: 3fbc80d5f0f3d6ed89fdd0c4da59dfbf867fd4e7 + docs/models/components/servicelevelfedexenum.md: + id: 3137a2bed09b + last_write_checksum: sha1:83c9f643f177956de69be83a4fb1deb5777a1755 + pristine_git_object: 021ddc16f462dcc69218bfa5639ca19f46a4a8a9 + docs/models/components/servicelevelglobegisticsenum.md: + id: 64522ee09ce7 + last_write_checksum: sha1:54eb018a9d56007cec613631ff9aae8f20013532 + pristine_git_object: 6e7c5d0adb22e3c5a9c1bceb50effc0d7d35131b + docs/models/components/servicelevelglsusenum.md: + id: 7494c6a0b32c + last_write_checksum: sha1:ad494d425e5886c265a2cf7d08de031c4de5371e + pristine_git_object: 9d2bb3726df6aa25bdd80d8df9e6dba71898f8b7 + docs/models/components/serviceleveljitsuenum.md: + id: 6011bc11e29b + last_write_checksum: sha1:fe603e3ec433c7d400640617d74548712382280f + pristine_git_object: 93e6d243ffa74c1d20f202cc5cfdc1b624f6d80b + docs/models/components/servicelevellasershipenum.md: + id: e86149739c9c + last_write_checksum: sha1:34d514b81324c3efedc4b64859ce60d2328f3ad0 + pristine_git_object: 74f41e757e04d1683fb08eb40b22b11a21cbc60a + docs/models/components/servicelevellsoenum.md: + id: 0bb22cb90d9d + last_write_checksum: sha1:0ebeea1ab550df168b5acf964e4de2892ab45dec + pristine_git_object: 1df358226b1607ba2b9b7036f4055cf961312bdd + docs/models/components/servicelevelmondialrelayenum.md: + id: 2a1bcf1871e0 + last_write_checksum: sha1:e9d7521ba96c954efefe533f7aed723f37ae8216 + pristine_git_object: 679c6c2a8e07f795d7976e91b70e7da32e1a90ba + docs/models/components/servicelevelontracenum.md: + id: 0e6f7fb68594 + last_write_checksum: sha1:6b6506160cb68c5eb7a05ddb8e2a9d721b8fd5bd + pristine_git_object: 40aec950e670767bc04a10efc0a42582c66db1d2 + docs/models/components/servicelevelparcelforceenum.md: + id: 66048a6a634a + last_write_checksum: sha1:e740cbc37862722b0352f0ec6a83354bebd24886 + pristine_git_object: b0e8fb7812a55fd883a0270f257e8d3e80920df0 + docs/models/components/servicelevelpostitalianeenum.md: + id: c27baf7fde75 + last_write_checksum: sha1:a9ca256d5bb61d58ba7afe8bd3a0267eaba5db5d + pristine_git_object: 6dfa2b57608a522746bd358a47a9bcd8425401e2 + docs/models/components/servicelevelpurolatorenum.md: + id: d6a520bf0c42 + last_write_checksum: sha1:f83cb7a4ed0f893335a4acee6013963cbefcda20 + pristine_git_object: 4bd5a6371d15718b3efad834fccd18cd2534074f + docs/models/components/servicelevelroyalmailenum.md: + id: 142b1989278f + last_write_checksum: sha1:2844f7202226d6904152e35a18b3b7b6532c768f + pristine_git_object: 539a07b1a5f6539818e3b6052a6a425cc379a6e3 + docs/models/components/servicelevelroyalmailsfenum.md: + id: 5270cdc0cb38 + last_write_checksum: sha1:6ef4f43eb1d40bb75ec251fbcd3e918d1cf9033a + pristine_git_object: cc15ac3a5ef931b67262e8043bd71f1752e4fb2a + docs/models/components/servicelevelswyftenum.md: + id: e65740490017 + last_write_checksum: sha1:2cb528cd6d5a283fe5e5e816d187519c5a688274 + pristine_git_object: ce1a366a3d161903104573cf86642aa7b665b63e + docs/models/components/serviceleveludsenum.md: + id: 21663295a971 + last_write_checksum: sha1:7dfb9f2528e0910adf8fd1d56a9d3c921fe30db0 + pristine_git_object: cd31586f63826d4ab632fb17955feb7108b6b7a8 + docs/models/components/servicelevelupsenum.md: + id: 0a2f93a85533 + last_write_checksum: sha1:32fbf93edd921bbc7d93770575388267bbf4872c + pristine_git_object: d2f2a4f85394f7d7ea10af79807e911b6524d879 + docs/models/components/serviceleveluspsenum.md: + id: 793fdde8aa42 + last_write_checksum: sha1:aa5bf23f9b14c12a8f7c158e4b619c889df40312 + pristine_git_object: e79e7ac6862d32141640a62850470fc47c1b3c1f + docs/models/components/servicelevelvehoenum.md: + id: c8312200ce93 + last_write_checksum: sha1:4db12497f4d7413eb0da7dfec03d34c49142a876 + pristine_git_object: 35fee41d7ebd342e197c827f4e379b1c6e5b9a86 + docs/models/components/servicelevelwithparent.md: + id: b4d3cab352a7 + last_write_checksum: sha1:5d461cea530c8834d42dfe15d3dca51542a5b784 + pristine_git_object: 247b45d3cb2b26672df970d5029ecdc5e93b12fa + docs/models/components/shipment.md: + id: 1dc3da506187 + last_write_checksum: sha1:b84e4f05744a2e3fd69b76117bee829aa261c2c1 + pristine_git_object: ab6f1ee533822eda69dbc9319b5bb029f16bb301 + docs/models/components/shipmentcreaterequest.md: + id: 4760e6e5f647 + last_write_checksum: sha1:a6a99264abdab0b94afdaa0475083bd52fdd48be + pristine_git_object: f2184d0f018fd98a0a09739c03e291b6ccfd1933 + docs/models/components/shipmentcreaterequestaddressfrom.md: + id: d1afd984d42d + last_write_checksum: sha1:a65bba68484693630b469645ad4c174b5e7872c8 + pristine_git_object: 4e53a7f81c90478cb6c35067e8e4f6f4a54b5fc2 + docs/models/components/shipmentcreaterequestaddressto.md: + id: 808baae2d96c + last_write_checksum: sha1:01dea097163d28d6f34ce495d408840099799f60 + pristine_git_object: 1ccad9fba18d7d7666dcf5be7b7519762a82cbac + docs/models/components/shipmentcreaterequestparcel.md: + id: 2d0922fdce5b + last_write_checksum: sha1:bd507d9525e6a06067f649083c08ad9dee3afd5f + pristine_git_object: 758ecb759b953b568da1862fe9f55d3992239098 + docs/models/components/shipmentextra.md: + id: 33f4b769d22e + last_write_checksum: sha1:4d6ae778a6c7fdc4f82b8c8c977128ed2b9b3c80 + pristine_git_object: 7156a14ddff22776fad235b0f0b190456b0229e5 + docs/models/components/shipmentextralasershipattributesenum.md: + id: 197a5833eca9 + last_write_checksum: sha1:54dbd51e068156e1d83612d3a58eb503ece544fb + pristine_git_object: 3a959fbfe3480573333e8029b2e2632e25f0284e + docs/models/components/shipmentextrareturnservicetypelasershipenum.md: + id: 9bcf0c6450ff + last_write_checksum: sha1:07357380def3bc02d8fe65128d8cc137d9142c13 + pristine_git_object: 032b73a750219941653c6e0d99bbfe03dbc958d0 + docs/models/components/shipmentextrareturnservicetypeupsenum.md: + id: 0f2c255bb050 + last_write_checksum: sha1:5979912d2f9da1671a335a027ac0fcc6eaa9737e + pristine_git_object: 3c9398651117d07c4e60b5894d65ab789ab8b5ec + docs/models/components/shipmentpaginatedlist.md: + id: 0ed0ac1d14ac + last_write_checksum: sha1:dd42c59a151a6032c9e2c0ddd08cd5846acc27d6 + pristine_git_object: a6d1fe2f6e6f5a6d07d9c07cdaa8c7a68cb10830 + docs/models/components/shipmentstatus.md: + id: de84f079db11 + last_write_checksum: sha1:513eaa64a4b48f9d91b2f5f76a961df4fa71a082 + pristine_git_object: d0cf8f7a560efa72bae388b795adb1e94a72c30e + docs/models/components/shippoaccount.md: + id: 38b4eb7996f6 + last_write_checksum: sha1:eff162b7dac980c9edec803f9dd174f68b7b0428 + pristine_git_object: 4dbdb27edd693ba5c55b29af50eb2b2cffda23a4 + docs/models/components/shippoaccountpaginatedlist.md: + id: b90015866b63 + last_write_checksum: sha1:6015fcc3f6c868c0f432d4f631328b7b89cfed98 + pristine_git_object: 916ad68ed244d172085d868d6b3a71dd6998596c + docs/models/components/shippoaccountupdaterequest.md: + id: 6e26e9d2036f + last_write_checksum: sha1:cbd9c18cabaad069f6580ad74010ba2c2da64df5 + pristine_git_object: d628b14a04efe783814308750f4b748d7d200b2d + docs/models/components/signatureconfirmation.md: + id: b493f0d16d10 + last_write_checksum: sha1:051e555d3aa965db5ef876f7a8b1cd8900a7fcdc + pristine_git_object: 1edfa741e058e5465646877ab892b50ee6560934 + docs/models/components/track.md: + id: bfbbd1ee6cd5 + last_write_checksum: sha1:e7ef5855fcb6b44a5ef6d9763f66ded25bc1b999 + pristine_git_object: 665f10fa53673539ee406771bbb69dab15cc1315 + docs/models/components/trackingstatus.md: + id: 554a533b5c90 + last_write_checksum: sha1:9deca2dad891ff4c45969345e53dd86b1df4c9c9 + pristine_git_object: 06433ae44778bb9cb34ff95f4ff8dcefbb842d47 + docs/models/components/trackingstatusenum.md: + id: 8279d5751107 + last_write_checksum: sha1:5f719550d04de1ed0dbc949695bb758a565fafba + pristine_git_object: ac7e4fc14398b746a2bb9f09b5168fd2d1ffa659 + docs/models/components/trackingstatuslocationbase.md: + id: 8439cd135c88 + last_write_checksum: sha1:77059581fd3f8236c73765c08d75daeed538b0af + pristine_git_object: ed6e6a4cd4dcd202d815588c15fa08b64c2aff94 + docs/models/components/trackingstatussubstatus.md: + id: 1a0a3dec42f5 + last_write_checksum: sha1:4cdc9f4ce5f7e11868042627fb36da29c2db1e86 + pristine_git_object: c6a95e4dbf29d399f73263c0a3a4a1a7b22af79f + docs/models/components/tracksrequest.md: + id: 2cd8c9868b0b + last_write_checksum: sha1:5303620aa74f443d36fe651410729f5366ef67b7 + pristine_git_object: 9ec35314940013956985c88b4a7595e90baba32b + docs/models/components/transaction.md: + id: 8c92ca082bdd + last_write_checksum: sha1:921ad1eaa78062fa1e3a49f8eb9b00a9d388eebf + pristine_git_object: c8e824b1a6b3e687e9b733af7197021b63b9ae67 + docs/models/components/transactioncreaterequest.md: + id: a1bc733e4858 + last_write_checksum: sha1:6d68b10f0f480e0e5ab99c23cfaa24cc4a48c359 + pristine_git_object: 9862e688bb5328107dd2d8e1f03e45a3ccbc6521 + docs/models/components/transactionpaginatedlist.md: + id: a4db79aef813 + last_write_checksum: sha1:d84ad31d9faf3f48b5f9a6b9139f5cac1bc61a20 + pristine_git_object: 9c1bb62f69f96a24745f697e8f1904c3b755d9df + docs/models/components/transactionstatusenum.md: + id: 8fdeba81fc56 + last_write_checksum: sha1:1cea7bb9d9b4b9fc7eab01fdc74f2e829956d202 + pristine_git_object: dc2d59998bb71e7f5bad43dd74b0db8169de42b1 + docs/models/components/upsconnectexistingownaccountparameters.md: + id: fed2bc5d9219 + last_write_checksum: sha1:c246fd84cac102c807417600240c2f82f1f4b3f5 + pristine_git_object: 0311e58d2a86eb11229ede13f985a8cc4773ea9f + docs/models/components/upsreferencefields.md: + id: 2a08d1040b64 + last_write_checksum: sha1:c47f2bf15de6ea579ea189140686975b84ea47eb + pristine_git_object: c1578f521de48b8521ac0370b93812971e770d46 + docs/models/components/userparceltemplate.md: + id: 59a6f9023541 + last_write_checksum: sha1:c9be89d01e7029c963c2ab4e261c5a9719679c10 + pristine_git_object: 75f2f5aa03c4719d426c0457c6c7c41db2cbaf44 + docs/models/components/userparceltemplatecreaterequest.md: + id: df4bc24ed646 + last_write_checksum: sha1:6daf6b9512082d8ede08b84782612a22e70b0030 + pristine_git_object: ba6d19ba1845190cf9f723a966161e38e85d860f + docs/models/components/userparceltemplatelist.md: + id: 146c27db45f0 + last_write_checksum: sha1:b8beeccc48699d78c7371fd8f3625c9008e68c3f + pristine_git_object: fd7797616562070ae13e3d7d120d68439278e086 + docs/models/components/userparceltemplateupdaterequest.md: + id: e3f993dad3ca + last_write_checksum: sha1:11743b700aeb2537abd5575a11c6862a4a229145 + pristine_git_object: e8d9e85133c5fc0acc20259df2e346f7e2bf4064 + docs/models/components/userparceltemplatewithcarriertemplatecreaterequest.md: + id: dd161b83541b + last_write_checksum: sha1:b89669143777e2c239a3ebad5f476a77aa0e4ace + pristine_git_object: c17744597aab8f561f7ca37e0b64398457c0cad9 + docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md: + id: 2c719b6b168d + last_write_checksum: sha1:26d4fa2935756d77be69c82c95dd846edcaf55ff + pristine_git_object: 9826f7b73f586b811a783419be47315d36b99d88 + docs/models/components/verification.md: + id: 51948992ab6d + last_write_checksum: sha1:9845eaecaddb66b3479dabb5a2953c7dbd46902f + pristine_git_object: d4697e322abfea8c1efa28b0b5c528316cf11eff + docs/models/components/verificationoption.md: + id: b4a49f26c872 + last_write_checksum: sha1:4caf9dd29fd4ddfd707ac5596ba72fefc34da34c + pristine_git_object: 5bb6aae07c8db530f59d40d7222c38f62e3fb8e6 + docs/models/components/webhook.md: + id: a698fffd6586 + last_write_checksum: sha1:2d5663514461ac531c21b16fffa55e3a7bd71888 + pristine_git_object: 6ec76ae3d5d5134601f9f65302b4efbf0a105609 + docs/models/components/webhookeventtypeenum.md: + id: 94f9edbef911 + last_write_checksum: sha1:10d0eaa7ae8adc789157fcb1b4098cacf2521e8e + pristine_git_object: 14886c7cd836afdd8361d2b794677d2224a54112 + docs/models/components/webhookpaginatedlist.md: + id: 1e2d4a3d3f4b + last_write_checksum: sha1:a79bcdbdf3e7ce65dc60e3aaa0a5f2a7c5ee84c0 + pristine_git_object: 0d814a6b3019535a198f67a114032eb04f889848 + docs/models/components/webhookpayload.md: + id: 6ecd2cbb6ed4 + last_write_checksum: sha1:5106fe7443513f9c6092e3823156c051a8a13174 + pristine_git_object: 68ad329f3f2e9e2264e4809b251da5c490d6af56 + docs/models/components/webhookpayloadbatch.md: + id: 5697829a397b + last_write_checksum: sha1:dc336300bbc91f4ce6b448e1f290b6a9ac0e9b9b + pristine_git_object: aa8ebd74c283f017921969f3eaaaa5b0d85e8879 + docs/models/components/webhookpayloadtrack.md: + id: 7ee3b047a2dc + last_write_checksum: sha1:85b550d9ddee31e923648ab7f3cedd8cdc1c378c + pristine_git_object: 0c7ee296250b912ccbb65b0ab6229760fbe8504c + docs/models/components/webhookpayloadtransaction.md: + id: 71803d9d3c27 + last_write_checksum: sha1:5f0fac7b39d14800d23226e0b2fb75e72205abab + pristine_git_object: 492b179e50e5d0aadb8d18d40781746363d2eec1 + docs/models/components/webhookupdaterequest.md: + id: e76a752701dc + last_write_checksum: sha1:ff181a5678b0ad8921c20bcab023317169e7f195 + pristine_git_object: 6bd70cf9283a0bf70472242bfa0f5d9605719502 + docs/models/components/weightunitenum.md: + id: 7f5322f644e2 + last_write_checksum: sha1:aab829fa4ccfbafe8df43d9281f1ea304fcaa2cd + pristine_git_object: 662cd383a6c65d70604ce50d68e7992276244685 + docs/models/errors/badrequesterror.md: + id: e455aebb4452 + last_write_checksum: sha1:884a3207a573f1d36d9dc59f55d559cd2161c873 + pristine_git_object: 9dc0f4741c42229d3f8407a39de0e8541d15dd23 + docs/models/errors/notfounderror.md: + id: e6e9f31b7b5e + last_write_checksum: sha1:e6282f6bf39db7b494c3e3dae541448717d1c4ce + pristine_git_object: 893be68216c8aac7ebf9cf276786334d7bfd517b + docs/models/errors/unauthorizederror.md: + id: 391e1ff1a10f + last_write_checksum: sha1:f070778932442dcdd325e6f23413f95d9579d5c5 + pristine_git_object: f0ba14ca5f16fb03913621d38d0715f33313c696 + docs/models/internal/globals.md: + id: 9c173b87f41f + last_write_checksum: sha1:945ec37d66e7576c0fda0a87d55a4631a282a28d + pristine_git_object: f2cd344afa6e6bba315c4455979eee951449064d + docs/models/operations/addshipmentstobatchglobals.md: + id: e92699d754a9 + last_write_checksum: sha1:599972dcea82c6f21824ba6366c4b60c852b14c0 + pristine_git_object: 8fb1fb161862b2de1243e88e7903d2fc871834cc + docs/models/operations/addshipmentstobatchrequest.md: + id: f54fe67b6615 + last_write_checksum: sha1:8a958c7077dde44ed251eb26e93792377204c1aa + pristine_git_object: d2206ec06800bed5c7dc0cac3a7567f1a7f27e5f + docs/models/operations/carrier.md: + id: 840f028e3a22 + last_write_checksum: sha1:7f9ae6edc31f33431e659d83bd5736aa3f0bc97e + pristine_git_object: 050ff2770d4f1001b7cf53e6068d04b89667d914 + docs/models/operations/createaddressglobals.md: + id: 3f444af26f71 + last_write_checksum: sha1:a4cfd2fb25358a99ae499ca346e52293d12d55d8 + pristine_git_object: dbf870f9a3d1b492237ac9094f0cac23d53e0071 + docs/models/operations/createbatchglobals.md: + id: 9ff773e467b1 + last_write_checksum: sha1:1711d9f0daff676663b05155704c8d7d73d5bd36 + pristine_git_object: 797424cea5f89c5e37de095e397ec33aeaad54f0 + docs/models/operations/createcarrieraccountglobals.md: + id: d4c3bf0baeda + last_write_checksum: sha1:6fa8b691608a265020ce63879741b40b1bada87f + pristine_git_object: e4156ebc1a032bcd9822fee06e4d7d8c1c6c3e5c + docs/models/operations/createcustomsdeclarationglobals.md: + id: 039b4927df5b + last_write_checksum: sha1:8b2c0bb8203c082e7c973e3e97d9104628053b5c + pristine_git_object: 5a0dc97ae8363fa49c9a2f625d4e67fbb82d535c + docs/models/operations/createcustomsitemglobals.md: + id: d5dda69181c9 + last_write_checksum: sha1:52a13424967f6268d270b96c3508ca96924f7a56 + pristine_git_object: b14176c6a62c8fda3ad84fc9f5015f2095a6a57c + docs/models/operations/createliverateglobals.md: + id: e32a67abcac5 + last_write_checksum: sha1:8de2b8af34da01498f0db4d05138d449ca2078d5 + pristine_git_object: 768ba39311c1c60be1e6865c5ea6905aae98c78a + docs/models/operations/createmanifestglobals.md: + id: aa7a1b41b1d6 + last_write_checksum: sha1:5ffe54a404544680ecd86fde64d437196c69ba0c + pristine_git_object: c5acfb80d9e1c6af7fb22cae8041dd71af68118c + docs/models/operations/createorderglobals.md: + id: 94845f440921 + last_write_checksum: sha1:bdfc1052656f042205fc0a053eb87824e24159f6 + pristine_git_object: 7861ee97ace80f1ac691d62f49859109880591e7 + docs/models/operations/createparcelglobals.md: + id: c40a39872ce5 + last_write_checksum: sha1:d1afa0c164f2ed1064e31e62aef9e8212fe4db79 + pristine_git_object: f08bb434772511a1f5ff6298c2a7d2eef29ea0d4 + docs/models/operations/createparcelrequest.md: + id: 0a6db0662b06 + last_write_checksum: sha1:c9f796ed7341039738bd71cab8de6551c81dbdca + pristine_git_object: fea5ed33e5931db8f166af62bc0633ffe6007a5b + docs/models/operations/createpickupglobals.md: + id: 3da107c74ab3 + last_write_checksum: sha1:0ac256141e0b9d6a533ae5a88272b906cbc6f8f8 + pristine_git_object: 7616d5eb7005d8f65bb92f51189fe8c338c71438 + docs/models/operations/createrefundglobals.md: + id: d4e165efcc3f + last_write_checksum: sha1:378140417b50f82ad0395c567de84fa6a4a5f84c + pristine_git_object: e25d0674c80cf1d6933fa33e03189f3f915bc4ef + docs/models/operations/createservicegroupglobals.md: + id: 1e9a3bf88e84 + last_write_checksum: sha1:ed126ca15e85c6e5422af3ebf878954a0ea3088e + pristine_git_object: 3decd52d6aefbcb95649e410f1dfbc21ea2060de + docs/models/operations/createshipmentglobals.md: + id: 29daeeeddfd3 + last_write_checksum: sha1:b84af448ad58eb3d9c130cd54360e10dd5841bfd + pristine_git_object: f3d2861ede01e8508967332354cb5887d826202b + docs/models/operations/createshippoaccountglobals.md: + id: 1ec6d7eb5fb4 + last_write_checksum: sha1:2590af327ac3d7ab232448f6795f20bef5008d36 + pristine_git_object: a2f7ad8f6a74f7d7d04722bfcf6a4707ca52ec3e + docs/models/operations/createtrackglobals.md: + id: 4c4f461b1053 + last_write_checksum: sha1:9f6c16d70f3377b2afb16e9a079491e4fe0bc3f9 + pristine_git_object: 61427dbae2ca3227682d9980fcab6c8dc0658831 + docs/models/operations/createtransactionglobals.md: + id: e94fa0dfb3b5 + last_write_checksum: sha1:dfe4ac1b12fe2fcf3628d67dfcedf722cd688d81 + pristine_git_object: f0384b11c83aa4972c96d18b83d983009c2c5d3e + docs/models/operations/createtransactionrequest.md: + id: cbbd329e3cc5 + last_write_checksum: sha1:6cb7cca3ba3d20e2c1ac504a3d73c84c921173bb + pristine_git_object: de3f490dbc81110e701c1ff506d816edbf80eeda + docs/models/operations/createuserparceltemplateglobals.md: + id: 2f773d836c90 + last_write_checksum: sha1:052ec7f89846b409ec07687b375b4ab81678242b + pristine_git_object: 2a3bc96eaf63b10a6f1f36baf202dcf36df00b43 + docs/models/operations/deletedefaultparceltemplateglobals.md: + id: c850d67138bf + last_write_checksum: sha1:6b34defb7e2fe7713587bcab629f15285d80cf2b + pristine_git_object: bac829e01403f98e97c376a18340af881848a57f + docs/models/operations/deletedefaultparceltemplaterequest.md: + id: 2bc7726fe943 + last_write_checksum: sha1:f71dca6201c5869d338c518fb17e916d87330a4a + pristine_git_object: c181ce2ee6c186ffc47efb6ad3c4506d8289d784 + docs/models/operations/deleteservicegroupglobals.md: + id: ec18e0a21f93 + last_write_checksum: sha1:06764ac9ff7028718c9c0f2e7b4519ad84b2fefc + pristine_git_object: 99f654bbdca6305f2c9b7590e14fb3f4824df6c7 + docs/models/operations/deleteservicegrouprequest.md: + id: 04959fc973f7 + last_write_checksum: sha1:79bb01126c86e1c97cf9e88c094fdaee51fb84de + pristine_git_object: a8e9081a46d900aceb7dd0261cd910f693bfc3c5 + docs/models/operations/deleteuserparceltemplateglobals.md: + id: fcc2bf84b7b6 + last_write_checksum: sha1:fb0b0b6d6916db21f61c6e200ca63afceeea4041 + pristine_git_object: ce0dae711fcede276559a10de200985abae656bb + docs/models/operations/deleteuserparceltemplaterequest.md: + id: a4ac0f13304e + last_write_checksum: sha1:7201dfda5ba46310bc79892b3cbe771f244ec397 + pristine_git_object: 7301f36edbba104b88d852f4579965aeec916bc3 + docs/models/operations/deletewebhookrequest.md: + id: 8f68f0041128 + last_write_checksum: sha1:a920b92407d5e5b6f002cabb5f5628eb7ea947e4 + pristine_git_object: 2d2fa2fbb1dfe96baa587b424e0bd753db6d809a + docs/models/operations/getaddressglobals.md: + id: 2f1bc2670ada + last_write_checksum: sha1:4039f41bd4ee2a8d9a81fbf192aeab40a0b8af38 + pristine_git_object: 0be26b09407fbe9d166aa16897873739b414648c + docs/models/operations/getaddressrequest.md: + id: 06998eecca14 + last_write_checksum: sha1:68b0d8d4552e8f4bc8b76355a244f602bc7dd693 + pristine_git_object: 650e9be578b5ce13cf7a35a5f0a359d4db1f65d1 + docs/models/operations/getbatchglobals.md: + id: dfc44c0e951b + last_write_checksum: sha1:67e72d6ecd37c53a443c72c68b150509ea4de597 + pristine_git_object: d01e0f8be1d2b5ea6a9db5693282306c0ee7658e + docs/models/operations/getbatchrequest.md: + id: c58dacda6336 + last_write_checksum: sha1:1a2a43e1db81c7543c406ded2d6f89e8340e3525 + pristine_git_object: 935c7ace9179be7d3b1aab3c9ec7f5fefffc39b7 + docs/models/operations/getcarrieraccountglobals.md: + id: be4f423b71e3 + last_write_checksum: sha1:89d171369b0d4d2efec373a759e98b4ccc1f5a65 + pristine_git_object: 66cef9d2171f9ca2a64155c461c774a744c5b443 + docs/models/operations/getcarrieraccountrequest.md: + id: 82ef1442903f + last_write_checksum: sha1:454e2e38de5b5bbdd9cbaf30623fdc44c1194543 + pristine_git_object: 3f32262a52580f4837f45a3e0fdec96e9f68b34a + docs/models/operations/getcarrierparceltemplateglobals.md: + id: 155c520b896c + last_write_checksum: sha1:bf2ec1cc5c2cc86cf07114b59fd9beac67e241c0 + pristine_git_object: f6bee32b6ceea8cb64e82c9925eb25c134b6a4a0 + docs/models/operations/getcarrierparceltemplaterequest.md: + id: 3809c04ec581 + last_write_checksum: sha1:a97427566d26b0304f376e694665eb6626633300 + pristine_git_object: ae1226b868b8fd85dd2daafa9bc96073eba1aa96 + docs/models/operations/getcarrierregistrationstatusglobals.md: + id: 16c1c1c82844 + last_write_checksum: sha1:77120a0a3d29c329f97014ef10de449dc69baae0 + pristine_git_object: 1a97a0b0fe4c76bdd806d2657b734e6878dd5fdd + docs/models/operations/getcarrierregistrationstatusrequest.md: + id: e0ea6cb52011 + last_write_checksum: sha1:c728fd1f7b236c71f82c3f9f412270e286ef52c2 + pristine_git_object: 0ee114351eab78f4377fc6b39adced0ea51346ff + docs/models/operations/getcustomsdeclarationglobals.md: + id: 926a64f24da6 + last_write_checksum: sha1:6c8fe6d361154946cbf9814d341387904aba0306 + pristine_git_object: 530b91506e58a5184d8d05ceae34ce0ac7eb6105 + docs/models/operations/getcustomsdeclarationrequest.md: + id: 0e2ccebf67c6 + last_write_checksum: sha1:a90871ef77db25ac93f003247c81861fef34e95d + pristine_git_object: 9759bbc128b3aa0075a17b0e356beb09fca95a8a + docs/models/operations/getcustomsitemglobals.md: + id: f55c699f3083 + last_write_checksum: sha1:6ee9aa1158a62b4e0de68ac301c743f9159dfc7d + pristine_git_object: 642a178522a7a1489733b660c08d45c812a0e497 + docs/models/operations/getcustomsitemrequest.md: + id: 1caabf2188bf + last_write_checksum: sha1:db7bd877cbd7336970f9f9e3b80274a09a872fe4 + pristine_git_object: ec21c08423f3747745e094b9ff292fac9132bba0 + docs/models/operations/getdefaultparceltemplateglobals.md: + id: 36f717c85b9f + last_write_checksum: sha1:0c5600495ac444b16a7feb9d3b9fbdeadf8b239c + pristine_git_object: 010265ef304964d22b8f68d7e4f5b8a177c53ea4 + docs/models/operations/getdefaultparceltemplaterequest.md: + id: 4e75baadfa7b + last_write_checksum: sha1:571848c76f165ee5998d9691fa35343fcdcb6743 + pristine_git_object: c6fe74df192e15f3f590cce2944d25e054058800 + docs/models/operations/getmanifestglobals.md: + id: 5d87c541f84e + last_write_checksum: sha1:91aef07787f72f19d2b7532c6b7e67123e1b25e8 + pristine_git_object: 513fef21f4812ddc3f30c0eb3eb4987e8d2e9101 + docs/models/operations/getmanifestrequest.md: + id: 6f35d1916041 + last_write_checksum: sha1:9c4f77f2e5da4d249bff8b3ffde931ef486717ed + pristine_git_object: 88117c08213de126c8a6120a461d5040ab8e76ad + docs/models/operations/getorderglobals.md: + id: 3d8738d64724 + last_write_checksum: sha1:3190aab9ae05390d3b625c446fd9b62216104774 + pristine_git_object: 002599f86a2eea9240275c0b784ce0f26733902a + docs/models/operations/getorderrequest.md: + id: 27923df83f19 + last_write_checksum: sha1:ab2efbfa8a144586a6c646967433001d981d2846 + pristine_git_object: c8060377da1fe0a0e0e6c813c042c49b460c8ae3 + docs/models/operations/getparcelglobals.md: + id: 949a01130065 + last_write_checksum: sha1:ad21937a023a307b85547ff64cdf40b744336729 + pristine_git_object: d3744ae8464dedf4f8f4157882a2a8aeb3574e19 + docs/models/operations/getparcelrequest.md: + id: b50b8c884105 + last_write_checksum: sha1:706fa108a0045f5d4285743a61f7609cefd85260 + pristine_git_object: f29685069c5ea8a1fbc42404183b0d079fa86a81 + docs/models/operations/getrateglobals.md: + id: 7d09e57be2df + last_write_checksum: sha1:f90da7b425bd397bf587ee8e80771d0dfe750fe1 + pristine_git_object: 41ad097c46306c4dd8b360f61ebe67ced8cbc716 + docs/models/operations/getraterequest.md: + id: 971ef187098a + last_write_checksum: sha1:8d528f8996654859b06db6ee3b97b5957b0bcb50 + pristine_git_object: 9a3e6c12c67aa1c362c8860cf2c2a3bf06a959a0 + docs/models/operations/getrefundglobals.md: + id: 66c4c0811ee7 + last_write_checksum: sha1:dc2530cb411180e42ed2610c06b9b4c3be771e73 + pristine_git_object: f5e12fb94e101b0d1903aa2c8d6980b51b804c2b + docs/models/operations/getrefundrequest.md: + id: 536f52edc567 + last_write_checksum: sha1:79d1737a6bac569aa2d176ec19217142ba4fee36 + pristine_git_object: 2ded85ebb9b8c2cdcd73a0adcc88f45fee546b31 + docs/models/operations/getshipmentglobals.md: + id: 34d08004b585 + last_write_checksum: sha1:83f13aac8bfac0813b56f09aa835e13b18ed2e36 + pristine_git_object: 5452dfd43784608f84297441d07f8edb2481c43a + docs/models/operations/getshipmentrequest.md: + id: be2b0aae7e18 + last_write_checksum: sha1:7867f8492fa717ba68ae1ff75c8cf76a043e2956 + pristine_git_object: 6e48c99b4aa3981f1f54bec16cfb45b93e6f222e + docs/models/operations/getshippoaccountglobals.md: + id: 765f738dc9bf + last_write_checksum: sha1:a1efbcb02b1b1d2605902310113d97ccab5c87f9 + pristine_git_object: ab7024942118a4f9a3f84a5aa919b2eb8bc1c363 + docs/models/operations/getshippoaccountrequest.md: + id: abe3dc7dde8e + last_write_checksum: sha1:150d803a115e53c8010bcfccee84376c0676c196 + pristine_git_object: 48aae5dc8204acc7fae11b4ed628075ca1ae02a9 + docs/models/operations/gettrackglobals.md: + id: 7d1d766c8ec4 + last_write_checksum: sha1:02d1d38b0f591425a76e7f11a77b2135dbf18359 + pristine_git_object: e6fb93be39b1194f48609e378986f46a0de3b901 + docs/models/operations/gettrackrequest.md: + id: f70448343087 + last_write_checksum: sha1:a40ccea4e6805e015cfee70b332580545b20d1d8 + pristine_git_object: a57a50072b0ad290c6192bf3704749e9d9c9a18e + docs/models/operations/gettransactionglobals.md: + id: 07a8ec0d58e0 + last_write_checksum: sha1:1b8ddb52a5a5f106f9957341d561ab13105dde42 + pristine_git_object: aa36922a1629de130f01364f92f55482a5deae9c + docs/models/operations/gettransactionrequest.md: + id: c794795b5f55 + last_write_checksum: sha1:107f6959d0fb75ab1b8ddd81003c5717fb836ff7 + pristine_git_object: a31d36d9235718f79fd50d55ba14586a1830e1d3 + docs/models/operations/getuserparceltemplateglobals.md: + id: fcd58b988899 + last_write_checksum: sha1:bc11e1910a6b2ed2825a31787dd2a6e33b4429f2 + pristine_git_object: 18583821c2ff0fead4aab4347591ef9a8430c341 + docs/models/operations/getuserparceltemplaterequest.md: + id: 1dc552b94c19 + last_write_checksum: sha1:706b77f6ce769edf1feaaaad4552a79c446a3b34 + pristine_git_object: 8ee11b0952000b1a056b22b624888f68d7735249 + docs/models/operations/getwebhookrequest.md: + id: e6e2eeebdfea + last_write_checksum: sha1:60f42432bb2102b28113cde7f5a463aa4ffe0635 + pristine_git_object: 709bf9a1a238c7b44446dd5b4ccfb0a440bcc518 + docs/models/operations/include.md: + id: c5fad3f54823 + last_write_checksum: sha1:b841964151a2885f43ac620785220064b220d657 + pristine_git_object: e416c71a5a27741d414440c054fce4469e198975 + docs/models/operations/initiateoauth2signinglobals.md: + id: db934c91c49e + last_write_checksum: sha1:72735031c9c642e9b2fe0f1c3d9297d3ecd083b6 + pristine_git_object: 0d4b2ebcb5ed13750378ba00d1824d2256429120 + docs/models/operations/initiateoauth2signinrequest.md: + id: d92734e25ec3 + last_write_checksum: sha1:0e344ea8cf347c85ef98b581715be29f822a90cc + pristine_git_object: fe549f6c9015fe090a840b18c0bacf2a9c123bd2 + docs/models/operations/initiateoauth2signinresponse.md: + id: bc83f0cc1b4a + last_write_checksum: sha1:c0c2eaee4160c0a9fdfaea27dfc7269bb9bb5068 + pristine_git_object: ea41d000b59990d0f829adf564958ff2bf782974 + docs/models/operations/listaddressesglobals.md: + id: da7f1d46ede1 + last_write_checksum: sha1:e2cb28101c5c713927523ca6e809012be13a7274 + pristine_git_object: 7750066946a8d1be873f8e3d68108fa272d40122 + docs/models/operations/listaddressesrequest.md: + id: c9f7a2707ad5 + last_write_checksum: sha1:837005c84251d17147ea96d4cc7adefbbd80f37c + pristine_git_object: e2cd6508da11d421e3b6ccc20847e799c35567e0 + docs/models/operations/listcarrieraccountsglobals.md: + id: 9c1f0d480e59 + last_write_checksum: sha1:11553146fd22a68adc7069024db46408af297d66 + pristine_git_object: d07da4c0d6550afffa680d7eed068ee6ae20b473 + docs/models/operations/listcarrieraccountsrequest.md: + id: 6a8cf7f3ab78 + last_write_checksum: sha1:2ab5fcd463841acf2f4f6e699caeeb1e1593ab46 + pristine_git_object: d391b70c799a30059b6cb13f84dd1c3a3ebbbc9f + docs/models/operations/listcarrierparceltemplatesglobals.md: + id: 5d433073c8ee + last_write_checksum: sha1:735c6c3026ac2cba9e643483ab9569d8b8716338 + pristine_git_object: 6cf92d47f5c44ba2512955159455a513b205a66d + docs/models/operations/listcarrierparceltemplatesrequest.md: + id: 3f4cfc273670 + last_write_checksum: sha1:9723841f2f85a53c47622385d9fe4d417fa0298e + pristine_git_object: 9258a671fdb3ade7709d0db593aa444abed068e5 + docs/models/operations/listcustomsdeclarationsglobals.md: + id: 5c2dc5c50d59 + last_write_checksum: sha1:bbc417a70e6160d4b73e3a5619b63f9a75bb5212 + pristine_git_object: d4b1134255aaa2443e661518a7fad05ec7511c69 + docs/models/operations/listcustomsdeclarationsrequest.md: + id: 48b9d17809f8 + last_write_checksum: sha1:fbda4900a85ab08472b97c84b5b35dcf31e056aa + pristine_git_object: 08b30989c3c71044ce3ae27783a482c8d94716d9 + docs/models/operations/listcustomsitemsglobals.md: + id: 7ae259172bb4 + last_write_checksum: sha1:ad2e68e87a625db799fae937994bef49edb48564 + pristine_git_object: 56dabb6c675939da4e635cc4679ee412e0763b5d + docs/models/operations/listcustomsitemsrequest.md: + id: c75fff153678 + last_write_checksum: sha1:f330284c37dc7633a6a4a664cc3f11ea3f42cc8b + pristine_git_object: 99249c6f38a3ee41ce962edb97b303acc06b924c + docs/models/operations/listmanifestsglobals.md: + id: 51357fdf8fb1 + last_write_checksum: sha1:15ca77c0849223e25ce080f2935f06341168609e + pristine_git_object: 91e1d7b0139f6d2ffd892efb874ca5081393b396 + docs/models/operations/listmanifestsrequest.md: + id: 62d8ae59d357 + last_write_checksum: sha1:a9d4e0195af8d87ce71d42d284623e4340f47aa1 + pristine_git_object: 87501009291d33f5b44bfda315c7a5d902238cd2 + docs/models/operations/listordersglobals.md: + id: 859e0ec8f85f + last_write_checksum: sha1:e49629bb79ef8fb6fabe26c488af89089dfbbd0e + pristine_git_object: d5294e12389350b2a9655704f583b331a00f28c3 + docs/models/operations/listordersrequest.md: + id: fbc8f6407a92 + last_write_checksum: sha1:34a7b33dc4652b65c223eab1ef4ddfe1c754632b + pristine_git_object: c7e85e62a6a97f6f2772e03fa79292f9adae9079 + docs/models/operations/listparcelsglobals.md: + id: ee1d634ec284 + last_write_checksum: sha1:1f4432c29a8334691860818dfd8c10fca748b060 + pristine_git_object: 99cb7b00f86653f9ab37578f35bb3884d341279f + docs/models/operations/listparcelsrequest.md: + id: c89a603c60f4 + last_write_checksum: sha1:016ca590b8911f6a752ab09a834a907fe3253450 + pristine_git_object: c00fdc6bc5ac9f41134ac52e7f4cc4bd684b4f5c + docs/models/operations/listrefundsglobals.md: + id: 7d610e8228e6 + last_write_checksum: sha1:91b976b63988d68ea1c7a31cad9723987ce597ac + pristine_git_object: fe8aedc5e2a1b34e666b666090bdd95492a96ae1 + docs/models/operations/listrefundsrequest.md: + id: 132a478284f5 + last_write_checksum: sha1:d651a9a759fa912186dc5f75a5ae5038f63fa4e4 + pristine_git_object: 327262b976a50116c70f1a201423b6e11d91214c + docs/models/operations/listservicegroupsglobals.md: + id: fe9fcfd5ea1b + last_write_checksum: sha1:494307ecee68797f2103d9e5ffa190023889ed81 + pristine_git_object: 9cba86b49602fd6a41b2609c3480832c1e63af3f + docs/models/operations/listservicegroupsrequest.md: + id: 7cb0f87f531b + last_write_checksum: sha1:9326265b7d677520c5c324536f1da1ffe91b54eb + pristine_git_object: 0c54c69ef068a3e4cf6ee63b8fb02362331f4562 + docs/models/operations/listshipmentratesbycurrencycodeglobals.md: + id: 42de11f1055a + last_write_checksum: sha1:dd60dfa5eb2b06dca6d15fe0afa80684ef7f6f0f + pristine_git_object: 2b11a9719fdbb50fae60613c91f2c3038f705d1c + docs/models/operations/listshipmentratesbycurrencycoderequest.md: + id: 44709cb8ba57 + last_write_checksum: sha1:72b630ac2ec1c73a45b46ca8312a7f6ae7415439 + pristine_git_object: 8aa870b1ce63d7682cd5a84e1318ece3f49d85e5 + docs/models/operations/listshipmentratesglobals.md: + id: 5625e36d3cb8 + last_write_checksum: sha1:f3da16936368ff7605dfa1e887abe9318c2c43b2 + pristine_git_object: 23d8dda85d17a7f5a51fdf9591d4f896fe7324ad + docs/models/operations/listshipmentratesrequest.md: + id: b710ae8838cf + last_write_checksum: sha1:0aaabe3c15356df73eb0684d7ba9a3a6a381383c + pristine_git_object: 0cbe1c712dac4d36a982bbfb552378d14d1ca6ae + docs/models/operations/listshipmentsglobals.md: + id: c89f10292e27 + last_write_checksum: sha1:1ad02086678c398c6319c4a09b1e738805f138c7 + pristine_git_object: 1acae1bf9af2d73e6f812fa355abd4986d30c880 + docs/models/operations/listshipmentsrequest.md: + id: 0ca463f50352 + last_write_checksum: sha1:4e8b3fff7d6e4cf3d1f932bb4b72770aac8f1b6e + pristine_git_object: 4d9a1fa7b89db224a19d065459cef579aff256b5 + docs/models/operations/listshippoaccountsglobals.md: + id: 5f73aa3b51d3 + last_write_checksum: sha1:461d76b3990880beef1c17a09f949a51c525fc99 + pristine_git_object: 2f0e105cd8a94547ced1d273ac7a1c7fbb145bff + docs/models/operations/listshippoaccountsrequest.md: + id: abbbf7ebc507 + last_write_checksum: sha1:6165211043ffe5fbdc087a564eac451d1eacecb1 + pristine_git_object: 566a9e5b5785aacbb5ef968d5924b210afaeb406 + docs/models/operations/listtransactionsglobals.md: + id: 3899af497e1c + last_write_checksum: sha1:c1a88c0a3ea6aead0d3cea3bec932a7de690065b + pristine_git_object: b4196cc2cce47aa79e46317c83c36465f5349ad8 + docs/models/operations/listtransactionsrequest.md: + id: fff2b83cdbd0 + last_write_checksum: sha1:2635f2d6da5d582e7bc13fdbd12d9ff9646b1ac3 + pristine_git_object: 0593f0e5e2e20ca18a8e83c56803c364e9270977 + docs/models/operations/listuserparceltemplatesglobals.md: + id: 8f28f085a249 + last_write_checksum: sha1:06915d546df3e8dfdb5f9e1ca2ed64aa785cb11b + pristine_git_object: 42bbb88cf015598ce02ee8ddd0426746c36763ae + docs/models/operations/listuserparceltemplatesrequest.md: + id: c7781ec39420 + last_write_checksum: sha1:e124bae64b13267af44c7795ceda4a07fbf76513 + pristine_git_object: 6b65e91d3f8b2b591a27600802ef7a4e046a61c5 + docs/models/operations/purchasebatchglobals.md: + id: 53e1dc777362 + last_write_checksum: sha1:1b4482f9e2266fec97452f7be3adab3b2a6dce35 + pristine_git_object: c6011916d29308e85cc7505613c0b5f6c874fcd3 + docs/models/operations/purchasebatchrequest.md: + id: bcff1778b6fe + last_write_checksum: sha1:e8f601300aed929fcfd7a8749b0ea0c869dae05e + pristine_git_object: df38b68e56c619cb4899cb6fe4d6a007a67c4963 + docs/models/operations/registercarrieraccountglobals.md: + id: 6de9e1e51760 + last_write_checksum: sha1:d35d36f12667fd044f7cba523da82f42d69ec11c + pristine_git_object: d049dde5a530afda35b45ce6a9067a2a3c846c7b + docs/models/operations/registercarrieraccountrequest.md: + id: 27ede985e5ce + last_write_checksum: sha1:89209a11d804cb194b46729049a92ab04a369a1b + pristine_git_object: 0c284ac4428b93dbbd8b3f960705464bc94d9e5b + docs/models/operations/removeshipmentsfrombatchglobals.md: + id: 09d4dc381ba3 + last_write_checksum: sha1:51f666975594528484a1ceb2b41b4e6bd094ec2c + pristine_git_object: be62a18e57b8737f0f06698a800b38373266ad9e + docs/models/operations/removeshipmentsfrombatchrequest.md: + id: 4f0deed56ad2 + last_write_checksum: sha1:b94773837125ff273a13a6c541916439b4f6165b + pristine_git_object: 5ee0be4a20a1578bdc2a2c3ce8714fee18144720 + docs/models/operations/updatecarrieraccountglobals.md: + id: e383c77cca9e + last_write_checksum: sha1:e27022758eaed607c1a876c9af07e50c012a00f8 + pristine_git_object: dcea997a95e39e24a2fea48881b20f46d8a23ac2 + docs/models/operations/updatecarrieraccountrequest.md: + id: 9a194bffa9e0 + last_write_checksum: sha1:ef49ea3f8bfd65850cf262e563c77d51f4052e06 + pristine_git_object: 4fb63c0e86256b806ab28e37e4892c567da91ee1 + docs/models/operations/updatedefaultparceltemplateglobals.md: + id: 9a4ba5873163 + last_write_checksum: sha1:85f86251b623373fb3e5a5f3d5890d527ad02abd + pristine_git_object: 3c9be9ab414936f5a9b360d53d59fea0c10ff91f + docs/models/operations/updateservicegroupglobals.md: + id: 5e243b960d38 + last_write_checksum: sha1:8829fe61b57fda84a872d8c16f66c7f476e42fe0 + pristine_git_object: 1622576b8b79a20c11524f211d3d8662599a5f4e + docs/models/operations/updateshippoaccountglobals.md: + id: 6feae34f12a1 + last_write_checksum: sha1:3b18603d1a3d5b9acd907dcc6316c1d53925ba99 + pristine_git_object: 63160302080ad284afcd58b3ab13148fb8748a59 + docs/models/operations/updateshippoaccountrequest.md: + id: 1488b3ed89a7 + last_write_checksum: sha1:1333a9dca9eba7cd112cb77e5e97b089d299b684 + pristine_git_object: 93d461feec27c8d14df172866b08c5a27503d284 + docs/models/operations/updateuserparceltemplateglobals.md: + id: 179263eb612e + last_write_checksum: sha1:5c399ce106a4c0c282107d52602d63278eb14152 + pristine_git_object: 3fbdee9f4034c4f73f2934139dafc5232c2cb958 + docs/models/operations/updateuserparceltemplaterequest.md: + id: 35ad6942a61b + last_write_checksum: sha1:547e788238408a9fc1a3c663fa2be837202c252f + pristine_git_object: 4845fb015cfc2752c222f3da2408c962d4a5473e + docs/models/operations/updatewebhookrequest.md: + id: b50a4ad64339 + last_write_checksum: sha1:2e32e38bb8fbe790903fda1cf23d413a8595e074 + pristine_git_object: 64da1e9d8460c48dd127464ae465a24238c734d2 + docs/models/operations/validateaddressglobals.md: + id: 8d66553e290e + last_write_checksum: sha1:773c01c6f378851e703c8070b9fafe8bcc7270e1 + pristine_git_object: 16bcc8feace271e9bc4c583d224f7131436fea23 + docs/models/operations/validateaddressrequest.md: + id: 43566b2b1bc2 + last_write_checksum: sha1:c9cc09c202a308137052c063f0257cab2921706a + pristine_git_object: e4e9e49c6be2ff88dfca0fb13d454b2c95c6947a + docs/models/utils/retryconfig.md: + id: 4343ac43161c + last_write_checksum: sha1:562c0f21e308ad10c27f85f75704c15592c6929d + pristine_git_object: 69dd549ec7f5f885101d08dd502e25748183aebf + docs/sdks/addresses/README.md: + id: 53b1d5208b6b + last_write_checksum: sha1:67c30ee1db480eba46e73cb8b23d753cee8a67ba + pristine_git_object: 9e2912aa954ace09a2779bb22141de93c31186bb + docs/sdks/batches/README.md: + id: affccbddb9a8 + last_write_checksum: sha1:a6bdea93d4f30212d2a0e5ee191676b40156f408 + pristine_git_object: e122e3ffa6fe979157cbde29f0ba08f6ce1469a4 + docs/sdks/carrieraccounts/README.md: + id: 86ff0a6311c9 + last_write_checksum: sha1:c94cec8de6c6fe27ef5c48dc166f9977d5914f61 + pristine_git_object: 40306a545c61882f518e0af6bc279c4af76da9dc + docs/sdks/carrierparceltemplates/README.md: + id: 35205d7570c3 + last_write_checksum: sha1:5a51275190d33e8ef299f2a863b0fb500294addc + pristine_git_object: fb4ee236fc5e4ad62d43400fcf49d2d9d6f53ba1 + docs/sdks/customsdeclarations/README.md: + id: 3f8371fc6cd7 + last_write_checksum: sha1:67eb7daeada654591552fa2be27bd549f45a6478 + pristine_git_object: 2d01c28cb807ee844cbd6749856004856ac1416c + docs/sdks/customsitems/README.md: + id: 34c1a7feb061 + last_write_checksum: sha1:e55bb0e7409af8977758be4575a27b612ddcd789 + pristine_git_object: 746fdb764fba2da46f53356daaa7a852b4c1ff74 + docs/sdks/manifests/README.md: + id: 67507e6342c9 + last_write_checksum: sha1:c4ec7fb6d01d216e0d8e70bf8c6b78d828a2956d + pristine_git_object: 7b8a20f466c5cb737fd3626e2cd3221266f7c1e9 + docs/sdks/orders/README.md: + id: fc5b2caf3cb2 + last_write_checksum: sha1:2185c91252583e515c9f6367c31c18bc7b6b4f44 + pristine_git_object: 5605cd9622f14d0bb23a9877fc304f74d1626cc4 + docs/sdks/parcels/README.md: + id: 3dc200505f10 + last_write_checksum: sha1:d8224f2b60fc7897c927def7314681127a91dcd9 + pristine_git_object: 52fdd681632af2c8d7987c690c272ed25e6ae35d + docs/sdks/pickups/README.md: + id: 044f6c3f35d0 + last_write_checksum: sha1:70226c3c6455c34bf7eb3d709ebef4e7bdc5fd74 + pristine_git_object: 216a2e4c51df50378aca1c1eb84f7913a74bb315 + docs/sdks/rates/README.md: + id: efd8bbdefec3 + last_write_checksum: sha1:edce4c568378753c851f1528ad6b6adb9822627f + pristine_git_object: bfb63062154503ec3de84e7f49e599c2ee3b2412 + docs/sdks/ratesatcheckout/README.md: + id: 6f953e850bbb + last_write_checksum: sha1:dd2c9d63370cb5306e14c312e37fd9daff32ac91 + pristine_git_object: e296bbeba49e8cb06a0877dccd6962474d430821 + docs/sdks/refunds/README.md: + id: 451a9838a921 + last_write_checksum: sha1:3cfc41e0e35cbfa4e5778f430178581813cd5813 + pristine_git_object: df739ffbc9ead32aa994fc3197cf927bb6f8398e + docs/sdks/servicegroups/README.md: + id: 05f68cecaeb9 + last_write_checksum: sha1:9807160d1d8eb83e81f60116c03163fac9b52fab + pristine_git_object: 500b29f1885f7c602d21e386863739d981bf2d54 + docs/sdks/shipments/README.md: + id: e36b52aa4738 + last_write_checksum: sha1:41ad8a7e7cd6b32c210db451c9c06a4e359bffea + pristine_git_object: 323a9df9c421484087b65d0fb168d929a8d8312c + docs/sdks/shippoaccounts/README.md: + id: 182840ec5035 + last_write_checksum: sha1:89146ccc44ab6e3030d1b42e2824e30c7d60c56c + pristine_git_object: ff391591368813146c733966f19481a691944a9b + docs/sdks/trackingstatus/README.md: + id: 0f18c61cead0 + last_write_checksum: sha1:607d3a0e2e8e814fe84b49aeb19ae2fe406d5fec + pristine_git_object: 292dabe7e36fdc083191ee2a8bc8a38e34f2b6b6 + docs/sdks/transactions/README.md: + id: 85592abe3c6b + last_write_checksum: sha1:64b11bab8c370868605245b06ddef966411fc858 + pristine_git_object: 20fa888b806794628dd72d0c5b7e4724d44f9587 + docs/sdks/userparceltemplates/README.md: + id: d4e35d65825a + last_write_checksum: sha1:e52642f7d13ed642a4548f02f50d83fef51a9b08 + pristine_git_object: 471068c8450fba937a3db2bf67e8368ef093ba07 + docs/sdks/webhooks/README.md: + id: e21b32d786a4 + last_write_checksum: sha1:bde035c8a14d187d571a64de005932030af52aea + pristine_git_object: 3eaa829daa1b118b9e3e688cc768483ca75f4b71 + poetry.toml: + id: a81ade82122a + last_write_checksum: sha1:2242305e29dc6921bdf5b200aea5d4bf67830230 + pristine_git_object: cd3492ac9dc870fdcf23dbd94fd1d40cc753cc8e + py.typed: + id: 258c3ed47ae4 + last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 + pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 + pylintrc: + id: 7ce8b9f946e6 + last_write_checksum: sha1:efb10fa86b8a053964153923776de49acf135da0 + pristine_git_object: 18f8c357a2206431626265d3943f66c4c1aa663f + pyproject.toml: + id: 5d07e7d72637 + last_write_checksum: sha1:05479d1ad35770e36691d082805bb7851ec0f975 + pristine_git_object: d39700fce82a8ff6eba9e3977c377dc5da0cb465 + scripts/prepare_readme.py: + id: e0c5957a6035 + last_write_checksum: sha1:e00374f5f50ebf41cd4fd2e5f3b4e54cc63e354f + pristine_git_object: 38b9b0c06a57cd1a4a320214d0e40d2b008d204e + scripts/publish.sh: + id: fe273b08f514 + last_write_checksum: sha1:b31bafc19c15ab5ea925fdf8d5d4adce2b115a63 + pristine_git_object: 2a3ead70ccc6228cbae1c5c8a319b1399f3804ea + src/shippo/__init__.py: + id: 03c8ab79e490 + last_write_checksum: sha1:da077c0bdfcef64a4a5aea91a17292f72fa2b088 + pristine_git_object: 833c68cd526fe34aab2b7e7c45f974f7f4b9e120 + src/shippo/_hooks/__init__.py: + id: dd1c716793ac + last_write_checksum: sha1:e3111289afd28ad557c21d9e2f918caabfb7037d + pristine_git_object: 2ee66cdd592fe41731c24ddd407c8ca31c50aec1 + src/shippo/_hooks/sdkhooks.py: + id: aaf9a2845f64 + last_write_checksum: sha1:b2408ce491109f3b8c3a9a1e0997de0c17a7adc7 + pristine_git_object: 6f90720817609430a494b7ffb11d28916c9de985 + src/shippo/_hooks/types.py: + id: 9e8ff6ca99c1 + last_write_checksum: sha1:278044bf2dfe20efdd95368d3a5a88f410f51421 + pristine_git_object: edfd54a972c6e606a65e31f921020b039c8df698 + src/shippo/_version.py: + id: b71c1af6ca9d + last_write_checksum: sha1:b0b5254f253b7f4ad0d70810927b8aba4e67b1c4 + pristine_git_object: 0659c7f88b619ea617185f008f33bcc5c8bbc867 + src/shippo/addresses.py: + id: c011488252c1 + last_write_checksum: sha1:590226005e9560bd3afb1ca20f59d20d2bb2bef6 + pristine_git_object: dddd7bd92c73238ba2f370bddd11455929d3723d + src/shippo/basesdk.py: + id: b5fe6936ac52 + last_write_checksum: sha1:297241e7a0a39bd27f0c11bca294467e9730c715 + pristine_git_object: ec67adb7f78411e1921e2d9eb4b6887d552d494c + src/shippo/batches.py: + id: 55578039dc0e + last_write_checksum: sha1:1911b6a259ba99a50753fb2d046b26e4a0da6535 + pristine_git_object: 633917a79229dbd3e26460a63f5847c7e8752134 + src/shippo/carrier_accounts.py: + id: 7dc7c62a9fcd + last_write_checksum: sha1:9aaed427178cdd28c2b73636d223ca4dd0ea473e + pristine_git_object: 6f30f91e080044c6e3b5432c36a8bc6787af945c + src/shippo/carrier_parcel_templates.py: + id: 33beabc95904 + last_write_checksum: sha1:18f84969fb5b79e4599cdb014cc7fcccf1f0ce76 + pristine_git_object: b54969a91137cc37441f064b40981565fe3d877b + src/shippo/customs_declarations.py: + id: afb609f7b6a2 + last_write_checksum: sha1:21de9cfbdab2f36c3b3b5d67c07ea698d8921bac + pristine_git_object: 2ab103361406581e146bdb39ada82517096850d9 + src/shippo/customs_items.py: + id: 9e850454ea9a + last_write_checksum: sha1:4aeec6aeb90d2f0c7739aa17295b06bb0b6cf763 + pristine_git_object: 2dc543800b5acea49fb6a872ff2e00244c437210 + src/shippo/httpclient.py: + id: b9f88e548bcb + last_write_checksum: sha1:5e55338d6ee9f01ab648cad4380201a8a3da7dd7 + pristine_git_object: 89560b566073785535643e694c112bedbd3db13d + src/shippo/manifests.py: + id: 1896b9dce97a + last_write_checksum: sha1:dd64e4981b6456ea192cb5a7df717eec5eb8b868 + pristine_git_object: d6949a9b4860004783f767a3609788ace53bff35 + src/shippo/models/__init__.py: + id: bef9e693dcb1 + last_write_checksum: sha1:8ae2707dad0f981513e522abcbde16dab78939af + pristine_git_object: 1a349122673e9dde5e63f86e406a44910b584d13 + src/shippo/models/components/__init__.py: + id: a77d06773815 + last_write_checksum: sha1:971d897061577cdb126daf372e3711e545994602 + pristine_git_object: 019d599e4d117a304df29537fbad03edc94333ad + src/shippo/models/components/address.py: + id: 2819a4aea92c + last_write_checksum: sha1:5a953f3c96f2a592a5ef2b7209be81697da123fa + pristine_git_object: 77eb9b3954af8e32d36010b6025ae90bfbe9b3f9 + src/shippo/models/components/addresscompletecreaterequest.py: + id: 72154a6ca78f + last_write_checksum: sha1:577d2b11d1771f7005bf6cd22cd8663adbba96b8 + pristine_git_object: 0c5efbe9f1aa861301e58c734d3488e8eee9e691 + src/shippo/models/components/addresscreaterequest.py: + id: 2eb649af08c9 + last_write_checksum: sha1:d20ef4fb7168a0270cf7f524d9487c2390d237af + pristine_git_object: c20ad8903074cfbf8c88789aebd748be44226870 + src/shippo/models/components/addressimporter.py: + id: ddb17610012c + last_write_checksum: sha1:a71dbd66c9df3578ce99c4addcb48710e0cc4151 + pristine_git_object: e6cda15bf84a120db9dc926888f4531bfdeb6052 + src/shippo/models/components/addresspaginatedlist.py: + id: 9ceadbcde42c + last_write_checksum: sha1:e3a9aa401a96227daa030f837c76f308c702862b + pristine_git_object: e51c6d73fe20723941df2e1f5bf76feacb771db8 + src/shippo/models/components/addressvalidationresults.py: + id: 3a5739a12444 + last_write_checksum: sha1:4c31fe868ea2393c2322ef7d9fc2c29647466bcf + pristine_git_object: 9ccd39a5303f9869202bcfb93436ab1e23a32a88 + src/shippo/models/components/addressvalidationresultsmessage.py: + id: 1e0a8b4a1126 + last_write_checksum: sha1:df50e3f632a1adde86813943c400ce75c45e58fa + pristine_git_object: 8dd21a9a7070370f22c3da8ae36c2185dd2e1587 + src/shippo/models/components/addressvalidationresultsmessagecodeenum.py: + id: 5c3b1f0daf65 + last_write_checksum: sha1:83998b08c5424073ecf823c494a2dfa762121e09 + pristine_git_object: ae85ba99925cb844280a8d1b2544e95de519e014 + src/shippo/models/components/addressvalidationresultsmessagesourceenum.py: + id: 928efe52c885 + last_write_checksum: sha1:99d58e01198975e295900b9e0c5f969eb73ab0fc + pristine_git_object: 05b1b8152b7452560a76f3ed176397f48c8f7456 + src/shippo/models/components/alcohol.py: + id: 58ae8b64616c + last_write_checksum: sha1:0c3c4e4216c80a01939c48497b38478e04b205bc + pristine_git_object: b591dadc5fd99917bd104b87c4dbaba615206a95 + src/shippo/models/components/batch.py: + id: d6ad94d53c1a + last_write_checksum: sha1:de26a3dfdc4d9e241c3c211dbaf135b41c775279 + pristine_git_object: 4f76bd4e06ff79ba483baba0c3d19b6feac01e39 + src/shippo/models/components/batchcreaterequest.py: + id: a7e97c37bf07 + last_write_checksum: sha1:0593640778160734fec609483c77f8269d67809a + pristine_git_object: f217b2db0866536602f2a941802a6be97211976e + src/shippo/models/components/batchshipment.py: + id: 87d403b0b769 + last_write_checksum: sha1:f18f207dc7a9c71fee8940b0bfc09d42eafec704 + pristine_git_object: 07da999ff89a2088551eda32f76e509f648c2ec4 + src/shippo/models/components/batchshipmentcreaterequest.py: + id: 0fa2ef983c17 + last_write_checksum: sha1:c383382ba5d0e75067c410bf42141d53894a0cf5 + pristine_git_object: 6356be4f3cadda81b8901f679faeefc253227b51 + src/shippo/models/components/batchshipmentpaginatedlist.py: + id: bcede244307e + last_write_checksum: sha1:cb84625ca95d8fb466aab99ae02d97e19f156481 + pristine_git_object: 28c76d3f5073f6e865fcab62dad61de34920ff27 + src/shippo/models/components/billing.py: + id: ada433c85975 + last_write_checksum: sha1:8ee1a413502cc88909e33babe35c05e115f0d533 + pristine_git_object: b771da771c10640e1b4df9d80e6a7e85c78422ae + src/shippo/models/components/carrieraccount.py: + id: 8c0eda21dedc + last_write_checksum: sha1:86867825e8953a90693b640f2a54a807403b2636 + pristine_git_object: 6dce6572b7db8f6361e6c31c11b41c25fbc327f4 + src/shippo/models/components/carrieraccountbase.py: + id: fa3fe479fab8 + last_write_checksum: sha1:311f544bcafce633188130f2aecaa43e5e60a350 + pristine_git_object: d4372ba7a41002497f0159ab17673eaec846ea9e + src/shippo/models/components/carrieraccountcanadapostcreateparameters.py: + id: 31370d381941 + last_write_checksum: sha1:246fe46edc65e667b6de234e77e452677c8b2534 + pristine_git_object: 990662eca7d971949b941a73956478eb8ddddb8d + src/shippo/models/components/carrieraccountcanadapostcreaterequest.py: + id: 7248bd86bf5f + last_write_checksum: sha1:3a52d5288978eb9d06e0a3a9b703e75736b509ec + pristine_git_object: e8a81754ffa9dea0151c2d4e341cf2dc570f11ca + src/shippo/models/components/carrieraccountchronopostcreaterequest.py: + id: 928d5b88b2c1 + last_write_checksum: sha1:e9d3f730158a2c6ede63732295c07eacf16cc723 + pristine_git_object: c33985ef983b926a8064811df41dfc9a3c5f6efb + src/shippo/models/components/carrieraccountcolissimocreaterequest.py: + id: 589957c9bd2e + last_write_checksum: sha1:fb78e38db197a54dbeb7d4cacae8fa195d52fcb2 + pristine_git_object: d7f9d9428fb554654fdcc4ce19b413c5317b7578 + src/shippo/models/components/carrieraccountcorreoscreaterequest.py: + id: b67ae3addf0b + last_write_checksum: sha1:54e4468bf44f8e0ef7e813da049a0b78d17a3723 + pristine_git_object: cd5f649aab810b346725a5e7ac61fab24a84a781 + src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py: + id: eade6370ce5f + last_write_checksum: sha1:2ffc1af45bf5c4f22d3df11bd17782ef6680e796 + pristine_git_object: 244c6a974ba7024ed897cf925b237d16ef141326 + src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py: + id: 28b0c0925e95 + last_write_checksum: sha1:ee0575ab893b836d3168150d3249a5a7627e2ec8 + pristine_git_object: f4c7fc9e9cf8307478ee187383e95c6be2e6ee74 + src/shippo/models/components/carrieraccountdhlexpresscreaterequestparameters.py: + id: 6f53c75d0716 + last_write_checksum: sha1:b7d089e8aed4f57089e76a18eb1d2382664652b9 + pristine_git_object: 4d134acd1c9cb2244c8d8a72526a372d9f551cc4 + src/shippo/models/components/carrieraccountdpddecreaterequest.py: + id: 8535b9dd6b8d + last_write_checksum: sha1:74eb926997fa95fad218f7eda2ac5c0d1ccd2c05 + pristine_git_object: de2c5d7bbf30533263960d5899f319a9c566888a + src/shippo/models/components/carrieraccountdpdukcreaterequest.py: + id: 0e9b40179ced + last_write_checksum: sha1:2f69de4bb8e4c16f492f12ab03431560b5e78491 + pristine_git_object: d638859654ebc50cd4085455c1363823b0448153 + src/shippo/models/components/carrieraccountfedexcreaterequest.py: + id: b8219ef5c7cc + last_write_checksum: sha1:d3aee537c3d62edfd5da1f7d52e40de9dc8ea268 + pristine_git_object: 1f404290960117da1e555e5e9270b3ce9723eac5 + src/shippo/models/components/carrieraccounthermesukcreaterequest.py: + id: d8ca25c98bd7 + last_write_checksum: sha1:5ae40ff7fab1ca80d3786a63ea440c9eea5f7445 + pristine_git_object: 30fd0fbd6371863437e3f4dfce1d89d049fcfbaf + src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py: + id: ccd221abe6c4 + last_write_checksum: sha1:17e0f608c58d4544a387935c6de2304330d86ede + pristine_git_object: 800dabfa11d83efc2f2f0ec67f0cf06179778294 + src/shippo/models/components/carrieraccountpaginatedlist.py: + id: 748e929b22cc + last_write_checksum: sha1:55c78e2d9f7b495da0102930b8d24f1eb13c2544 + pristine_git_object: 294607cec6314b021e52e77f3e38706cc510c62d + src/shippo/models/components/carrieraccountposteitalianecreaterequest.py: + id: 7c6949786490 + last_write_checksum: sha1:24b28381c54ed51ad232272030c600ce343dfedb + pristine_git_object: eefa9b3d727f5e8d9d37be10e1a5e14e6a9e87f8 + src/shippo/models/components/carrieraccountregistrationstatus.py: + id: 703226fed8ad + last_write_checksum: sha1:7ea9a6f913f88d415306510b1f75d1dc4f026c15 + pristine_git_object: 9048a39da1ecf82e6b1a6832b15f6584f61cfb82 + src/shippo/models/components/carrieraccountroyalmailcreaterequest.py: + id: a90aab9bc1a7 + last_write_checksum: sha1:e3436dff72512cbfcc94afe05f150d40b00f0190 + pristine_git_object: 1987f9013a8d813bf709c641c9d5737f8c68ff31 + src/shippo/models/components/carrieraccountroyalmailcreaterequestparameters.py: + id: 65cd8dd23e64 + last_write_checksum: sha1:b361bf1e4811d60ae3328d4024b8c022e19589f8 + pristine_git_object: bf956c021ac45fc5b02ed5d9d016089f74467959 + src/shippo/models/components/carrieraccountroyalmailsfcreaterequest.py: + id: ccbf9ad1c546 + last_write_checksum: sha1:e2e50719e178e7fc0a7ca9f54019812f591f15dd + pristine_git_object: 03615ac823906ca53077a2295c92d87ada7b6539 + src/shippo/models/components/carrieraccountroyalmailsfcreaterequestparameters.py: + id: 8b21cf468398 + last_write_checksum: sha1:e11bf50641eb55d9705672385945e59a8395d8eb + pristine_git_object: 1f740b4458a566aba9eaef0ccef1142c600b6221 + src/shippo/models/components/carrieraccountservicelevel.py: + id: 6bd1e641a2b1 + last_write_checksum: sha1:ee7dbf422fb5bded876018a574fa725b454a8860 + pristine_git_object: c7b315e0d7a5882f5ac61e3c142cd58019564d67 + src/shippo/models/components/carrieraccountupscreaterequest.py: + id: fcda5d6baa5a + last_write_checksum: sha1:e5013b52a200c667606b469e9f56579619d596cc + pristine_git_object: 6416da06ac731ed701c0cfdbeef088503d5d930e + src/shippo/models/components/carrieraccountupscreaterequestparameters.py: + id: da93d77564f7 + last_write_checksum: sha1:6b2bcb569825370ceba970344b07ee3e8976cf20 + pristine_git_object: ac4e51b8bbf5b5d2476aafe0f6ae044535499536 + src/shippo/models/components/carrieraccountuspscreaterequest.py: + id: 79479930e8e0 + last_write_checksum: sha1:7fd30535545dc4a41453389c66865fd9b076a242 + pristine_git_object: 4d7fca9a2c7f06006a185ca1e32daf789b33e624 + src/shippo/models/components/carrieraccountwithextrainfo.py: + id: 4151e93af507 + last_write_checksum: sha1:2499e8c8b75995303b7b4a511da6900036065be4 + pristine_git_object: e31c5ea03940cbad441f39b36d9f6c4c4739a8a4 + src/shippo/models/components/carrierparceltemplate.py: + id: 87c022ef28ca + last_write_checksum: sha1:ab0295cbca0d9c26081d605034dcb635ac25052a + pristine_git_object: 209f8cd90f137c34c070dbfa2bad8927e933d2bb + src/shippo/models/components/carrierparceltemplatelist.py: + id: f1996dbd7695 + last_write_checksum: sha1:5cb95ca3651d007d1f2a0a2f605c4ff026865051 + pristine_git_object: 68df40cab6063fbd8c1bb4227398359c21dbc8c8 + src/shippo/models/components/carriersenum.py: + id: 5a317b0301ec + last_write_checksum: sha1:525c1e1328a0490f7206ab1e3d6cea584a58cad4 + pristine_git_object: 6b7d7c20f6ce3089feee106e1e96910808153e23 + src/shippo/models/components/cod.py: + id: 8de38f4bf475 + last_write_checksum: sha1:3a0f82166add3852b7898ac4f737229fdb1fb78e + pristine_git_object: f7a9b7a91b00426958d4f6a30d21e9f812ece97e + src/shippo/models/components/connectexistingownaccountrequest.py: + id: 8249dfed9cd0 + last_write_checksum: sha1:e1889efd4a25dc1ebe3fb19bd60bc25a20179442 + pristine_git_object: 9e1592b4ff6bf68d6a3d747f7cb3f10f1dcffee0 + src/shippo/models/components/corerate.py: + id: d26a1ff395ea + last_write_checksum: sha1:8c1f9556c2432efdfa7e81e5bb6ea6291eebf0bd + pristine_git_object: 7085b70e1b3625de6040227d4ebc83e1e801f4ff + src/shippo/models/components/customerreference.py: + id: ba731393b4cd + last_write_checksum: sha1:4899cc42fb92caa9fdc7f093778d45a8bc1b28cb + pristine_git_object: 6f423e2e353b41925e2e218436b2849d04a98099 + src/shippo/models/components/customsdeclaration.py: + id: 7737ece6fcd0 + last_write_checksum: sha1:5a27bd0a83d57b085b9c1f227b3e2574cf4fff5f + pristine_git_object: 6a7c2d23accba9978731a034c8ab657f4eaf9028 + src/shippo/models/components/customsdeclarationb13afilingoptionenum.py: + id: 9f6677bb6161 + last_write_checksum: sha1:22e33f834263d18ae2bb91b953d16bdf345fbb93 + pristine_git_object: 8195f0f9987bb6e414edd276f52f62cddbc3fc5d + src/shippo/models/components/customsdeclarationcontentstypeenum.py: + id: b42b0455e23a + last_write_checksum: sha1:7ca3a21e231987f969ec217216a61b53bee2c2c3 + pristine_git_object: c73352fa14acd2b1d90611a0a609c2516d0b34f6 + src/shippo/models/components/customsdeclarationcreaterequest.py: + id: 6fef411b878f + last_write_checksum: sha1:dc624f98bca6ffb22c056267abc6ba79664032bd + pristine_git_object: 93ddd7062408ae67c3f5f4c48108c0ad77ca78b8 + src/shippo/models/components/customsdeclarationeelpfcenum.py: + id: bd2bba6c0fcb + last_write_checksum: sha1:17d18f6b468f8058a65a49d768ab5b822de94a5d + pristine_git_object: 5569a3403380822350c2a9a2bb8e27b23414f73d + src/shippo/models/components/customsdeclarationincotermenum.py: + id: c16c9d305d1a + last_write_checksum: sha1:6c4defae5dc9ebeab039fd2eaaea76ad3efa33b3 + pristine_git_object: 0990decc9442e9fc261f724fc9d17fccc990b575 + src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py: + id: 5bd27658d881 + last_write_checksum: sha1:1b5ad0a8fe9388d7ac3b69c061524e413a48d6f5 + pristine_git_object: 2e058ef722bf19cf31ebf781f7667dd66d91f205 + src/shippo/models/components/customsdeclarationpaginatedlist.py: + id: b8a8b8804f0e + last_write_checksum: sha1:808c03ecb1d4247a745695edbcd45aac9559f29e + pristine_git_object: cb5ee009ae3ba62e041aea4de6f4df6b1d0a5fee + src/shippo/models/components/customsexporteridentification.py: + id: a6383370e43e + last_write_checksum: sha1:719a9556e51b6df6648f99b190324c9a401f0753 + pristine_git_object: 5167c7b4f9af7cdcbdbb45425018a8bc449600af + src/shippo/models/components/customsinvoicedcharges.py: + id: 5354b33475e5 + last_write_checksum: sha1:bc69115cb1702fa7b4d7e6b4ed688f0e7b1496c1 + pristine_git_object: 2d65ce37d49028771dca88f29a7818f62c685668 + src/shippo/models/components/customsitem.py: + id: 5c44d597eaa0 + last_write_checksum: sha1:12bf26c7c0e524c992a2c8a78a1f56dd5bd8034a + pristine_git_object: b9e2a18b3db8cde4d087e2a0b06d8f40dff76b47 + src/shippo/models/components/customsitemcreaterequest.py: + id: 4afe1cd1fba8 + last_write_checksum: sha1:3e31944460f1e855732f5d0d61a9e2a8b8b01765 + pristine_git_object: dde7abbbb5ff98eb2f198a52eb4e6d7535efaa87 + src/shippo/models/components/customsitempaginatedlist.py: + id: c26b47d41b7f + last_write_checksum: sha1:25793816d5425ec9f99370017eead60d52bb818c + pristine_git_object: 83cdbb93d67991c4728e8b04aee087feafda0923 + src/shippo/models/components/customstaxidentification.py: + id: ec100be9d7c7 + last_write_checksum: sha1:c5cc655a6d8cf982a08ab9f3ae905cb9539b4096 + pristine_git_object: 64734cd574af68635ed1bc6d56f7c8ca64a4a479 + src/shippo/models/components/dangerousgoodsbiologicalmaterial.py: + id: 5f56d499432e + last_write_checksum: sha1:81caef1145ffe3c3ee6a872bde0658360d0a3455 + pristine_git_object: c153b9a594fd100ad741919fad0ec0c8fcb6a0e0 + src/shippo/models/components/dangerousgoodslithiumbatteries.py: + id: 4ae35ae521d2 + last_write_checksum: sha1:11dce375def493dd53f961a3f60674574bc651c2 + pristine_git_object: 5222df398c9154ee0950ddc6a3786edbef38cae4 + src/shippo/models/components/dangerousgoodsobject.py: + id: 0988995cd55b + last_write_checksum: sha1:6a9d191c8237939aeb80d15f0f042192d00a6aff + pristine_git_object: c35fc04d4919c95f3be2782539895a35b93bb20c + src/shippo/models/components/defaultparceltemplate.py: + id: e4f4c73c5db2 + last_write_checksum: sha1:79fd7c62f73627a53c4a2d20b4c5bef97e40a728 + pristine_git_object: f6a6b1e7e23dd86a6a667ad5502765dc07edb852 + src/shippo/models/components/defaultparceltemplateupdaterequest.py: + id: 436f6db83a1a + last_write_checksum: sha1:55e4c84df89ecd63132b311ac965da0949363912 + pristine_git_object: 166f1b0ba71ef213817ab337c0ed8528ff232f1e + src/shippo/models/components/departmentnumber.py: + id: 8878652df981 + last_write_checksum: sha1:46d91254c8f1955bb6fed79c0aafa916ab62df87 + pristine_git_object: e3e4cf017c37535b27741eb57cbd4a75eb024c9e + src/shippo/models/components/distanceunitenum.py: + id: 77b39cfa6ec6 + last_write_checksum: sha1:933cebb525fe9852fcc6523b9033b6dc8cbd56b6 + pristine_git_object: b382ce886b1eb1276bbd8deea90322c4f062d6c2 + src/shippo/models/components/dryice.py: + id: e83e274adaa7 + last_write_checksum: sha1:cbdf7d6f069a6be2035ca747d84678ff945e66c2 + pristine_git_object: 5a88bb23f6f9b7fa5e50605f5537506f772539a2 + src/shippo/models/components/fedexconnectexistingownaccountparameters.py: + id: 0af30fd3b0d8 + last_write_checksum: sha1:66883f460083b12329600fda754b5b4d783202c4 + pristine_git_object: 057cadef1b04e0e1b3795ec4edcdc61631fe150b + src/shippo/models/components/instanttransactioncreaterequest.py: + id: 7df05b59f2e7 + last_write_checksum: sha1:b7841442433cff34435e8a53f61d33f50ab48f0b + pristine_git_object: 4f8afbc76c80d5a74fe9cc6d8e81afbeb5bd145d + src/shippo/models/components/insurance.py: + id: c4224b9920ef + last_write_checksum: sha1:8f4bfb1e2901cc15bd899077df28aeac262c1b1a + pristine_git_object: 559ce54e620501bbc140129ba1b11fa42fdf7fa1 + src/shippo/models/components/invoicenumber.py: + id: c2f089db67fc + last_write_checksum: sha1:09f90eef5364b1df0db3e2079330668128c45d5b + pristine_git_object: a6d425cb56ecbe6163c8dcc867851b95e9ecff8c + src/shippo/models/components/labelfiletypeenum.py: + id: ef2114ba3422 + last_write_checksum: sha1:4c2f2e0dd6a6ee296a06cbb9f02b4635ae53e6be + pristine_git_object: a389192afe9e6e2f61d5cb96a3255324ceae196c + src/shippo/models/components/lineitem.py: + id: 7589a4aec042 + last_write_checksum: sha1:81368db52e37e667f85a13a26aba1ae76835ad05 + pristine_git_object: b15583718bbff8432f7ece4b491bc5a606c3d6f1 + src/shippo/models/components/lineitembase.py: + id: 20fa605854ef + last_write_checksum: sha1:db8b1445726b191fa0370e711f2d74dce9cae399 + pristine_git_object: 13afa9ae241be84037c1e4cf1651c948bc249f72 + src/shippo/models/components/liverate.py: + id: 1785bcf135fe + last_write_checksum: sha1:65198c3a3d5da078e7726b2bc6d4add727e2d05a + pristine_git_object: 3bfc6d145fcc96854d55a7db063db5c1dbe68cc6 + src/shippo/models/components/liveratecreaterequest.py: + id: e9601ea74882 + last_write_checksum: sha1:6a690b20a02d6f616dc157d498b1122fb653046a + pristine_git_object: 9c5a3eea49936f03b37f6507f06ee0b2d4909004 + src/shippo/models/components/liveratepaginatedlist.py: + id: c7b606bcaf0c + last_write_checksum: sha1:48f215521b1a7ab945089426872c60d876c9bc03 + pristine_git_object: 8e8b113366453adb4d43ddd7668f2cf80efa1a9c + src/shippo/models/components/location.py: + id: ab77d9f3795b + last_write_checksum: sha1:affe2d22bd3c9ac74b23dc311cc27cc1f2af097b + pristine_git_object: f8a0f2926d12492799978316509ef48ac5d1dff2 + src/shippo/models/components/manifest.py: + id: 4aee54f6794b + last_write_checksum: sha1:d8f5e2f4c3458d9fa654fef834f05f0422795d76 + pristine_git_object: 84972107633a9ddbc97ccd6ed3c3da0bb8f59baa + src/shippo/models/components/manifestcreaterequest.py: + id: 6dca7c7ce9fa + last_write_checksum: sha1:db4feaf484afde6aff86dd6a3b35bf0399e4f1a0 + pristine_git_object: 7ba9a587747ec35053ae1418e3f353d5488bdae0 + src/shippo/models/components/manifestpaginatedlist.py: + id: de3d7e93e547 + last_write_checksum: sha1:4a1e863c0a6570c1bf1036797fe717d95d08390b + pristine_git_object: 9a67a634f76acdcfe4a844efa29c326debc53896 + src/shippo/models/components/objectstateenum.py: + id: c529425c94ce + last_write_checksum: sha1:0a4b3f1eec67dc6b9936ec580c1b867db5d1b0f9 + pristine_git_object: 89b5dee75ffad3e9e139c81f89ff5977667ab6fd + src/shippo/models/components/order.py: + id: 0d06ee815607 + last_write_checksum: sha1:8dc0a0a4b41816fb90be6f4e6f8f2f99a00652fb + pristine_git_object: a939b0e59a2a180f63a9f3c1b00798c8e06e4940 + src/shippo/models/components/ordercreaterequest.py: + id: 2024e5afa926 + last_write_checksum: sha1:56ee0074018f024d55248894739f2717f50d0ade + pristine_git_object: d1a1b8f914d6a3a729f4795491520f5c371a5012 + src/shippo/models/components/orderpaginatedlist.py: + id: c975292daaf1 + last_write_checksum: sha1:646fcd070433430bffc2039e5da8f283d23b9856 + pristine_git_object: 45f5c1c306e0d4e9a1807005ecfae8e71b6e23b3 + src/shippo/models/components/ordershopappenum.py: + id: e9af4e90e420 + last_write_checksum: sha1:108333b09537ea5dc443c722653b77a3cea5b730 + pristine_git_object: 62733b2c4f3f11a46b8671a60b1e8e640598789f + src/shippo/models/components/orderstatusenum.py: + id: f5b67f538412 + last_write_checksum: sha1:e9012cde0d44bdfaacb2b5f8847ad807df3dc9fe + pristine_git_object: cd7536dc936f4e56d72b3e11b811899715345980 + src/shippo/models/components/parcel.py: + id: 01be0d7e5c3f + last_write_checksum: sha1:f120fc4f8da841324c8ea2b1fd15707f62958852 + pristine_git_object: 66330e8628f7ef11efeb858ce66167b7f4719e75 + src/shippo/models/components/parcelcreatefromtemplaterequest.py: + id: 0c5cdb9dd58b + last_write_checksum: sha1:48000b9b1f6b0cefba5a3b3c0decf74abaab5e60 + pristine_git_object: 7424595ee159417147cf1f78b27bf4c7535f3982 + src/shippo/models/components/parcelcreaterequest.py: + id: 647278057f0a + last_write_checksum: sha1:2c83870aaad93b3e21d0a0c80f7307d51ae59444 + pristine_git_object: 6365bf4a15dd6e2eecbaa7c5bf673cbce8e1c198 + src/shippo/models/components/parcelextra.py: + id: 1766b480a0da + last_write_checksum: sha1:e179e8c3f27228b746c40fedb1971c7f0e2965e6 + pristine_git_object: df7ac461e6597531fcd2edfec9ffe14415519f8f + src/shippo/models/components/parcelinsurance.py: + id: 3d5b58a3ad65 + last_write_checksum: sha1:3469f51499b0b5e5420956342f8e14a94eb23e3f + pristine_git_object: 4333098b2a4684c18b3ea9e7963622cdd56dbc39 + src/shippo/models/components/parcelpaginatedlist.py: + id: 2dec8073fa10 + last_write_checksum: sha1:d3a2ad0bf813104f4918c07de55ec39c70b40517 + pristine_git_object: 7d223a1223ec6c6fbc2489c0a504619bf3148c4f + src/shippo/models/components/parceltemplatearamexaustraliaenum.py: + id: 880954dd921d + last_write_checksum: sha1:3b78bb0379227acb64e512fc0f52186302cf91fc + pristine_git_object: b0e755660841d7ff0a2c5aba81d78b35be8a23b6 + src/shippo/models/components/parceltemplatedhlecommerceenum.py: + id: 0ee29a2f0cf0 + last_write_checksum: sha1:615329cf510c608b85cc91c2ef5e2f5a92ccf620 + pristine_git_object: 71c8d6fae8abfd388c4c31f206e1cc7d075b4ad7 + src/shippo/models/components/parceltemplatedpdukenum.py: + id: e63cdddd2060 + last_write_checksum: sha1:b82f1780195ba820b091b9b88cccef2e9097c257 + pristine_git_object: 963e428596fc9bd03c5da4b1cc4c9fdb2a27777c + src/shippo/models/components/parceltemplateenumset.py: + id: 224943d37c6b + last_write_checksum: sha1:e61bc306ef5f1e40cc672978ee5fb7b7ff867d22 + pristine_git_object: 923043d9017f3eb2a9c5d50dc23b5a15a2ac3c4b + src/shippo/models/components/parceltemplatefedexenum.py: + id: ded8f1e869cd + last_write_checksum: sha1:e73a4bcdcfe870fc16db589e97e7757081900d08 + pristine_git_object: 6deec8afec1a2f835a893aaf99852fb0a8c71f38 + src/shippo/models/components/parceltemplateupsenum.py: + id: a9c583d9adcc + last_write_checksum: sha1:d3178e322b6a07eb6ff25d4456b77aa6b87e1a2c + pristine_git_object: 3d0e0663f24493130dd0c374df6c496c5f7237ce + src/shippo/models/components/parceltemplateuspsenum.py: + id: 19a64b67b642 + last_write_checksum: sha1:72641283482b889fa1358d20f7f2e98dad2011f3 + pristine_git_object: 89c0eaaefe07ba3eb4a1d912a2a1428aa1246482 + src/shippo/models/components/pickup.py: + id: 915ffa79f3ee + last_write_checksum: sha1:3edd9fc813604c632e557c9a8c23a8a8e8628602 + pristine_git_object: ebfb8a4138f0d9adaddc10618b7d8730f6fdd4ee + src/shippo/models/components/pickupbase.py: + id: 04e7d15875b3 + last_write_checksum: sha1:dce83cea00b4b603a28fcd4ff12aa214cffaeb44 + pristine_git_object: 87a1b7ac3701c43ac9528ac8ee83c5297ac2fcdf + src/shippo/models/components/ponumber.py: + id: 2fad79998933 + last_write_checksum: sha1:98eb767b679f3164304d3d1c6351d32f800d27c7 + pristine_git_object: a2da5b21876519f52aed09205abcd670ae2b7234 + src/shippo/models/components/rate.py: + id: e95e64baf152 + last_write_checksum: sha1:2455f74d4bce07c17670d8425c1b8b86d4b13cf7 + pristine_git_object: 1d2aca5abdd6270446c4acf349ec0cfa3af23a0f + src/shippo/models/components/ratepaginatedlist.py: + id: 47caf52dacae + last_write_checksum: sha1:b794cfd5eceb62a949dd9a9077fea9a255c53dbe + pristine_git_object: 4f87810c99ae237526264655d494f09354478dc4 + src/shippo/models/components/refund.py: + id: 82faea85bff7 + last_write_checksum: sha1:32b49ca3aacd84df658560f169b65f3379d7c2a4 + pristine_git_object: 20dba7b4de37a59d9006d5cb64d5f567c11db247 + src/shippo/models/components/refundpaginatedlist.py: + id: e3ce7cad62e9 + last_write_checksum: sha1:8d73b04bd6f0d505dc014743b3694a34b3d3c583 + pristine_git_object: 27e9b1486e1a2c832a6c631f4566ab7d1e7a2fe5 + src/shippo/models/components/refundrequestbody.py: + id: b1e699f948c3 + last_write_checksum: sha1:aaee4da9257e71ee4f5ad66191f7caa12d82a67d + pristine_git_object: 5357da95742d53ff7e78e4c2376ae81377d63e84 + src/shippo/models/components/responsemessage.py: + id: 2265163a97e8 + last_write_checksum: sha1:61d9cd2e4d0126938036829ed1154eb10b23abee + pristine_git_object: 45e36b5cae873b1f4be2a21b3ac7651c58abaed6 + src/shippo/models/components/rmanumber.py: + id: a0bb93cd2560 + last_write_checksum: sha1:257b64c12493f880f7c6ed363165856a560b1b05 + pristine_git_object: d67e0dd2d9364ef72c775038454ad29d3d713735 + src/shippo/models/components/security.py: + id: 80a6522ebbd2 + last_write_checksum: sha1:82590520796ceb39d41a54511a23a6a542f8869c + pristine_git_object: b8ccfc5aaa3dad0251bd8651f0376ad12c1042db + src/shippo/models/components/servicegroup.py: + id: 493c11b38b19 + last_write_checksum: sha1:503c47ea06db2ea15c2772eb352a8077a3a54529 + pristine_git_object: 60b1c3ed8da7a25bb9d5d191665cc90b38313f98 + src/shippo/models/components/servicegroupaccountandservicelevel.py: + id: 9475aa968c57 + last_write_checksum: sha1:1fac7cdb14ef19814304d60ab3eca8eedfaaee11 + pristine_git_object: 85f0af2927f106c6241caddbec2b5493d51c6682 + src/shippo/models/components/servicegroupcreaterequest.py: + id: 3189ad9d2c55 + last_write_checksum: sha1:fc91f06448b8ab2f251b9f63df34fa9f5cb1f576 + pristine_git_object: a464b2019a63ab7e5a3b397db1abc44a31078dd4 + src/shippo/models/components/servicegrouptypeenum.py: + id: 7533b3554c67 + last_write_checksum: sha1:7a61dcc29a7a628f72ef74a2892663ee15609f23 + pristine_git_object: 98f6bbecf18c90dcf25acf25ffb1cfdb22a7de7e + src/shippo/models/components/servicegroupupdaterequest.py: + id: 0d2f5f0ce6a2 + last_write_checksum: sha1:863cc856281ada1508af0f43c64ff5590e29dcdb + pristine_git_object: 7e4bad456aa1d70141a0313182c86277512fe328 + src/shippo/models/components/servicelevel.py: + id: 9a840b9e3759 + last_write_checksum: sha1:42f2c105c2473add264314ee776cad84a8ff0b8c + pristine_git_object: 3dedbd011bb9b296c3c6f3542083ef267718f03b + src/shippo/models/components/servicelevelairterraenum.py: + id: 2af15f868750 + last_write_checksum: sha1:40e42ee91f86b07a18745ebec3d03c02167b0e6f + pristine_git_object: 6a8279312e074d97047e3754e6f0ef3b082989f8 + src/shippo/models/components/servicelevelapcpostalenum.py: + id: 4c160ad82d18 + last_write_checksum: sha1:3a1c266718a492fb12597f4b4bdea42334eb265a + pristine_git_object: e5f7bcb8010b9b37cc759156eb3f40aa90250005 + src/shippo/models/components/servicelevelapgenum.py: + id: 43a5e3628fed + last_write_checksum: sha1:d90cf074fdb5bc157ca32e267f66a93885e37046 + pristine_git_object: e45f0d5400e4b7789b9c731e1b4121da0cb57682 + src/shippo/models/components/servicelevelaramexaustraliaenum.py: + id: 2ce8e873a1fd + last_write_checksum: sha1:9b678f3e339645a9263db1954c0ddccf5dc485b9 + pristine_git_object: d7c7f623ad012a71e3fae3d8957e951769f4310d + src/shippo/models/components/servicelevelasendiaenum.py: + id: 36d42fdb11f4 + last_write_checksum: sha1:8ce172268b107f9ee20cfaecd917a427684bcfae + pristine_git_object: 32debee07197b10fc5edb68b7f0c851ff382894f + src/shippo/models/components/servicelevelaustraliapostenum.py: + id: 442eb0298e57 + last_write_checksum: sha1:ec95782989c8c49847121d0aa54f1442eb784f51 + pristine_git_object: 9f26fcafa64df6d5c9ab7e2eb47e42cae106b0ee + src/shippo/models/components/servicelevelbettertrucksenum.py: + id: e6a8fa99f192 + last_write_checksum: sha1:c0ea6dae5b68bf292d84381bfe630a25f202702e + pristine_git_object: aa0b3de2d263a2c762f71dce4eb19ce31b01c1ba + src/shippo/models/components/servicelevelcanadapostenum.py: + id: 27cc64e2d7fc + last_write_checksum: sha1:a5b09a3972867e2161181a53897bbc63987cce41 + pristine_git_object: 41431366d0a132b475f9a47a73dcb8095cc98c1f + src/shippo/models/components/servicelevelchronopostenum.py: + id: 23c9dc5233e5 + last_write_checksum: sha1:9bd1a8c751ab6ba8caa876a2ab5007730c78240f + pristine_git_object: 0c59257790ef3a42082108df38f9d427e25ace09 + src/shippo/models/components/servicelevelcolissimoenum.py: + id: cf1fd7e29dfd + last_write_checksum: sha1:0d9fc122fc4bf12700c179714d29f7a29995c2da + pristine_git_object: e73c50e643897c0e55537cbd4bd43477d5c853f0 + src/shippo/models/components/servicelevelcorreosespanaenum.py: + id: b87aed89c6f8 + last_write_checksum: sha1:73f4fdddf57b93f6a00c67b9b476678470bfa323 + pristine_git_object: f65ab7e964759e5fd0b65367a04dd8bcc10af687 + src/shippo/models/components/serviceleveldeutschepostenum.py: + id: 3d6c49e49fb5 + last_write_checksum: sha1:8452f5d48ffbccc0b0a52882afe16516be3887ee + pristine_git_object: 8bcf375b89405917b2eeb6513db1940228ba7ec5 + src/shippo/models/components/serviceleveldhlecommerceenum.py: + id: 5a2393d1b400 + last_write_checksum: sha1:e438346f564b281205f365676172100174cca1ac + pristine_git_object: 0515c09286065350a066ad0aaaec024c5ca79d2f + src/shippo/models/components/serviceleveldhlexpressenum.py: + id: dc1065bd1d41 + last_write_checksum: sha1:c70cf393b83be631b4e39ab384874f9667656416 + pristine_git_object: e706de499c4114ad6ffdc39f0d4ec5c15ef3c3f3 + src/shippo/models/components/serviceleveldhlgermanyenum.py: + id: 67a63e6cdfac + last_write_checksum: sha1:05db261beee7171288a6d67293dacd70648d4d7c + pristine_git_object: 5cb7d6624c3c004bf99ceabec5521baaf4c17509 + src/shippo/models/components/serviceleveldpddeenum.py: + id: 7219506cc0bf + last_write_checksum: sha1:ef1a779e31bcc6f483da65b294753a23a088a5e4 + pristine_git_object: df97cbfeca62e03d3acd9750d7ba364b8c6f9e9d + src/shippo/models/components/serviceleveldpdukenum.py: + id: 2dfe61b2b15b + last_write_checksum: sha1:0d911ba994ad7f8417516af3e4b92d5569866e6e + pristine_git_object: 6740a14dd4d4f788e4d95a0d58b1c63aaaed3eba + src/shippo/models/components/servicelevelenumset.py: + id: 378274eb84de + last_write_checksum: sha1:1d5aca6740658ce97accdb49ff046d1cc5621428 + pristine_git_object: 26e354b1cc57a08c3574658de200cae8560b5d6c + src/shippo/models/components/servicelevelepostglobalenum.py: + id: be44b5b0adcb + last_write_checksum: sha1:9a0864d2a188997dae8df06084d1fc30b8083444 + pristine_git_object: 763b569c704013a9f61cbea4e45ecd7cbae2546a + src/shippo/models/components/servicelevelevriukenum.py: + id: 6799db825b38 + last_write_checksum: sha1:b0317f65a47e67aae0d6ba4dcf31de79daf95d50 + pristine_git_object: 569c5f2cd1d09a8735ab530617b25f2d950f81d0 + src/shippo/models/components/servicelevelfedexenum.py: + id: 292d37e7e952 + last_write_checksum: sha1:ea1bd2d1378b07a1661a702b992a0aa129cda8e1 + pristine_git_object: 5d16e24cb431239072c5f0470c339b56f5dec147 + src/shippo/models/components/servicelevelglobegisticsenum.py: + id: 375c95746f55 + last_write_checksum: sha1:11aa04f24bcf091791daaf45110e1b2fe2e6601a + pristine_git_object: e15998ca18c2f0de7c049dfcd8e54c04bcf13ed5 + src/shippo/models/components/servicelevelglsusenum.py: + id: 1fb85c88ac95 + last_write_checksum: sha1:9269f1c94a50d87e7a05f3fb7bdf8c9d948dbac8 + pristine_git_object: 7f20b007535119974d591fbbc437a3733750301c + src/shippo/models/components/serviceleveljitsuenum.py: + id: c52a868ea20c + last_write_checksum: sha1:5bae2ed4069b2dd34e79ecd63f0cea02cf37f755 + pristine_git_object: 3b25d964a948300eb6741707db61f2d7ed796721 + src/shippo/models/components/servicelevellasershipenum.py: + id: c710a5c59bad + last_write_checksum: sha1:75708801e3b761ca82dc7f0690d41f47f6997d96 + pristine_git_object: f1815c8e1c19923038a44324a1b31cf60948f604 + src/shippo/models/components/servicelevellsoenum.py: + id: f225d899db22 + last_write_checksum: sha1:6bae618cfdd9f24045f4969be0a94e67d2f96359 + pristine_git_object: 8d9031c1595e87263913f40a8afe81336d944413 + src/shippo/models/components/servicelevelmondialrelayenum.py: + id: 7be4da56b961 + last_write_checksum: sha1:a9eb3a10edab1c98a449a795fec67d011f1ab1a1 + pristine_git_object: 115aaa178f01c3b0557ee841760671116da025a9 + src/shippo/models/components/servicelevelontracenum.py: + id: 2f0d80f15130 + last_write_checksum: sha1:9b632207fda0421ee25f1e82036322450d4231de + pristine_git_object: 7c32c888d3cc1734a2a3676e4551ac2cbf5c9556 + src/shippo/models/components/servicelevelparcelforceenum.py: + id: b4400afdb2e8 + last_write_checksum: sha1:17e1e466800a5232572ffc76fd1c14a9f737aae4 + pristine_git_object: 73a13cf287fb6f02140c4ab528ea0b9e04acc09f + src/shippo/models/components/servicelevelpostitalianeenum.py: + id: b36a33d0f1ff + last_write_checksum: sha1:d51b67fefb774f34c7fac9b832919e85d3bbc131 + pristine_git_object: ce542feb9e100549eef9bfbf685aca9eecf30917 + src/shippo/models/components/servicelevelpurolatorenum.py: + id: 5bc0e65cd83b + last_write_checksum: sha1:00aea07dc7935a53e154a0ba05f8279d3beb75be + pristine_git_object: cdaca168fe23eac97230bd06785d838eed5a24e2 + src/shippo/models/components/servicelevelroyalmailenum.py: + id: 0ed5a2a1a0d4 + last_write_checksum: sha1:852f3e49be3877736f5c59826776c75d84efd9e5 + pristine_git_object: ebfa30e60f467701501d1c58aae032bdb6c27e0f + src/shippo/models/components/servicelevelroyalmailsfenum.py: + id: 7db0383423bd + last_write_checksum: sha1:fe26a28a11b6a5e614eab35f2d6ee3c0281a4743 + pristine_git_object: e5608a2d9713bda1a5e9939d4d35183136d7b502 + src/shippo/models/components/servicelevelswyftenum.py: + id: deebbdd592db + last_write_checksum: sha1:3f8fe5e6c0b63fdcb65811ce0c3b255759896854 + pristine_git_object: 2f1fc611a5a3f788c94c0fa9af5fc6e2ae8f529d + src/shippo/models/components/serviceleveludsenum.py: + id: d531f98ed5c2 + last_write_checksum: sha1:f8cd1ea4ff7e19d762fe84e4fc59de2307ab0c03 + pristine_git_object: becfa510df5d2ed923a0f1c4172977c9c3827a79 + src/shippo/models/components/servicelevelupsenum.py: + id: 684e7602103c + last_write_checksum: sha1:132f8c897ab25d9f7aff9036ce669f95197ae8a5 + pristine_git_object: 22316d581f8188266cfe265782396ea5d5701437 + src/shippo/models/components/serviceleveluspsenum.py: + id: 13cfe698946d + last_write_checksum: sha1:788f4bd3ff97370efdfce8255acf045d4de5060b + pristine_git_object: bad1c906d39f735ce6279c16bb59c55a1019b80c + src/shippo/models/components/servicelevelvehoenum.py: + id: b114b405858d + last_write_checksum: sha1:f5088ee9e7bcceca030540c4fe9d344b9df75913 + pristine_git_object: 53e81b21ad9536ac3c3837f00bed8079094fe8d6 + src/shippo/models/components/servicelevelwithparent.py: + id: f9a74449f159 + last_write_checksum: sha1:64bcc34bc559ae502b591ac13ea7d033cf6c5d8b + pristine_git_object: 3ba095df9a5fe58239c4abe2708093d66043fbde + src/shippo/models/components/shipment.py: + id: 5d923bfe1eb3 + last_write_checksum: sha1:a5acd5bfe69d892f752999096c96302a63584df0 + pristine_git_object: 1ab8f957111423c2abe2e236fe64d3b32ed25a68 + src/shippo/models/components/shipmentcreaterequest.py: + id: fc1ae3e13d3e + last_write_checksum: sha1:4392d78561982c627e605c0ef9540faeb0cf232f + pristine_git_object: 48cb178ab1831400090614a0cb8cf2850d400668 + src/shippo/models/components/shipmentextra.py: + id: 93b556f33c4f + last_write_checksum: sha1:34f8c8858d4ceb0a4a25bfa3db3f9eafbbd8293d + pristine_git_object: a714c33a6fede408afd1c4afc6110d26f1a32a11 + src/shippo/models/components/shipmentextralasershipattributesenum.py: + id: c6262d85e31b + last_write_checksum: sha1:9ce6ca85a4ba524f3ead25b0d6bdb2c5c0ffa957 + pristine_git_object: 23e9a7d662eab189429ba43f51db30249620915b + src/shippo/models/components/shipmentextrareturnservicetypelasershipenum.py: + id: eb57d36d67bc + last_write_checksum: sha1:905c2773f33687a6341e1163b655af4052d4d0a2 + pristine_git_object: 83caf65faadece0b69d24cf095386aad72eeb28a + src/shippo/models/components/shipmentextrareturnservicetypeupsenum.py: + id: 0089348ac188 + last_write_checksum: sha1:9b5624542e1de722a9e070921faa3e1c415fed76 + pristine_git_object: 2190ca4f24ea58d5f00462c7982b7190ed0015fb + src/shippo/models/components/shipmentpaginatedlist.py: + id: c06bc305abb5 + last_write_checksum: sha1:6b89d1d5c89be5e22cf70892386175d47a441560 + pristine_git_object: b2d272887275ef749489c78d5352ac09eb7c6bb1 + src/shippo/models/components/shippoaccount.py: + id: 9debbe412afa + last_write_checksum: sha1:100b8ee1a2759c02862f2fb88e7fd00e156e8264 + pristine_git_object: 47e90da0a577497ddb9cb01f282c441bcd459cc7 + src/shippo/models/components/shippoaccountpaginatedlist.py: + id: c2ce01b88581 + last_write_checksum: sha1:a8fd50d6750a8efb096de437d702f04a6e3e8cd5 + pristine_git_object: f545f8dbf0a7317774f9b0b03a4552e46962124e + src/shippo/models/components/shippoaccountupdaterequest.py: + id: fce0ea1e0957 + last_write_checksum: sha1:5f9b2e78ef07d0ca6ea49c673ebb25587f6f5d7a + pristine_git_object: 986aa1824b85ea9cfc00e1e322c35485d379491b + src/shippo/models/components/track.py: + id: fe3039c384b3 + last_write_checksum: sha1:c7f6d4d4a97792b23ef2aaad5440549d32974562 + pristine_git_object: 1f196e9bd389492d14f0c2acb3cec066b317c763 + src/shippo/models/components/trackingstatus.py: + id: acbed1c195ca + last_write_checksum: sha1:a846d46673448b9def1cfebe60f00c4e0c927fa6 + pristine_git_object: d075a1c7da9bdf2bd308818c56c6f6b587eec8fd + src/shippo/models/components/trackingstatusenum.py: + id: 7cf6c64926ed + last_write_checksum: sha1:233ebbb503d8e8052a69fe68cca6ea745883ed1d + pristine_git_object: f5176d6ec9cb35b4e2855972cca2a32505ff01d7 + src/shippo/models/components/trackingstatuslocationbase.py: + id: ca599830d983 + last_write_checksum: sha1:4c136fa959a5876a7a009f9440f7119928695a5c + pristine_git_object: ba3007d3b62b3cf9982a472c163480569877b966 + src/shippo/models/components/trackingstatussubstatus.py: + id: c6c734acd9b0 + last_write_checksum: sha1:77b9aebb4cd9fca720304660ba1f3c0121643cf9 + pristine_git_object: 2d2edabaa5203b1a484f0be59fe3aa226f44dd4a + src/shippo/models/components/tracksrequest.py: + id: 5d720ce7e453 + last_write_checksum: sha1:2737b88d5943c08fb014ef8df85cb8c2c7ae97d9 + pristine_git_object: dbe86fadb410bae1e8ecea4f1077c6780f996b50 + src/shippo/models/components/transaction.py: + id: b1407dcae038 + last_write_checksum: sha1:ed80d7e05cb6bc7cdf0bcb1dfeebd4263a928d63 + pristine_git_object: 59dde7c58e6d275e925461ef30923ff4f4f1c33d + src/shippo/models/components/transactioncreaterequest.py: + id: 449a422f79ea + last_write_checksum: sha1:2b7179cf37a3255ee2f0f05b9aa5ca69eb465c57 + pristine_git_object: 042e59c6959c6cf9ddc9c76794ec519a4cea9a61 + src/shippo/models/components/transactionpaginatedlist.py: + id: 29caa1441b28 + last_write_checksum: sha1:96a6766f8dbe84cdce718fb2077b980b66091934 + pristine_git_object: f4b70fbeb88ded8ab593b78dd4a4072f26e08744 + src/shippo/models/components/transactionstatusenum.py: + id: 1dc97cc743d1 + last_write_checksum: sha1:b7b87e9bb615041ff31922e7f59d329da29e07b1 + pristine_git_object: 2ca085a23d01f2e9836db3242a4b6505cafd6cde + src/shippo/models/components/upsconnectexistingownaccountparameters.py: + id: 9de4c5d6e390 + last_write_checksum: sha1:df56755574f6e248a7493972a893690d82398859 + pristine_git_object: 29e35fbc5e570c1594082877eefb320eebe75339 + src/shippo/models/components/upsreferencefields.py: + id: 9d385e2fd629 + last_write_checksum: sha1:0a73bc19788b2ae7c1f0348036f813307e135ffa + pristine_git_object: 9b078b0f89da09dd64d5d9af01e96c4086af3eb2 + src/shippo/models/components/userparceltemplate.py: + id: c0778cffb74f + last_write_checksum: sha1:f8e02078679f06ffd1b6d352666544960aba210f + pristine_git_object: c14b7eb806e83762677bb8baf5c9b6ee38d03cb5 + src/shippo/models/components/userparceltemplatecreaterequest.py: + id: 95d6948d1296 + last_write_checksum: sha1:0e89495b21f101da78467382888fb4732912a174 + pristine_git_object: 8070989150f5e10bb559f9179363d84959313663 + src/shippo/models/components/userparceltemplatelist.py: + id: 2d3261cb4abd + last_write_checksum: sha1:e7784aef8203114ba9163396e4c74047883f3a4d + pristine_git_object: 225b10d345d8d84e88d81ce8bc1a0e3d7f0e78ff + src/shippo/models/components/userparceltemplateupdaterequest.py: + id: 88396e7ba06d + last_write_checksum: sha1:79a8169ca1a08a3a57795fc7a243d16010707f7b + pristine_git_object: c3054ace0b6bf627fedbb1a63a5f9c52b72801ee + src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py: + id: 0a93a8231920 + last_write_checksum: sha1:826d7a7e1e82962b32a38bf540b62fcba7c0d3b8 + pristine_git_object: e515edb61ed94ed3429a686199734374903587f5 + src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py: + id: 8eb180f1c9a8 + last_write_checksum: sha1:30d09322fb9af7dd707ef1e6270ef82e50f28ab6 + pristine_git_object: 3a43b03114dc15ec11a408e2aff40fe3523cd874 + src/shippo/models/components/webhook.py: + id: 96add022e408 + last_write_checksum: sha1:4d48fd450f20921e9448a69274b862eccd736afa + pristine_git_object: 7d8efc5c574b6dca6b066d9bce7d7cfaab71e9f2 + src/shippo/models/components/webhookeventtypeenum.py: + id: cd5e97702e37 + last_write_checksum: sha1:a87eccd31e74216ac6977e637a861d66cddcdb0b + pristine_git_object: f1a923a1aaa739c3f7954457a4bfa5c1b335bd3b + src/shippo/models/components/webhookpaginatedlist.py: + id: ce832efa53b0 + last_write_checksum: sha1:3a3e7a2e1d3bb7193b6d6c7e18adcad252ff2282 + pristine_git_object: e8748764e88a9ba40effe02d57e04927c9d448fc + src/shippo/models/components/webhookpayload.py: + id: fb4c34252450 + last_write_checksum: sha1:f7a17b4b784f14359873fa9e66e1b99736d599de + pristine_git_object: 7bcbf15b07299246ea9fab79b092e88e154ef7c7 + src/shippo/models/components/webhookpayloadbatch.py: + id: 46dc7351e5ed + last_write_checksum: sha1:f0ba5cc3dffa5d2634c58d81a9f715a5b9c453b7 + pristine_git_object: e87de328b41431c0be481974c9da47ddc2bfb1c1 + src/shippo/models/components/webhookpayloadtrack.py: + id: 0fc02ec3e85b + last_write_checksum: sha1:b56cccd9a7c94b2bedd52b0ad42d631aaeec3253 + pristine_git_object: c514ebf4befab939b70c70079be8b251c2f7d35d + src/shippo/models/components/webhookpayloadtransaction.py: + id: 65c819a7a7e8 + last_write_checksum: sha1:875ab01f7b8730efc148ad37dfaefcccb4e517db + pristine_git_object: 4fca88eefdcba94f3ba0f101c8298b34b71bb076 + src/shippo/models/components/webhookupdaterequest.py: + id: 64c14e19f143 + last_write_checksum: sha1:03c2ad2193e36adf8380601786dc79765e9294f8 + pristine_git_object: fb30f05119fba604619873d6eb8f3b37c40c4e55 + src/shippo/models/components/weightunitenum.py: + id: a0c65a950bb5 + last_write_checksum: sha1:d61ec1da63fc4a8da41560e856c0f3228fe2ab0a + pristine_git_object: c758e21c66de9790849bb78c8d5810629c52cec1 + src/shippo/models/errors/__init__.py: + id: ae27daa57563 + last_write_checksum: sha1:3efea5d41ef40f3b1d0d8f6f52097b164ab3305a + pristine_git_object: d942d6fad7759c6c47a246804b7434b9ccf15f42 + src/shippo/models/errors/initiateoauth2signin.py: + id: 04476df88784 + last_write_checksum: sha1:64d46b0a0f605bed605b730c78420714df1f6d63 + pristine_git_object: f62216028cc458f4d0c53bf4939fffef0c365457 + src/shippo/models/errors/no_response_error.py: + id: c0b473c05322 + last_write_checksum: sha1:7f326424a7d5ae1bcd5c89a0d6b3dbda9138942f + pristine_git_object: 1deab64bc43e1e65bf3c412d326a4032ce342366 + src/shippo/models/errors/responsevalidationerror.py: + id: af184d6288fb + last_write_checksum: sha1:ff3a7e8815c3a4128b25eac7761c61d24661715b + pristine_git_object: 405687f4a188398a0bb5412e4e50ba4af4a40cfc + src/shippo/models/errors/sdkerror.py: + id: ef6eb68767c2 + last_write_checksum: sha1:9fa11768756b5746d877d7fc91d32ce27c614031 + pristine_git_object: 37cff16b79cc210b59b7191932b5217b39a718ec + src/shippo/models/errors/shippoerror.py: + id: 446a55a7e6fa + last_write_checksum: sha1:bcfdc50e16acc179506237e10ef37e48777a0568 + pristine_git_object: 54e480291685766de3619b067a4e3c47b1c97438 + src/shippo/models/internal/__init__.py: + id: f46bda4dcdb1 + last_write_checksum: sha1:e72d6c2dcd917d6b063abd81bfdd696f413d690d + pristine_git_object: 7aa1e9371694e160f8ebece2d6fc7a9aac8eb977 + src/shippo/models/internal/globals.py: + id: 5431fccdc1d5 + last_write_checksum: sha1:4c76d07c3f0875ad75dccb8f41af43839274a0f0 + pristine_git_object: 26b3aec91d3eef525210f371d5bcc55af81c7580 + src/shippo/models/operations/__init__.py: + id: 0d2dff4d2539 + last_write_checksum: sha1:64c8dee508219f23001b70e6922398f3756f937c + pristine_git_object: 4df6313e8c9b5db6c1c06bf7feda79f696d27d33 + src/shippo/models/operations/addshipmentstobatch.py: + id: a99294fa3621 + last_write_checksum: sha1:b234e84ef6d30a329bccdcac0957d288f3e8feab + pristine_git_object: 7c5502c4f96035aed395e66e3c74dc5064557efa + src/shippo/models/operations/createaddress.py: + id: e91d909eaa18 + last_write_checksum: sha1:cfadfdaa4e2759d0aeb02b6c55218b20af7b6dcc + pristine_git_object: e96510649f0c9271030861efd8543782a95a49ad + src/shippo/models/operations/createbatch.py: + id: 6449ed6540b7 + last_write_checksum: sha1:5b76ada17962cdfecc9241e241f712cafb31a359 + pristine_git_object: 385d08120a6ead6bc7a2f4f7609be2d7c6eb5d2c + src/shippo/models/operations/createcarrieraccount.py: + id: 80666204b14d + last_write_checksum: sha1:257b4db8cb907027efb56cccbc9b913f3fd7a4e2 + pristine_git_object: 542abe7e797892d111031200825812c93e6dc27c + src/shippo/models/operations/createcustomsdeclaration.py: + id: c40258743d83 + last_write_checksum: sha1:e0d6ce51a177b2095982d1e4ec268be1efcc664c + pristine_git_object: de251f4ffb0164c0549023051b2c7ef5396bf877 + src/shippo/models/operations/createcustomsitem.py: + id: 039f8c12d3e8 + last_write_checksum: sha1:dab4d7342966519657941f025faa6ab0abbf3776 + pristine_git_object: 2a03a7f0503fa8211e0d944f73526d6afcb684c7 + src/shippo/models/operations/createliverate.py: + id: 2cf59678827a + last_write_checksum: sha1:aec26f55f8fc77bf94fab4993399a0f0a15bdbcf + pristine_git_object: 806565475d18e17c22ee85f496c0f51200aed533 + src/shippo/models/operations/createmanifest.py: + id: 7127dbea8550 + last_write_checksum: sha1:0ed4aa26de75bed159de362157628bba123886fe + pristine_git_object: 1d12336cd367e44ecd00943d548d21d33c90e1fd + src/shippo/models/operations/createorder.py: + id: 2dacb3c799b4 + last_write_checksum: sha1:af261a0f5249792af5afe1d1a3425e3c05aff5fb + pristine_git_object: 31065dd9e6be2df546ef11ec32e364f73fb719fc + src/shippo/models/operations/createparcel.py: + id: 32e01dc7e538 + last_write_checksum: sha1:6759a25cbdac35bc993a9f59b2da17f7beff7e9b + pristine_git_object: 9af84c7e3fb0201dbe7f6bc4429c64aede2c67e1 + src/shippo/models/operations/createpickup.py: + id: 8938952b3759 + last_write_checksum: sha1:6f2c4b2a16d940437939456acafee20d5c4ce384 + pristine_git_object: a9c38d8747be614f3126457b6f51633e474c4541 + src/shippo/models/operations/createrefund.py: + id: 7ab2a133adb8 + last_write_checksum: sha1:b2ebb958d72f0840f84d9a356fa785654eadfedb + pristine_git_object: a4f725ca54d04e169108edfe9b430946d207e183 + src/shippo/models/operations/createservicegroup.py: + id: 8fd693875f79 + last_write_checksum: sha1:6d1c4b3d6f0fb09204d255de5ac70424a8099964 + pristine_git_object: 08613ce3d529be0cc8c6e312400495028db69dfe + src/shippo/models/operations/createshipment.py: + id: 0e915fd6856d + last_write_checksum: sha1:27a29b258817c19af8964a0ea2f94eccaa21ea52 + pristine_git_object: cfc6143905f7b5013fe47b8b34b14e4eada0c8c1 + src/shippo/models/operations/createshippoaccount.py: + id: 95869c00ec8d + last_write_checksum: sha1:3d31d63cce9c61a64e7ada85a5c20f0dec6f2260 + pristine_git_object: 1bade7b4769d57a0a68ceb94118e501f422f30c3 + src/shippo/models/operations/createtrack.py: + id: 7c542c9a7645 + last_write_checksum: sha1:00d3a300cba5211edfdcb4f1417c2f58ce83fffd + pristine_git_object: 5d3d686c25589eea5e2b254f1dbbc382c74b770a + src/shippo/models/operations/createtransaction.py: + id: 2a7f367439be + last_write_checksum: sha1:32c2191aba709e056821ed408cb40107a292eef2 + pristine_git_object: bf2e861292e03f273dc2da76f2c87cb8f441f357 + src/shippo/models/operations/createuserparceltemplate.py: + id: 7189d6d37c26 + last_write_checksum: sha1:6012c7d64e1d89b720f6f29d606794e1cbb1518d + pristine_git_object: 3dbeaf7c50f3c2d9897d36f90011f52187795e2b + src/shippo/models/operations/deletedefaultparceltemplate.py: + id: fa890052887e + last_write_checksum: sha1:7b3eb259336bd3b57f2800fae1eb2a0bc8324102 + pristine_git_object: cd382b90f1ab65f556304fb32db2c8cb2d08b32a + src/shippo/models/operations/deleteservicegroup.py: + id: f55699fc6bb8 + last_write_checksum: sha1:1ec90f79ee36519c1fa709e2b8c720b501a2ecbc + pristine_git_object: 1bb90eceffba780ce0b5e69b4de538be8f379b58 + src/shippo/models/operations/deleteuserparceltemplate.py: + id: d3cccae31779 + last_write_checksum: sha1:b092eb79889232a3a259353a48975d0942bd90a8 + pristine_git_object: e574d3deb3e0fd7d567ccbe67a4d2fbbeba3c209 + src/shippo/models/operations/deletewebhook.py: + id: 882383a10b52 + last_write_checksum: sha1:94724e876f09a521370163c732a80f000cf059d2 + pristine_git_object: 27541480b5f1b56fe61d140060a3c1cc19ab3cf6 + src/shippo/models/operations/getaddress.py: + id: ff244ff3e1f1 + last_write_checksum: sha1:38535493b45bb68894e9187df9109b34977e06d0 + pristine_git_object: baf7b2c62a0749fd9b1c17e95aec9c3001f5a4d9 + src/shippo/models/operations/getbatch.py: + id: 0750bc397a06 + last_write_checksum: sha1:abe04748ef2c79023d33f697cec8f051f36394e3 + pristine_git_object: d8b57bcb39e80625bae3cf795b47cd47b5fb8e2a + src/shippo/models/operations/getcarrieraccount.py: + id: bb088d62b6a9 + last_write_checksum: sha1:9a881869e16331700dc478923359ad19df72d999 + pristine_git_object: 29d85c6d8fa44f9a74e9ae40323022b692e4aa01 + src/shippo/models/operations/getcarrierparceltemplate.py: + id: 89677c64235c + last_write_checksum: sha1:9fd22c51f3b675c07a4101da8ce942a92f3f2b89 + pristine_git_object: bcddb3a30922edaa2591dd809cb0d0ac2c9d4316 + src/shippo/models/operations/getcarrierregistrationstatus.py: + id: 90744ae90548 + last_write_checksum: sha1:f1a0b751c415227407e3cf4017a95eae4c5f8a50 + pristine_git_object: eb395534db630accb24c68817da5ca6c77645e99 + src/shippo/models/operations/getcustomsdeclaration.py: + id: 42750ccb28ce + last_write_checksum: sha1:0ceec40226e25e0cf22b77e900b15f54b395ab4a + pristine_git_object: ad0d32a45c54af1bc0e1f2cd814511db5b192c23 + src/shippo/models/operations/getcustomsitem.py: + id: af1e49e773aa + last_write_checksum: sha1:674e6818e03a839987143a8b2eea30a8fd205872 + pristine_git_object: c21b2a96213af77feeb28e6982a45b1eade0a500 + src/shippo/models/operations/getdefaultparceltemplate.py: + id: 1384d50cc91f + last_write_checksum: sha1:aa4457c4cfe8b5df9be9f07b7721fde6d29d4fdf + pristine_git_object: 54d19c57125dd00191a599e88238807aa6c68437 + src/shippo/models/operations/getmanifest.py: + id: 4eb9bb002d11 + last_write_checksum: sha1:9d4f2f5a52644c084e9f11abcc6282f6405063e5 + pristine_git_object: 9f7f210b18acdb8a3d95a75fbd04733140c958f6 + src/shippo/models/operations/getorder.py: + id: af2324f1b1fb + last_write_checksum: sha1:c0a820c129901fc9999d1bd941fddcd4c8db3b11 + pristine_git_object: 830bf95ac8a5f07f5aea4b9b649db62115c00a0a + src/shippo/models/operations/getparcel.py: + id: 7c9ee34d40c6 + last_write_checksum: sha1:7a797d7753f7c0dad20735d7641c188bbaf84112 + pristine_git_object: 81a44afb39e80898d12c7707b67d1a9532972bc9 + src/shippo/models/operations/getrate.py: + id: 54faa5bfb13e + last_write_checksum: sha1:ec9593978839a517049bbc7b65549e71378e4955 + pristine_git_object: a5654195618de04560127046227d86d7abbeeb7a + src/shippo/models/operations/getrefund.py: + id: a567cb2da588 + last_write_checksum: sha1:f5e8edbda3d91d4f7f4abae22dbf19ef8d7585a6 + pristine_git_object: 6c1ff4cdbc8e1c6394c06eab4c90ead8a57a6fed + src/shippo/models/operations/getshipment.py: + id: 0a1cf8da5cbf + last_write_checksum: sha1:7db09b17647b573006049dbcdb2942fda8afa63a + pristine_git_object: 5b7191a0b9b15236a7ee9842b65daeb816022fcc + src/shippo/models/operations/getshippoaccount.py: + id: 121965f7ec36 + last_write_checksum: sha1:455a837e22d47e7b088e11543e531ef429a89915 + pristine_git_object: a8296320d1119d1ecf7993373ab98c14d3f080e6 + src/shippo/models/operations/gettrack.py: + id: 7e08bcbbf6e4 + last_write_checksum: sha1:97af650c9fa0859653b2138ab438648304d6d5a2 + pristine_git_object: ef582e473215c9c64af89b8e7abdb59f42de4348 + src/shippo/models/operations/gettransaction.py: + id: a46aebc8e1f2 + last_write_checksum: sha1:eb35fb858749545bcdbff1863032d672221f2bc9 + pristine_git_object: 56a8f5a232a92ce67528f2a99d4c625e2145d7a1 + src/shippo/models/operations/getuserparceltemplate.py: + id: 578f5e903dd5 + last_write_checksum: sha1:f4a156d0a0f2c1bb78db8b0732e6ffbe9af8eaf8 + pristine_git_object: 7f115c1b3201b24fe3eae0f96a10f4f64616464a + src/shippo/models/operations/getwebhook.py: + id: b557ac56567c + last_write_checksum: sha1:20d994f15146a0bcc808b2d52f83b1dc3ed82f3a + pristine_git_object: a896f4e8132b6f50e07fd1f1655ab7c5cb6e0c11 + src/shippo/models/operations/initiateoauth2signin.py: + id: dd6daaaad438 + last_write_checksum: sha1:3ad9810e9d66625d55b2f6faf42d9bd512e63f28 + pristine_git_object: 0de9d06deb540495d3d9ac54f4ea542f1699e7d9 + src/shippo/models/operations/listaddresses.py: + id: 897f49002c16 + last_write_checksum: sha1:27c9e6681ec3b4e60f22dcb180d3a1c73d4e523b + pristine_git_object: 81b891097f1925a7006931eecaf401afec0231e5 + src/shippo/models/operations/listcarrieraccounts.py: + id: bf9fc632cf8c + last_write_checksum: sha1:d00d9e11a1192c6975a6515507f2ff22e006be29 + pristine_git_object: cf381fc7d9a3902ac2ed94571fb70e90a2f4ffad + src/shippo/models/operations/listcarrierparceltemplates.py: + id: f3ff1a74b9c6 + last_write_checksum: sha1:a496e4718e64caaaae62b747ba84539dfef061fc + pristine_git_object: 5d0e25849d61933ec5d2356987cfcef3670813c1 + src/shippo/models/operations/listcustomsdeclarations.py: + id: e64c00c67ddf + last_write_checksum: sha1:cc4e8495cd7622def68a8f7ef0dd6984a0557e04 + pristine_git_object: adcb3f3c60631399b48f4afa38a1214399529c70 + src/shippo/models/operations/listcustomsitems.py: + id: 3cad18eaf3fd + last_write_checksum: sha1:8b31cec9c627e3695c47cd9909d444ef3fb0aaa2 + pristine_git_object: c288dfb47d6d5b401b0d1abb5289d65ba25982b7 + src/shippo/models/operations/listmanifests.py: + id: b1979f2e8064 + last_write_checksum: sha1:7e2f99eee9ca120c5c8a189bdbd5116eb480a952 + pristine_git_object: 16cf9a05e2c2c1a8051c6ee3fd0551ee78419191 + src/shippo/models/operations/listorders.py: + id: 19de2ede8470 + last_write_checksum: sha1:314ed0edb6de3f672cabbeaae5172f33ccb241b6 + pristine_git_object: 508602f9936e9ef8f367053b606df662ccb4889a + src/shippo/models/operations/listparcels.py: + id: ec9c8f60b082 + last_write_checksum: sha1:98d557222b94f647ca5a3828375e483dc68fcfce + pristine_git_object: 8f8b07d7353dcc12cf1cff5f84e75074bc8ac641 + src/shippo/models/operations/listrefunds.py: + id: 75e68e8788e0 + last_write_checksum: sha1:2d00191a103f4b470521c389c618f99d072bb5e3 + pristine_git_object: ef89c3945e3eac34724597358b16f2da43f50f82 + src/shippo/models/operations/listservicegroups.py: + id: 9444a89a3682 + last_write_checksum: sha1:ae67fca33b881af8c3c57948572a3f9356403b25 + pristine_git_object: f9a086e4917701989ce62d25830c9442e8d39faf + src/shippo/models/operations/listshipmentrates.py: + id: d8836dd78e68 + last_write_checksum: sha1:6514c4be50af976248949be44b925bb3709831b2 + pristine_git_object: 408e4c5ae9bffb83a29435eb964850de8bc2d964 + src/shippo/models/operations/listshipmentratesbycurrencycode.py: + id: 00bf4b424487 + last_write_checksum: sha1:948520b67abc824458c4f1a3733ed54b4ce2f6d0 + pristine_git_object: 33448f1c16e868b3890a7ef9c60b583b022a62da + src/shippo/models/operations/listshipments.py: + id: f057a72b5fdc + last_write_checksum: sha1:8d74b6b754bbfc0e0ca3ac2000f11dffe8941a13 + pristine_git_object: a53c35946444bf44959116350a979f78a75a27f8 + src/shippo/models/operations/listshippoaccounts.py: + id: d5d3bcd0e1af + last_write_checksum: sha1:31c52b488397370b45eb8e9b1b5fc80d8807aebd + pristine_git_object: c71ecba7d7026d0f0f6fde30a07a51606eb0e69b + src/shippo/models/operations/listtransactions.py: + id: d56d78e02cd0 + last_write_checksum: sha1:76574e16866de973c0451f41288cd9adc4975430 + pristine_git_object: 15a3a46433bef58bbd5ea3592310753d764d8b15 + src/shippo/models/operations/listuserparceltemplates.py: + id: f25db7b5f2ed + last_write_checksum: sha1:f26bcd79b21435d21df9f3e6ba9d432c73203f08 + pristine_git_object: 459aa6c5f1af490513c8bd17146c26cfd9c1dc50 + src/shippo/models/operations/purchasebatch.py: + id: 3a526a576b89 + last_write_checksum: sha1:77e9fde255fcd80ef6abf46195c77a6a5ee7a6a7 + pristine_git_object: cfb89c47997a7f09d2f7134282d985ed4faf85ca + src/shippo/models/operations/registercarrieraccount.py: + id: 3490e96d802c + last_write_checksum: sha1:4285d7fcc09b6b7011f222553315b9150bad8384 + pristine_git_object: 391c45132d2a20b9c1896899fe163de6750b8dcc + src/shippo/models/operations/removeshipmentsfrombatch.py: + id: 639e45ac1f9d + last_write_checksum: sha1:0cbf69501ec7d2749054eba846711defd80b988a + pristine_git_object: 431c3387e7646be73931a2ebb63292316a3bfb41 + src/shippo/models/operations/updatecarrieraccount.py: + id: 62d4092741b5 + last_write_checksum: sha1:d9fe1aff31fa6c59b60be80cd7e7e346bcad5efa + pristine_git_object: 98602205fca0e5c73c10e65aee5c114ded4c44cc + src/shippo/models/operations/updatedefaultparceltemplate.py: + id: c61c9140cbe6 + last_write_checksum: sha1:53b59aa652e5a1b7bf530932b33c81123ee230d6 + pristine_git_object: 2ed48cb41904f9dbdf5dfdcf454ab76ab65edd41 + src/shippo/models/operations/updateservicegroup.py: + id: 6fa7ea4a0ed5 + last_write_checksum: sha1:792f389de10ec89c6e5fc4a96a6383fc9b2ba098 + pristine_git_object: f5c108b89b37fae7c8753cf2011e65e5d05fce73 + src/shippo/models/operations/updateshippoaccount.py: + id: b5add4597164 + last_write_checksum: sha1:4c4caa451aac9cbd16e70ea81358d4736f877c8f + pristine_git_object: e6239c87482874dd2e5e53130472864ccff7f54a + src/shippo/models/operations/updateuserparceltemplate.py: + id: 3ccbaaeda2db + last_write_checksum: sha1:2c32a308a8ab663d2f522beb7c54eccef186b581 + pristine_git_object: 2ea37f20607f848c88c431990625734ffeb983d6 + src/shippo/models/operations/updatewebhook.py: + id: 6d3e4bd8fe84 + last_write_checksum: sha1:47e789b60fb457bad17d279e0932011359c9865b + pristine_git_object: 0891ece7e638bec66e2a6cfb2ee1a8ae821a6f96 + src/shippo/models/operations/validateaddress.py: + id: ba3da0c84cb5 + last_write_checksum: sha1:f21b40a33cc248ab6be4cf9a2faead5d416f5262 + pristine_git_object: 755f66773f3b4f9b95b35bd1fd7f0d70492ae3a1 + src/shippo/orders.py: + id: f2ab72083240 + last_write_checksum: sha1:fd119910d677f473b1c00ec5042b0aa0ca769f0d + pristine_git_object: ef8fc192ddfb571a8aa599903b9a26933cde2b67 + src/shippo/parcels.py: + id: 1cb4abf4fad9 + last_write_checksum: sha1:38b84704a6e6597bf7dde561d50ad4b31834ae46 + pristine_git_object: 608a776a6e47ff383e82193f125f2969991ddc63 + src/shippo/pickups.py: + id: f744d32c3ade + last_write_checksum: sha1:0a3722543dcda66845762c3ecbf0fb6f848c4bf2 + pristine_git_object: 165af4a275834c8619f3d370d45147df20c83515 + src/shippo/py.typed: + id: 08ca44096098 + last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 + pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 + src/shippo/rates.py: + id: 3d3fb1523994 + last_write_checksum: sha1:524060b43f7e9ddaaa9cf5dd84265de50b03e5ca + pristine_git_object: f0387fe7affdc197d5805b21d4c85252137753f8 + src/shippo/rates_at_checkout.py: + id: 48bc9370b669 + last_write_checksum: sha1:23d509782c3cd791e419da3a802ef71dbd251ff1 + pristine_git_object: 32fa874b0acc65f71c5cad4d1a4a4fa69f7f72a4 + src/shippo/refunds.py: + id: 3deb6bfd9b83 + last_write_checksum: sha1:0bf675b7535391e62703267ca8d74a81cc3b93b8 + pristine_git_object: ead6d799db5c2fc2f380509921366840b4253ded + src/shippo/sdk.py: + id: 5c4bf69e3b5d + last_write_checksum: sha1:6c379a0f9679cc2bb4430fdb8455271f9b1c8b71 + pristine_git_object: 09f61b268a46c38489c0aaec9f97adb5a16c2173 + src/shippo/sdkconfiguration.py: + id: cf3823ec37ed + last_write_checksum: sha1:6ce8cd49981cf5091015e7fd186d806d19caa0fc + pristine_git_object: a8bca3489822d0aad951c57aedb9f29e0c98fef4 + src/shippo/service_groups.py: + id: 0a250a93b61b + last_write_checksum: sha1:8a5e31818ffbc44a533a5625f070d3e642637432 + pristine_git_object: f8715385d804eecf736bdf755f90d4a9cf19d791 + src/shippo/shipments.py: + id: 0f702fe06118 + last_write_checksum: sha1:e66cc824586b5c8e0fe50ede6d8190732a49791a + pristine_git_object: 64031fc41ba68ae2d450f1ff52fe8c23666ba074 + src/shippo/shippo_accounts.py: + id: 898f9b1fb28c + last_write_checksum: sha1:b47c393f7bda8a087191e886834170f4d34917bf + pristine_git_object: 4edbb0a5f54e85a30e00342d76179c8d786904fa + src/shippo/tracking_status.py: + id: a7f5706669f9 + last_write_checksum: sha1:49f5a71a9860fe6fb0dfdd71045c61242145e00c + pristine_git_object: 4d563f37e8acb46252050db4ff79363e79d0822c + src/shippo/transactions.py: + id: 772f5e30ab7c + last_write_checksum: sha1:81153d82c18f7e2cf86a57a0188ae9675a664dd9 + pristine_git_object: 7d57ab3d3aeaecf8943e0865baa3249f43f74ed5 + src/shippo/types/__init__.py: + id: 8703fe533b07 + last_write_checksum: sha1:f9ad14217f832e74f594285960125add50324be9 + pristine_git_object: faa268137bc01c9d08cfadc4797017db48747a96 + src/shippo/types/base64fileinput.py: + id: f731d1108296 + last_write_checksum: sha1:1522687ae3398374c35710cad993a6e82b5ab99d + pristine_git_object: 862566fe2b1db830276b390e136e65090e5963d2 + src/shippo/types/basemodel.py: + id: 5c67db658da0 + last_write_checksum: sha1:10d84aedeb9d35edfdadf2c3020caa1d24d8b584 + pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee + src/shippo/user_parcel_templates.py: + id: 8008b384080a + last_write_checksum: sha1:7bc1f24f924798be6f92c7a5b4dce2d08b103107 + pristine_git_object: 25771d4de8a67fab7c113d1f35d3f40ac3eb8db9 + src/shippo/utils/__init__.py: + id: 93a2b103d18b + last_write_checksum: sha1:53c9544397bbc534c45a228feac3cdb2e9017fe6 + pristine_git_object: 7af3b82cf95edc2901bc85b2624c54f39b7f9724 + src/shippo/utils/annotations.py: + id: a86ca92e47f8 + last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc + pristine_git_object: 12e0aa4f1151bb52474cc02e88397329b90703f6 + src/shippo/utils/datetimes.py: + id: dd409d211532 + last_write_checksum: sha1:fa47d54c549ff9b95496ce91930fadfb04a36be9 + pristine_git_object: adad24762cf452d137abe94fda0fd26224cef593 + src/shippo/utils/dynamic_imports.py: + id: 273b3b4dd93f + last_write_checksum: sha1:a1940c63feb8eddfd8026de53384baf5056d5dcc + pristine_git_object: 673edf82a97d0fea7295625d3e092ea369a36b79 + src/shippo/utils/enums.py: + id: be6dac4d263a + last_write_checksum: sha1:bc8c3c1285ae09ba8a094ee5c3d9c7f41fa1284d + pristine_git_object: 3324e1bc2668c54c4d5f5a1a845675319757a828 + src/shippo/utils/eventstreaming.py: + id: ac99137cb1a1 + last_write_checksum: sha1:7d1dc68f8b48486ab646653aa05cc38752e1f912 + pristine_git_object: a8d4fe5cc88d3c7337339e1b36a61bbf7ca8c4eb + src/shippo/utils/forms.py: + id: d94fa8f9990d + last_write_checksum: sha1:a971cdb120ad3d416d296d5d0ad89e4808350a7f + pristine_git_object: fdf0dc9b2a67bca773eefe6b471498cccaa83424 + src/shippo/utils/headers.py: + id: 7538331ffd0a + last_write_checksum: sha1:7c6df233ee006332b566a8afa9ce9a245941d935 + pristine_git_object: 37864cbbbc40d1a47112bbfdd3ba79568fc8818a + src/shippo/utils/logger.py: + id: 54bee764e58a + last_write_checksum: sha1:f3fdb154a3f09b8cc43d74c7e9c02f899f8086e4 + pristine_git_object: b661aff65d38b77d035149699aea09b2785d2fc6 + src/shippo/utils/metadata.py: + id: 3956fb505342 + last_write_checksum: sha1:e703e5cbb5255144aacf86898d1420529afaaff8 + pristine_git_object: 5abddd588837ac297050ca3b543627faadb350a9 + src/shippo/utils/queryparams.py: + id: d29319c2e567 + last_write_checksum: sha1:b94c3f314fd3da0d1d215afc2731f48748e2aa59 + pristine_git_object: c04e0db82b68eca041f2cb2614d748fbac80fd41 + src/shippo/utils/requestbodies.py: + id: b4c10e9f9387 + last_write_checksum: sha1:e1fef575283b7fe7fe2ad392dbbb3fb105309124 + pristine_git_object: 591415af8e64baa410627b507d2740afb5387d13 + src/shippo/utils/retries.py: + id: 5cc3885f175d + last_write_checksum: sha1:3585b891142f30a597fbf7a2f0340700babef8e4 + pristine_git_object: ca7b59efebbbd9545744d0207ef42725c4cc5143 + src/shippo/utils/security.py: + id: e353887864d1 + last_write_checksum: sha1:c11eef495b6aaa249178c24c796940cc540b7a00 + pristine_git_object: 42d8d78e9981eed7507670014d99588e27ab325a + src/shippo/utils/serializers.py: + id: f5c7a31e254f + last_write_checksum: sha1:7485f1425b0661fd84836186570df90207eec6af + pristine_git_object: 1031ed930bad5ece220cf7416a56c29f40f0588b + src/shippo/utils/unmarshal_json_response.py: + id: 55d93d5db8c1 + last_write_checksum: sha1:e799c86140002e69c7262547d515175869d46b63 + pristine_git_object: b1891105bc52e2c46a3eb87cca5dd654cf02f1b0 + src/shippo/utils/url.py: + id: fa7e11adff58 + last_write_checksum: sha1:6479961baa90432ca25626f8e40a7bbc32e73b41 + pristine_git_object: c78ccbae426ce6d385709d97ce0b1c2813ea2418 + src/shippo/utils/values.py: + id: c6ff1a50bf8f + last_write_checksum: sha1:acaa178a7c41ddd000f58cc691e4632d925b2553 + pristine_git_object: dae01a44384ac3bc13ae07453a053bf6c898ebe3 + src/shippo/webhooks.py: + id: ad20fbf5685a + last_write_checksum: sha1:9e06f915546e3bd7bd7730b7f750494894e1bde5 + pristine_git_object: 6f274da5981860b5198a66364889ee657c6ebb50 examples: - batch: - speakeasy-default-batch: - requestBody: - application/json: {} - track: - speakeasy-default-track: - requestBody: - application/json: {"data": {"address_from": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "address_to": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "carrier": "usps", "messages": [""], "metadata": "Order 000123", "original_eta": "2021-07-23T00:00:00Z", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "tracking_history": [{"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2024-07-24T17:47:12.180Z", "object_id": "", "object_updated": "2024-02-21T22:35:19.645Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}], "tracking_number": "9205590164917312751089", "tracking_status": {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2025-05-20T11:37:56.914Z", "object_id": "", "object_updated": "2024-06-06T16:48:30.895Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}}} - transaction: - speakeasy-default-transaction: - requestBody: - application/json: {"data": {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": {"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "provider": "USPS", "carrier_account": "078870331023437cb917f5187429b093", "servicelevel_name": "Priority Mail", "servicelevel_token": "fedex_ground"}, "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"}} ListAddresses: speakeasy-default-list-addresses: parameters: @@ -790,7 +3026,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}]} CreateAddress: speakeasy-default-create-address: parameters: @@ -800,7 +3036,7 @@ examples: application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true} responses: "201": - application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} + application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} GetAddress: speakeasy-default-get-address: parameters: @@ -810,7 +3046,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} + application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} ValidateAddress: speakeasy-default-validate-address: parameters: @@ -820,17 +3056,17 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} + application/json: {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false} CreateBatch: speakeasy-default-create-batch: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "shipment": {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": "d799c2679e644279b59fe661ac8fa488", "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "Blumenstraße", "street3": "", "street_no": "22", "city": "München", "state": "CA", "zip": "80331", "country": "DE", "phone": "80331", "email": "shippotle@shippo.com", "is_residential": true}, "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": [{"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD"}, {"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD"}, {"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD"}], "non_delivery_option": "RETURN", "test": true}, "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": [{"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}, {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}, {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}]}}]} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": []} responses: "201": - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://sleepy-vein.info", "https://agile-defendant.biz/", "https://glorious-convection.com/"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://white-glider.info", "https://near-abacus.org", "https://square-comestible.name/"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} GetBatch: speakeasy-default-get-batch: parameters: @@ -843,7 +3079,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://misguided-violin.info", "https://fatal-custom.org/"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://upright-gloom.net", "https://muddy-finger.net"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} AddShipmentsToBatch: speakeasy-default-add-shipments-to-batch: parameters: @@ -852,10 +3088,10 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "shipment": {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_to": "d799c2679e644279b59fe661ac8fa489", "customs_declaration": "adcfdddf8ec64b84ad22772bce3ea37a", "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": ["", "", {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "template": "USPS_SmallFlatRateEnvelope"}]}}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "shipment": {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "Blumenstraße", "street3": "", "street_no": "22", "city": "München", "state": "CA", "zip": "80331", "country": "DE", "phone": "80331", "email": "shippotle@shippo.com", "is_residential": true}, "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": [], "non_delivery_option": "RETURN", "test": true}, "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": [{"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "template": "DPD_UK_Express_Pak"}, {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "template": "DHLeC_Irregular"}]}}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "shipment": {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": "d799c2679e644279b59fe661ac8fa488", "address_return": "d799c2679e644279b59fe661ac8fa488", "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "customs_declaration": "adcfdddf8ec64b84ad22772bce3ea37a", "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": []}}] + application/json: [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "shipment": {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": "d799c2679e644279b59fe661ac8fa488", "address_return": "d799c2679e644279b59fe661ac8fa488", "address_to": "d799c2679e644279b59fe661ac8fa489", "customs_declaration": "adcfdddf8ec64b84ad22772bce3ea37a", "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": [""]}}] responses: "200": - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://sad-submitter.com", "https://gracious-perp.net", "https://far-off-integer.org"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": [], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} PurchaseBatch: speakeasy-default-purchase-batch: parameters: @@ -865,7 +3101,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "202": - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": [], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://hungry-precedent.info", "https://lavish-verve.name", "https://splendid-challenge.info/"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} RemoveShipmentsFromBatch: speakeasy-default-remove-shipments-from-batch: parameters: @@ -874,10 +3110,10 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: ["", "", ""] + application/json: [""] responses: "200": - application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}, {"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": [], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} + application/json: {"default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", "label_filetype": "PDF_4x6", "metadata": "BATCH #1", "batch_shipments": {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3", "metadata": "SHIPMENT #1", "servicelevel_token": "fedex_ground", "object_id": "e11c95a6788d4ddcaa22f03175838740", "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "status": "INVALID", "transaction": "4c33736a67e2450da88b38c42deef6b7"}]}, "label_url": ["https://vast-baritone.net/", "https://unique-slide.org/", "https://unlucky-reach.biz"], "object_created": "2016-01-04T00:15:44.394Z", "object_id": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4", "object_owner": "shippo@shippo.com", "object_results": {"creation_failed": 3, "creation_succeeded": 5, "purchase_failed": 0, "purchase_succeeded": 0}, "object_updated": "2016-01-04T00:48:13.841Z", "status": "VALID", "test": false} ListCarrierAccounts: speakeasy-default-list-carrier-accounts: parameters: @@ -888,17 +3124,17 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Marie", "last_name": "Fay", "phone_number": "1-760-700-6560", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false}, {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Jeanette", "last_name": "Waters", "phone_number": "(940) 480-8491 x0814", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false}, {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Jayde", "last_name": "Ledner", "phone_number": "(583) 511-9069 x90658", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Vivienne", "last_name": "Harvey", "phone_number": "718.551.9097 x17758", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", "use_multi_factor_registration": false, "verification_option": "INVOICE", "verification_invoice_amount": "340", "verification_invoice_date": "2024-03-09", "verification_invoice_currency": "USD"}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false}]} CreateCarrierAccount: speakeasy-default-create-carrier-account: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"account_id": "321123", "carrier": "fedex", "metadata": "FEDEX Account", "parameters": {"first_name": "Loyal", "last_name": "Collier", "phone_number": "(890) 307-8579", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "test": false} + application/json: {"account_id": "321123", "carrier": "fedex", "metadata": "FEDEX Account", "parameters": {"first_name": "Abdullah", "last_name": "Ward", "phone_number": "915-577-4415 x207", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", "use_multi_factor_registration": false, "verification_option": "SMS", "verification_invoice_amount": "340", "verification_invoice_date": "2024-03-09", "verification_invoice_currency": "USD"}, "test": false} responses: "201": - application/json: {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Destiny", "last_name": "Fay", "phone_number": "231.216.3066", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} + application/json: {"account_id": "****", "carrier": "usps", "parameters": {"key": "", "key1": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} GetCarrierAccount: speakeasy-default-get-carrier-account: parameters: @@ -908,7 +3144,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"account_id": "****", "carrier": "usps", "parameters": {"account_number": "94567e", "aia_country_iso2": "US", "billing_address_city": "San Francisco", "billing_address_country_iso2": "US", "billing_address_state": "CA", "billing_address_street1": "731 Market St", "billing_address_street2": "STE 200", "billing_address_zip": "94103", "collec_country_iso2": "US", "collec_zip": "94103", "company": "Shippo", "currency_code": "USD", "email": "hippo@shippo.com", "full_name": "Shippo Meister", "has_invoice": false, "invoice_controlid": "1234", "invoice_date": "20210529", "invoice_number": "1112234", "invoice_value": "11.23", "phone": "1112223333", "title": "Manager", "ups_agreements": false}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} + application/json: {"account_id": "****", "carrier": "usps", "parameters": {}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} UpdateCarrierAccount: speakeasy-default-update-carrier-account: parameters: @@ -917,17 +3153,17 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"account_id": "****", "carrier": "usps", "parameters": {"account_number": "94567e", "aia_country_iso2": "US", "billing_address_city": "San Francisco", "billing_address_country_iso2": "US", "billing_address_state": "CA", "billing_address_street1": "731 Market St", "billing_address_street2": "STE 200", "billing_address_zip": "94103", "collec_country_iso2": "US", "collec_zip": "94103", "company": "Shippo", "currency_code": "USD", "email": "hippo@shippo.com", "full_name": "Shippo Meister", "has_invoice": false, "invoice_controlid": "1234", "invoice_date": "20210529", "invoice_number": "1112234", "invoice_value": "11.23", "phone": "1112223333", "title": "Manager", "ups_agreements": true}} + application/json: {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Eldora", "last_name": "Weber", "phone_number": "1-505-428-6798", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", "use_multi_factor_registration": false, "verification_option": "EMAIL", "verification_invoice_amount": "340", "verification_invoice_date": "2024-03-09", "verification_invoice_currency": "USD"}} responses: "200": - application/json: {"account_id": "****", "carrier": "usps", "parameters": {"account_number": "94567e", "aia_country_iso2": "US", "billing_address_city": "San Francisco", "billing_address_country_iso2": "US", "billing_address_state": "CA", "billing_address_street1": "731 Market St", "billing_address_street2": "STE 200", "billing_address_zip": "94103", "collec_country_iso2": "US", "collec_zip": "94103", "company": "Shippo", "currency_code": "USD", "email": "hippo@shippo.com", "full_name": "Shippo Meister", "has_invoice": false, "invoice_controlid": "1234", "invoice_date": "20210529", "invoice_number": "1112234", "invoice_value": "11.23", "phone": "1112223333", "title": "Manager", "ups_agreements": true}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} + application/json: {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Eldora", "last_name": "Weber", "phone_number": "1-505-428-6798", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", "use_multi_factor_registration": false, "verification_option": "EMAIL", "verification_invoice_amount": "340", "verification_invoice_date": "2024-03-09", "verification_invoice_currency": "USD"}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} InitiateOauth2Signin: speakeasy-default-initiate-oauth2-signin: parameters: path: CarrierAccountObjectId: "" query: - redirect_uri: "https://enlightened-mortise.com/" + redirect_uri: "https://ashamed-reporter.biz" header: SHIPPO-API-VERSION: "2018-02-08" responses: @@ -943,15 +3179,15 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"parameters": {}} + application/json: {"carrier": "deutsche_post", "parameters": {}} responses: "201": - application/json: {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Marlene", "last_name": "Kilback", "phone_number": "(569) 519-5316", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": ""}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}, {"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} + application/json: {"account_id": "****", "carrier": "usps", "parameters": {"first_name": "Laverna", "last_name": "Lebsack", "phone_number": "1-873-422-6031", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", "use_multi_factor_registration": true, "verification_option": "CALL", "verification_invoice_amount": "340", "verification_invoice_date": "2024-03-09", "verification_invoice_currency": "USD"}, "carrier_name": "USPS", "is_shippo_account": false, "object_id": "6aa34d5f6865448fbb1ee93636e98999", "object_owner": "bob+22@gmail.com", "service_levels": [{"name": "Priority Mail Express", "token": "usps_priority_express", "supports_return_labels": true}], "test": false} GetCarrierRegistrationStatus: speakeasy-default-get-carrier-registration-status: parameters: query: - carrier: "usps" + carrier: "ups" header: SHIPPO-API-VERSION: "2018-02-08" responses: @@ -967,14 +3203,14 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}]} CreateCustomsDeclaration: speakeasy-default-create-customs-declaration: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "Blumenstraße", "street3": "", "street_no": "22", "city": "München", "state": "CA", "zip": "80331", "country": "DE", "phone": "80331", "email": "shippotle@shippo.com", "is_residential": true}, "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": [{"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD"}], "non_delivery_option": "RETURN", "test": true} + application/json: {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "Blumenstraße", "street3": "", "street_no": "22", "city": "München", "state": "CA", "zip": "80331", "country": "DE", "phone": "80331", "email": "shippotle@shippo.com", "is_residential": true}, "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": [], "non_delivery_option": "RETURN", "test": true} responses: "201": application/json: {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true} @@ -1000,7 +3236,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD", "object_created": "2014-07-17T00:49:20.631Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T00:49:20.631Z"}, {"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD", "object_created": "2014-07-17T00:49:20.631Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T00:49:20.631Z"}, {"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD", "object_created": "2014-07-17T00:49:20.631Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T00:49:20.631Z"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"description": "T-Shirt", "mass_unit": "lb", "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, "sku_code": "HM-123", "hs_code": "0901.21", "value_amount": "200", "value_currency": "USD", "object_created": "2014-07-17T00:49:20.631Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T00:49:20.631Z"}]} CreateCustomsItem: speakeasy-default-create-customs-item: parameters: @@ -1029,7 +3265,7 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"address_from": "", "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "parcel": "5df144dca289442cv7a06"} + application/json: {"address_from": "", "address_to": "", "line_items": [], "parcel": "5df144dca289442cv7a06"} responses: "200": application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "count": 123, "results": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "estimated_days": 2, "title": "Shipping Option 1"}]} @@ -1066,17 +3302,17 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2024-08-22T19:26:20.850Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2025-01-13T10:26:00.433Z", "status": "SUCCESS"}, {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2023-07-14T18:23:27.528Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2023-09-09T18:28:08.953Z", "status": "SUCCESS"}, {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2023-06-17T12:14:27.999Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2024-11-27T13:02:27.296Z", "status": "SUCCESS"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2024-06-08T13:55:26.540Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2024-10-26T03:00:59.383Z", "status": "SUCCESS"}]} CreateManifest: speakeasy-default-create-manifest: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}} + application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": ""} responses: "201": - application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2024-11-30T17:06:07.804Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2024-04-02T12:48:32.253Z", "status": "SUCCESS"} + application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2024-01-01T15:06:37.067Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2026-05-28T08:05:13.707Z", "status": "SUCCESS"} GetManifest: speakeasy-default-get-manifest: parameters: @@ -1086,7 +3322,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2025-02-06T13:54:48.821Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2024-09-04T11:33:52.011Z", "status": "SUCCESS"} + application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "address_from": "d799c2679e644279b59fe661ac8fa488", "documents": ["https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"], "object_created": "2024-08-18T07:10:36.776Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_updated": "2025-08-19T02:52:11.196Z", "status": "SUCCESS"} ListOrders: speakeasy-default-list-orders: parameters: @@ -1099,17 +3335,17 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"}, {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}, {"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"}, {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}, {"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}, {"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"}]} CreateOrder: speakeasy-default-create-order: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb"}, {"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb"}]} + application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb"}]} responses: "201": - application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"} + application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"} GetOrder: speakeasy-default-get-order: parameters: @@ -1119,9 +3355,9 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}, {"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"} + application/json: {"currency": "USD", "notes": "This customer is a VIP", "order_number": "#1068", "order_status": "PAID", "placed_at": "2016-09-23T01:28:12Z", "shipping_cost": "12.83", "shipping_cost_currency": "USD", "shipping_method": "USPS First Class Package", "subtotal_price": "12.1", "total_price": "24.93", "total_tax": "0.0", "weight": "0.4", "weight_unit": "lb", "from_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "to_address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "line_items": [{"currency": "USD", "manufacture_country": "US", "max_delivery_time": "2016-07-23T00:00:00Z", "max_ship_time": "2016-07-23T00:00:00Z", "quantity": 20, "sku": "HM-123", "title": "Hippo Magazines", "total_price": "12.1", "variant_title": "June Edition", "weight": "0.4", "weight_unit": "lb", "object_id": "abf7d5675d744b6ea9fdb6f796b28f28"}], "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "shop_app": "Shippo"} ListCarrierParcelTemplates: - "": + speakeasy-default-list-carrier-parcel-templates: parameters: query: carrier: "fedex" @@ -1129,7 +3365,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"results": [{"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}, {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}, {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}]} + application/json: {"results": [{"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}]} GetCarrierParcelTemplate: speakeasy-default-get-carrier-parcel-template: parameters: @@ -1150,7 +3386,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1", "object_created": "2014-07-09T02:19:13.174Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_state": "VALID", "object_updated": "2014-07-09T02:19:13.174Z"}]} CreateParcel: speakeasy-default-create-parcel: parameters: @@ -1177,10 +3413,10 @@ examples: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "location": {"address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "building_location_type": "Front Door", "building_type": "apartment", "instructions": "Behind screen door"}, "requested_end_time": "2024-06-17T07:14:55.338Z", "requested_start_time": "2024-11-30T17:06:07.804Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"]} + application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "location": {"address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "building_location_type": "Front Door", "building_type": "apartment", "instructions": "Behind screen door"}, "requested_end_time": "2025-03-28T03:12:16.314Z", "requested_start_time": "2024-05-20T03:35:43.192Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"]} responses: "201": - application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "location": {"address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "building_location_type": "Front Door", "building_type": "apartment", "instructions": "Behind screen door"}, "requested_end_time": "2024-04-02T12:48:32.253Z", "requested_start_time": "2023-05-28T06:20:22.766Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "confirmed_start_time": "2020-05-09T12:00:00Z", "confirmed_end_time": "2020-05-09T23:59:59.999Z", "cancel_by_time": "2020-05-09T08:00:00Z", "status": "CONFIRMED", "confirmation_code": "WTC310058750", "timezone": "US/Pacific", "messages": []} + application/json: {"carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "location": {"address": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "building_location_type": "Front Door", "building_type": "apartment", "instructions": "Behind screen door"}, "requested_end_time": "2024-07-09T14:59:13.804Z", "requested_start_time": "2024-02-17T02:16:38.954Z", "transactions": ["adcfdddf8ec64b84ad22772bce3ea37a"], "confirmed_start_time": "2020-05-09T12:00:00Z", "confirmed_end_time": "2020-05-09T23:59:59.999Z", "cancel_by_time": "2020-05-09T08:00:00Z", "status": "CONFIRMED", "confirmation_code": "WTC310058750", "timezone": "US/Pacific", "messages": []} GetRate: speakeasy-default-get-rate: parameters: @@ -1190,7 +3426,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": ["CHEAPEST", "CHEAPEST"], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2025-11-29T01:50:48.954Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"} + application/json: {"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": ["CHEAPEST"], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-10-06T19:40:47.688Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"} ListShipmentRates: speakeasy-default-list-shipment-rates: parameters: @@ -1203,7 +3439,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": ["FASTEST"], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2023-10-17T00:25:08.850Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": ["FASTEST"], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-12-11T18:16:32.755Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}]} ListShipmentRatesByCurrencyCode: speakeasy-default-list-shipment-rates-by-currency-code: parameters: @@ -1217,7 +3453,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": ["BESTVALUE", "BESTVALUE", "BESTVALUE"], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2023-10-02T15:07:56.573Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": [], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-08-01T00:35:59.670Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}]} CreateRefund: speakeasy-default-create-refund: parameters: @@ -1235,7 +3471,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "status": "SUCCESS", "transaction": "915d94940ea54c3a80cbfa328722f5a1"}, {"object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "status": "SUCCESS", "transaction": "915d94940ea54c3a80cbfa328722f5a1"}, {"object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "status": "SUCCESS", "transaction": "915d94940ea54c3a80cbfa328722f5a1"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "status": "SUCCESS", "transaction": "915d94940ea54c3a80cbfa328722f5a1"}]} GetRefund: speakeasy-default-get-refund: parameters: @@ -1253,27 +3489,27 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: [{"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]}, {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]}, {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": []}] + application/json: [{"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": []}] CreateServiceGroup: speakeasy-default-create-service-group: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} + application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "service_levels": []} responses: "201": - application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} + application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} UpdateServiceGroup: speakeasy-default-update-service-group: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} + application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} responses: "200": - application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}, {"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} + application/json: {"description": "USPS shipping options", "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", "name": "USPS Shipping", "rate_adjustment": 15, "type": "FLAT_RATE", "object_id": "80feb1633d4a43c898f005850", "is_active": true, "service_levels": [{"account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver"}]} DeleteServiceGroup: speakeasy-default-delete-service-group: parameters: @@ -1291,17 +3527,17 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": [], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [], "object_created": "2024-11-27T13:02:27.296Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-12-01T18:25:37.169Z", "parcels": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}], "rates": [], "status": "QUEUED"}, {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": ["", ""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-11-25T18:23:24.264Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2023-01-09T04:26:27.312Z", "parcels": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}], "rates": [], "status": "QUEUED"}, {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": ["", "", ""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2025-08-18T13:00:42.665Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-06-21T03:00:04.393Z", "parcels": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}], "rates": [], "status": "QUEUED"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": [], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2025-06-07T12:26:21.783Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-10-02T01:37:02.726Z", "parcels": [], "rates": [], "status": "QUEUED"}]} CreateShipment: speakeasy-default-create-shipment: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "address_return": "d799c2679e644279b59fe661ac8fa488", "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "validate": true}, "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "Blumenstraße", "street3": "", "street_no": "22", "city": "München", "state": "CA", "zip": "80331", "country": "DE", "phone": "80331", "email": "shippotle@shippo.com", "is_residential": true}, "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": [], "non_delivery_option": "RETURN", "test": true}, "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": ["", {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}, {"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}]} + application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": "d799c2679e644279b59fe661ac8fa488", "address_return": "d799c2679e644279b59fe661ac8fa488", "address_to": "d799c2679e644279b59fe661ac8fa489", "customs_declaration": "adcfdddf8ec64b84ad22772bce3ea37a", "carrier_accounts": ["065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0"], "parcels": [""]} responses: "201": - application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": ["", ""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2025-11-15T07:40:19.243Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-01-27T07:05:06.005Z", "parcels": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}], "rates": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": [], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2023-08-20T15:01:30.899Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}], "status": "QUEUED"} + application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": ["", ""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [], "object_created": "2025-03-28T07:51:30.524Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-02-29T17:21:09.844Z", "parcels": [{"extra": {"COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "insurance": {"amount": "5.5", "content": "Laptop", "currency": "USD", "provider": "UPS"}}, "metadata": "Customer ID 123456", "mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1", "object_created": "2014-07-09T02:19:13.174Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "shippotle@shippo.com", "object_state": "VALID", "object_updated": "2014-07-09T02:19:13.174Z"}], "rates": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": [], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2025-06-06T16:09:41.876Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}], "status": "QUEUED"} GetShipment: speakeasy-default-get-shipment: parameters: @@ -1311,7 +3547,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}, {"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": ["", ""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-05-17T00:32:02.244Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2024-05-09T02:28:23.533Z", "parcels": [{"mass_unit": "lb", "weight": "1", "distance_unit": "in", "height": "1", "length": "1", "width": "1"}], "rates": [{"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "arrives_by": "08:30:00", "attributes": [], "carrier_account": "078870331023437cb917f5187429b093", "duration_terms": "Delivery in 1 to 3 business days", "estimated_days": 2, "included_insurance_price": "1.05", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2024-04-25T04:53:50.189Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "provider": "USPS", "provider_image_75": "https://cdn2.goshippo.com/providers/75/USPS.png", "provider_image_200": "https://cdn2.goshippo.com/providers/200/USPS.png", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "shipment": "adcfdddf8ec64b84ad22772bce3ea37a", "zone": "1"}], "status": "QUEUED"} + application/json: {"extra": {"accounts_receivable_customer_account": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "appropriation_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "bill_of_lading_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "COD": {"amount": "5.5", "currency": "USD", "payment_method": "CASH"}, "cod_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "customer_reference": {"ref_sort": 1}, "dealer_order_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "dept_number": {"ref_sort": 3}, "fda_product_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "insurance": {"amount": "5.5", "currency": "USD"}, "invoice_number": {"ref_sort": 2}, "manifest_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "model_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "part_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "po_number": {"ref_sort": 2}, "production_code": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "purchase_request_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "rma_number": {"ref_sort": 1}, "salesperson_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "serial_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "store_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}, "transaction_reference_number": {"prefix": "ABC", "value": "value", "ref_sort": 1}}, "metadata": "Customer ID 123456", "shipment_date": "2021-03-22T12:00:00Z", "address_from": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_return": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "address_to": {"name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", "street3": "", "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": true, "metadata": "Customer ID 123456", "is_complete": true, "object_created": "2014-07-09T02:19:13.174Z", "object_id": "d799c2679e644279b59fe661ac8fa488", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-09T02:19:13.174Z", "validation_results": {"is_valid": false, "messages": [{"code": "Unknown Street", "source": "Shippo Address Validator", "text": "City, State and ZIP Code are valid, but street address is not a match.", "type": "address_warning"}]}, "test": false}, "carrier_accounts": [""], "customs_declaration": {"b13a_filing_option": "FILED_ELECTRONICALLY", "certify": true, "certify_signer": "Shawn Ippotle", "contents_explanation": "T-Shirt purchase", "duties_payor": {"account": "2323434543", "type": "THIRD_PARTY", "address": {"name": "Patrick Kavanagh", "zip": "80331", "country": "DE"}}, "exporter_identification": {"eori_number": "PL123456790ABCDE", "tax_id": {"number": "123456789", "type": "EIN"}}, "invoice": "#123123", "metadata": "Order ID #123123", "address_importer": "257ba08436604d2aaf069caafe7acb2a", "contents_type": "MERCHANDISE", "eel_pfc": "NOEEI_30_37_a", "incoterm": "DDP", "items": ["5087f181d1dc4b14b73fdbf636498886"], "non_delivery_option": "RETURN", "object_created": "2014-07-17T01:01:08.306Z", "object_id": "e2197a54da9d470480f4f8796cc419cb", "object_owner": "shippotle@shippo.com", "object_updated": "2014-07-17T01:01:08.306Z", "test": true}, "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_created": "2026-05-24T14:50:33.573Z", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "object_owner": "pp@gmail.com", "object_updated": "2025-12-19T12:32:02.285Z", "parcels": [], "rates": [], "status": "QUEUED"} CreateTrack: speakeasy-default-create-track: parameters: @@ -1321,7 +3557,7 @@ examples: application/json: {"carrier": "usps", "metadata": "Order 000123", "tracking_number": "9205590164917312751089"} responses: "200": - application/json: {"address_from": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "address_to": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "carrier": "usps", "messages": [""], "metadata": "Order 000123", "original_eta": "2021-07-23T00:00:00Z", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "tracking_history": [{"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2024-04-02T12:48:32.253Z", "object_id": "", "object_updated": "2023-05-28T06:20:22.766Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}, {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2025-05-22T22:27:14.379Z", "object_id": "", "object_updated": "2025-11-08T08:43:39.394Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}], "tracking_number": "9205590164917312751089", "tracking_status": {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2023-07-06T00:30:20.403Z", "object_id": "", "object_updated": "2023-04-09T14:25:29.356Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": false}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}} + application/json: {"address_from": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "address_to": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "carrier": "usps", "messages": ["", "", ""], "metadata": "Order 000123", "original_eta": "2021-07-23T00:00:00Z", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "tracking_history": [{"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2026-05-21T09:37:59.537Z", "object_id": "", "object_updated": "2024-01-19T01:10:51.013Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}], "tracking_number": "9205590164917312751089", "tracking_status": {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2025-11-20T02:51:18.273Z", "object_id": "", "object_updated": "2024-02-18T21:39:54.423Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}} GetTrack: speakeasy-default-get-track: parameters: @@ -1332,7 +3568,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"address_from": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "address_to": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "carrier": "usps", "messages": ["", ""], "metadata": "Order 000123", "original_eta": "2021-07-23T00:00:00Z", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "tracking_history": [{"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2024-08-19T11:11:04.610Z", "object_id": "", "object_updated": "2024-07-25T06:33:15.810Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": false}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}, {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2024-05-17T00:32:02.244Z", "object_id": "", "object_updated": "2024-05-09T02:28:23.533Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}], "tracking_number": "9205590164917312751089", "tracking_status": {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2023-08-22T22:47:10.166Z", "object_id": "", "object_updated": "2025-10-24T02:41:21.259Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}} + application/json: {"address_from": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "address_to": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "carrier": "usps", "messages": [], "metadata": "Order 000123", "original_eta": "2021-07-23T00:00:00Z", "servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express", "parent_servicelevel": {"name": "Priority Mail Express", "token": "usps_priority_express"}}, "tracking_history": [], "tracking_number": "9205590164917312751089", "tracking_status": {"location": {"city": "Las Vegas", "country": "US", "state": "NV", "zip": "89101"}, "object_created": "2024-10-20T01:17:17.651Z", "object_id": "", "object_updated": "2025-06-23T22:22:29.066Z", "status": "DELIVERED", "substatus": {"code": "information_received", "text": "Information about the package received.", "action_required": true}, "status_date": "2016-07-23T00:00:00Z", "status_details": "Your shipment has been delivered at the destination mailbox."}} ListTransactions: speakeasy-default-list-transactions: parameters: @@ -1345,7 +3581,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"}, {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": {"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "provider": "USPS", "carrier_account": "078870331023437cb917f5187429b093", "servicelevel_name": "Priority Mail", "servicelevel_token": "fedex_ground"}, "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"}, {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"}]} CreateTransaction: speakeasy-default-create-transaction: parameters: @@ -1355,7 +3591,7 @@ examples: application/json: {"async": false, "label_file_type": "PDF_4x6", "metadata": "Order ID #12345", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "order": "adcfdddf8ec64b84ad22772bce3ea37a"} responses: "201": - application/json: {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": {"amount": "5.5", "amount_local": "5.5", "currency": "USD", "currency_local": "USD", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a", "provider": "USPS", "carrier_account": "078870331023437cb917f5187429b093", "servicelevel_name": "Priority Mail", "servicelevel_token": "fedex_ground"}, "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"} + application/json: {"created_by": null, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"} GetTransaction: speakeasy-default-get-transaction: parameters: @@ -1365,7 +3601,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}, {"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"} + application/json: {"created_by": {"first_name": "Shwan", "last_name": "Ippotle", "username": "shippotle@shippo.com"}, "label_file_type": "PDF_4x6", "label_url": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "messages": [{"source": "UPS", "code": "carrier_timeout", "text": "UPS API did not respond. Please try again in a few minutes."}], "object_id": "915d94940ea54c3a80cbfa328722f5a1", "object_owner": "shippotle@shippo.com", "parcel": "e94c7fdfdc7b495dbb390a28d929d90a", "qr_code_url": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA", "rate": "ec9f0d3adc9441449c85d315f0997fd5", "status": "SUCCESS", "tracking_number": "9499907123456123456781", "tracking_status": "DELIVERED", "tracking_url_provider": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781"} ListUserParcelTemplates: speakeasy-default-list-user-parcel-templates: parameters: @@ -1373,14 +3609,14 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"results": [{"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8", "object_created": "2013-12-11T19:38:09.729Z", "object_id": "b958d3690bb04bb8b2986724872750f5", "object_owner": "shippotle@shippo.com", "object_updated": "2013-12-12T19:38:09.729Z", "template": {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}}, {"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8", "object_created": "2013-12-11T19:38:09.729Z", "object_id": "b958d3690bb04bb8b2986724872750f5", "object_owner": "shippotle@shippo.com", "object_updated": "2013-12-12T19:38:09.729Z", "template": {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}}, {"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8", "object_created": "2013-12-11T19:38:09.729Z", "object_id": "b958d3690bb04bb8b2986724872750f5", "object_owner": "shippotle@shippo.com", "object_updated": "2013-12-12T19:38:09.729Z", "template": {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}}]} + application/json: {"results": [{"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8", "object_created": "2013-12-11T19:38:09.729Z", "object_id": "b958d3690bb04bb8b2986724872750f5", "object_owner": "shippotle@shippo.com", "object_updated": "2013-12-12T19:38:09.729Z", "template": {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}}]} CreateUserParcelTemplate: speakeasy-default-create-user-parcel-template: parameters: header: SHIPPO-API-VERSION: "2018-02-08" requestBody: - application/json: {"weight": "12", "weight_unit": "lb"} + application/json: {"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8"} responses: "200": application/json: {"distance_unit": "in", "height": "6", "length": "10", "name": "My Custom Template", "weight": "12", "weight_unit": "lb", "width": "8", "object_created": "2013-12-11T19:38:09.729Z", "object_id": "b958d3690bb04bb8b2986724872750f5", "object_owner": "shippotle@shippo.com", "object_updated": "2013-12-12T19:38:09.729Z", "template": {"carrier": "FedEx", "distance_unit": "in", "height": "1.5", "is_variable_dimensions": false, "length": "12.375", "name": "FedEx® Small Box (S1)", "token": "FedEx_Box_Small_1", "width": "10.875"}} @@ -1423,7 +3659,7 @@ examples: SHIPPO-API-VERSION: "2018-02-08" responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"email": "hippo@shippo.com", "first_name": "Shippo", "last_name": "Meister", "company_name": "Acme", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a"}, {"email": "hippo@shippo.com", "first_name": "Shippo", "last_name": "Meister", "company_name": "Acme", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a"}, {"email": "hippo@shippo.com", "first_name": "Shippo", "last_name": "Meister", "company_name": "Acme", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a"}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"email": "hippo@shippo.com", "first_name": "Shippo", "last_name": "Meister", "company_name": "Acme", "object_id": "adcfdddf8ec64b84ad22772bce3ea37a"}]} CreateShippoAccount: speakeasy-default-create-shippo-account: parameters: @@ -1459,7 +3695,7 @@ examples: createWebhook: speakeasy-default-create-webhook: requestBody: - application/json: {"event": "batch_created", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} + application/json: {"event": "transaction_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} responses: "201": application/json: {"event": "track_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} @@ -1467,7 +3703,7 @@ examples: speakeasy-default-list-webhooks: responses: "200": - application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"event": "track_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false}, {"event": "track_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false}]} + application/json: {"next": "baseurl?page=3&results=10", "previous": "baseurl?page=1&results=10", "results": [{"event": "track_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false}]} getWebhook: speakeasy-default-get-webhook: parameters: @@ -1482,7 +3718,7 @@ examples: path: webhookId: "" requestBody: - application/json: {"event": "batch_created", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} + application/json: {"event": "all", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} responses: "200": application/json: {"event": "track_updated", "url": "https://example.com/shippo-webhook", "active": true, "is_test": false} @@ -1491,5 +3727,740 @@ examples: parameters: path: webhookId: "" -examplesVersion: 1.0.0 +examplesVersion: 1.0.2 generatedTests: {} +releaseNotes: "## Python SDK Changes:\n* `shippo.carrier_accounts.register()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed**\n* `shippo.rates_at_checkout.create()`: \n * `request.parcel.union(Parcel).template.union(ParcelTemplateCouriersPleaseEnum)` **Removed** (Breaking ⚠️)\n* `shippo.carrier_accounts.list()`: \n * `request.carrier` **Changed** (Breaking ⚠️)\n * `response.results[]` **Changed**\n* `shippo.carrier_accounts.create()`: \n * `request.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed** (Breaking ⚠️)\n * `response.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed**\n* `shippo.transactions.create()`: \n * `request.union(InstantTransactionCreateRequest).shipment` **Changed** (Breaking ⚠️)\n* `shippo.carrier_accounts.update()`: \n * `request.carrier_account_base.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed** (Breaking ⚠️)\n * `response.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed**\n* `shippo.batches.add_shipments()`: \n * `request_body[].shipment` **Changed** (Breaking ⚠️)\n* `shippo.parcels.get()`: `response.template.union(ParcelTemplateCouriersPleaseEnum)` **Removed** (Breaking ⚠️)\n* `shippo.batches.create()`: \n * `request.batch_shipments[].shipment` **Changed** (Breaking ⚠️)\n* `shippo.parcels.create()`: \n * `request.union(ParcelCreateFromTemplateRequest).template.union(ParcelTemplateCouriersPleaseEnum)` **Removed** (Breaking ⚠️)\n * `response.template.union(ParcelTemplateCouriersPleaseEnum)` **Removed** (Breaking ⚠️)\n* `shippo.parcels.list()`: `response.results[].template.union(ParcelTemplateCouriersPleaseEnum)` **Removed** (Breaking ⚠️)\n* `shippo.shipments.list()`: `response.results[]` **Changed** (Breaking ⚠️)\n* `shippo.shipments.create()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `shippo.shipments.get()`: `response` **Changed** (Breaking ⚠️)\n* `shippo.carrier_accounts.get()`: `response.parameters.union(FedExConnectExistingOwnAccountParameters)` **Changed**\n" +generatedFiles: + - .gitattributes + - .python-version + - .vscode/settings.json + - USAGE.md + - docs/models/components/address.md + - docs/models/components/addresscompletecreaterequest.md + - docs/models/components/addresscreaterequest.md + - docs/models/components/addressimporter.md + - docs/models/components/addresspaginatedlist.md + - docs/models/components/addressreturn.md + - docs/models/components/addressvalidationresults.md + - docs/models/components/addressvalidationresultsmessage.md + - docs/models/components/addressvalidationresultsmessagecodeenum.md + - docs/models/components/addressvalidationresultsmessagesourceenum.md + - docs/models/components/alcohol.md + - docs/models/components/ancillaryendorsement.md + - docs/models/components/attribute.md + - docs/models/components/authentication.md + - docs/models/components/batch.md + - docs/models/components/batchcreaterequest.md + - docs/models/components/batchshipment.md + - docs/models/components/batchshipmentcreaterequest.md + - docs/models/components/batchshipmentpaginatedlist.md + - docs/models/components/batchshipmentstatus.md + - docs/models/components/batchstatus.md + - docs/models/components/billing.md + - docs/models/components/billingtype.md + - docs/models/components/buildinglocationtype.md + - docs/models/components/buildingtype.md + - docs/models/components/carrieraccount.md + - docs/models/components/carrieraccountbase.md + - docs/models/components/carrieraccountbaseparameters.md + - docs/models/components/carrieraccountcanadapostcreateparameters.md + - docs/models/components/carrieraccountcanadapostcreaterequest.md + - docs/models/components/carrieraccountchronopostcreaterequest.md + - docs/models/components/carrieraccountchronopostcreaterequestparameters.md + - docs/models/components/carrieraccountcolissimocreaterequest.md + - docs/models/components/carrieraccountcolissimocreaterequestparameters.md + - docs/models/components/carrieraccountcorreoscreaterequest.md + - docs/models/components/carrieraccountcorreoscreaterequestparameters.md + - docs/models/components/carrieraccountdeutschepostcreaterequest.md + - docs/models/components/carrieraccountdeutschepostcreaterequestparameters.md + - docs/models/components/carrieraccountdhlexpresscreaterequest.md + - docs/models/components/carrieraccountdhlexpresscreaterequestparameters.md + - docs/models/components/carrieraccountdpddecreaterequest.md + - docs/models/components/carrieraccountdpddecreaterequestparameters.md + - docs/models/components/carrieraccountdpdukcreaterequest.md + - docs/models/components/carrieraccountdpdukcreaterequestparameters.md + - docs/models/components/carrieraccountfedexcreaterequest.md + - docs/models/components/carrieraccountfedexcreaterequestparameters.md + - docs/models/components/carrieraccounthermesukcreaterequest.md + - docs/models/components/carrieraccounthermesukcreaterequestparameters.md + - docs/models/components/carrieraccountmondialrelaycreaterequest.md + - docs/models/components/carrieraccountmondialrelaycreaterequestparameters.md + - docs/models/components/carrieraccountpaginatedlist.md + - docs/models/components/carrieraccountparameters.md + - docs/models/components/carrieraccountposteitalianecreaterequest.md + - docs/models/components/carrieraccountposteitalianecreaterequestparameters.md + - docs/models/components/carrieraccountregistrationstatus.md + - docs/models/components/carrieraccountsendlecreaterequest.md + - docs/models/components/carrieraccountsendlecreaterequestparameters.md + - docs/models/components/carrieraccountservicelevel.md + - docs/models/components/carrieraccountupscreaterequest.md + - docs/models/components/carrieraccountupscreaterequestparameters.md + - docs/models/components/carrieraccountuspscreaterequest.md + - docs/models/components/carrieraccountuspscreaterequestparameters.md + - docs/models/components/carrieraccountwithextrainfo.md + - docs/models/components/carrieraccountwithextrainfoparameters.md + - docs/models/components/carrieraccountwithextrainfostatus.md + - docs/models/components/carrieraccountwithextrainfotype.md + - docs/models/components/carrierparceltemplate.md + - docs/models/components/carrierparceltemplatelist.md + - docs/models/components/carriersenum.md + - docs/models/components/cod.md + - docs/models/components/connectexistingownaccountrequest.md + - docs/models/components/connectexistingownaccountrequestparameters.md + - docs/models/components/corerate.md + - docs/models/components/createdby.md + - docs/models/components/customerreference.md + - docs/models/components/customsdeclaration.md + - docs/models/components/customsdeclarationaddress.md + - docs/models/components/customsdeclarationb13afilingoptionenum.md + - docs/models/components/customsdeclarationcontentstypeenum.md + - docs/models/components/customsdeclarationcreaterequest.md + - docs/models/components/customsdeclarationcreaterequestaddress.md + - docs/models/components/customsdeclarationcreaterequestdutiespayor.md + - docs/models/components/customsdeclarationcreaterequesttype.md + - docs/models/components/customsdeclarationdutiespayor.md + - docs/models/components/customsdeclarationeelpfcenum.md + - docs/models/components/customsdeclarationincotermenum.md + - docs/models/components/customsdeclarationnondeliveryoptionenum.md + - docs/models/components/customsdeclarationpaginatedlist.md + - docs/models/components/customsdeclarationtype.md + - docs/models/components/customsdeclarationunion.md + - docs/models/components/customsexporteridentification.md + - docs/models/components/customsinvoicedcharges.md + - docs/models/components/customsitem.md + - docs/models/components/customsitemcreaterequest.md + - docs/models/components/customsitempaginatedlist.md + - docs/models/components/customstaxidentification.md + - docs/models/components/customstaxidentificationtype.md + - docs/models/components/dangerousgoodsbiologicalmaterial.md + - docs/models/components/dangerousgoodscode.md + - docs/models/components/dangerousgoodslithiumbatteries.md + - docs/models/components/dangerousgoodsobject.md + - docs/models/components/defaultparceltemplate.md + - docs/models/components/defaultparceltemplateupdaterequest.md + - docs/models/components/departmentnumber.md + - docs/models/components/distanceunitenum.md + - docs/models/components/dryice.md + - docs/models/components/fedexconnectexistingownaccountparameters.md + - docs/models/components/instanttransactioncreaterequest.md + - docs/models/components/insurance.md + - docs/models/components/insuranceprovider.md + - docs/models/components/invoicenumber.md + - docs/models/components/labelfiletype.md + - docs/models/components/labelfiletypeenum.md + - docs/models/components/latitude.md + - docs/models/components/lineitem.md + - docs/models/components/lineitembase.md + - docs/models/components/liverate.md + - docs/models/components/liveratecreaterequest.md + - docs/models/components/liveratecreaterequestaddressfrom.md + - docs/models/components/liveratecreaterequestaddressto.md + - docs/models/components/liveratecreaterequestparcel.md + - docs/models/components/liveratepaginatedlist.md + - docs/models/components/location.md + - docs/models/components/longitude.md + - docs/models/components/manifest.md + - docs/models/components/manifestcreaterequest.md + - docs/models/components/manifestcreaterequestaddressfrom.md + - docs/models/components/manifestpaginatedlist.md + - docs/models/components/manifeststatus.md + - docs/models/components/objectinfo.md + - docs/models/components/objectresults.md + - docs/models/components/objectstate.md + - docs/models/components/objectstateenum.md + - docs/models/components/order.md + - docs/models/components/ordercreaterequest.md + - docs/models/components/orderpaginatedlist.md + - docs/models/components/ordershopappenum.md + - docs/models/components/orderstatusenum.md + - docs/models/components/ordertransaction.md + - docs/models/components/parcel.md + - docs/models/components/parcelcreatefromtemplaterequest.md + - docs/models/components/parcelcreaterequest.md + - docs/models/components/parcelextra.md + - docs/models/components/parcelinsurance.md + - docs/models/components/parcelinsuranceprovider.md + - docs/models/components/parcelpaginatedlist.md + - docs/models/components/parceltemplatearamexaustraliaenum.md + - docs/models/components/parceltemplatedhlecommerceenum.md + - docs/models/components/parceltemplatedpdukenum.md + - docs/models/components/parceltemplateenumset.md + - docs/models/components/parceltemplatefedexenum.md + - docs/models/components/parceltemplateupsenum.md + - docs/models/components/parceltemplateuspsenum.md + - docs/models/components/paymentmethod.md + - docs/models/components/pickup.md + - docs/models/components/pickupbase.md + - docs/models/components/pickupstatus.md + - docs/models/components/ponumber.md + - docs/models/components/preferreddeliverytimeframe.md + - docs/models/components/rate.md + - docs/models/components/ratepaginatedlist.md + - docs/models/components/rateunion.md + - docs/models/components/recipienttype.md + - docs/models/components/refund.md + - docs/models/components/refundpaginatedlist.md + - docs/models/components/refundrequestbody.md + - docs/models/components/refundstatus.md + - docs/models/components/responsemessage.md + - docs/models/components/returnservicetype.md + - docs/models/components/rmanumber.md + - docs/models/components/security.md + - docs/models/components/servicegroup.md + - docs/models/components/servicegroupaccountandservicelevel.md + - docs/models/components/servicegroupcreaterequest.md + - docs/models/components/servicegrouptypeenum.md + - docs/models/components/servicegroupupdaterequest.md + - docs/models/components/servicelevel.md + - docs/models/components/servicelevelairterraenum.md + - docs/models/components/servicelevelapcpostalenum.md + - docs/models/components/servicelevelapgenum.md + - docs/models/components/servicelevelaramexaustraliaenum.md + - docs/models/components/servicelevelasendiaenum.md + - docs/models/components/servicelevelaustraliapostenum.md + - docs/models/components/servicelevelbettertrucksenum.md + - docs/models/components/servicelevelcanadapostenum.md + - docs/models/components/servicelevelcdlenum.md + - docs/models/components/servicelevelchronopostenum.md + - docs/models/components/servicelevelcolissimoenum.md + - docs/models/components/servicelevelcorreosespanaenum.md + - docs/models/components/serviceleveldeutschepostenum.md + - docs/models/components/serviceleveldhlecommerceenum.md + - docs/models/components/serviceleveldhlexpressenum.md + - docs/models/components/serviceleveldhlgermanyenum.md + - docs/models/components/serviceleveldpddeenum.md + - docs/models/components/serviceleveldpdukenum.md + - docs/models/components/servicelevelenumset.md + - docs/models/components/servicelevelepostglobalenum.md + - docs/models/components/servicelevelevriukenum.md + - docs/models/components/servicelevelfedexenum.md + - docs/models/components/servicelevelglobegisticsenum.md + - docs/models/components/servicelevelglsusenum.md + - docs/models/components/serviceleveljitsuenum.md + - docs/models/components/servicelevellasershipenum.md + - docs/models/components/servicelevellsoenum.md + - docs/models/components/servicelevelmondialrelayenum.md + - docs/models/components/servicelevelontracenum.md + - docs/models/components/servicelevelparcelforceenum.md + - docs/models/components/servicelevelpostitalianeenum.md + - docs/models/components/servicelevelpurolatorenum.md + - docs/models/components/servicelevelroyalmailenum.md + - docs/models/components/servicelevelsendleenum.md + - docs/models/components/servicelevelswyftenum.md + - docs/models/components/serviceleveludsenum.md + - docs/models/components/servicelevelupsenum.md + - docs/models/components/serviceleveluspsenum.md + - docs/models/components/servicelevelvehoenum.md + - docs/models/components/servicelevelwithparent.md + - docs/models/components/shipment.md + - docs/models/components/shipmentcreaterequest.md + - docs/models/components/shipmentcreaterequestaddressfrom.md + - docs/models/components/shipmentcreaterequestaddressto.md + - docs/models/components/shipmentcreaterequestparcel.md + - docs/models/components/shipmentextra.md + - docs/models/components/shipmentextralasershipattributesenum.md + - docs/models/components/shipmentextrareturnservicetypelasershipenum.md + - docs/models/components/shipmentextrareturnservicetypeupsenum.md + - docs/models/components/shipmentpaginatedlist.md + - docs/models/components/shipmentstatus.md + - docs/models/components/shippoaccount.md + - docs/models/components/shippoaccountpaginatedlist.md + - docs/models/components/shippoaccountupdaterequest.md + - docs/models/components/signatureconfirmation.md + - docs/models/components/track.md + - docs/models/components/trackingstatus.md + - docs/models/components/trackingstatusenum.md + - docs/models/components/trackingstatuslocationbase.md + - docs/models/components/trackingstatussubstatus.md + - docs/models/components/tracksrequest.md + - docs/models/components/transaction.md + - docs/models/components/transactioncreaterequest.md + - docs/models/components/transactionpaginatedlist.md + - docs/models/components/transactionstatusenum.md + - docs/models/components/upsconnectexistingownaccountparameters.md + - docs/models/components/upsreferencefields.md + - docs/models/components/userparceltemplate.md + - docs/models/components/userparceltemplatecreaterequest.md + - docs/models/components/userparceltemplatelist.md + - docs/models/components/userparceltemplateupdaterequest.md + - docs/models/components/userparceltemplatewithcarriertemplatecreaterequest.md + - docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md + - docs/models/components/webhook.md + - docs/models/components/webhookeventtypeenum.md + - docs/models/components/webhookpaginatedlist.md + - docs/models/components/webhookpayload.md + - docs/models/components/webhookpayloadbatch.md + - docs/models/components/webhookpayloadtrack.md + - docs/models/components/webhookpayloadtransaction.md + - docs/models/components/webhookupdaterequest.md + - docs/models/components/weightunitenum.md + - docs/models/errors/badrequesterror.md + - docs/models/errors/notfounderror.md + - docs/models/errors/unauthorizederror.md + - docs/models/internal/globals.md + - docs/models/operations/addshipmentstobatchglobals.md + - docs/models/operations/addshipmentstobatchrequest.md + - docs/models/operations/carrier.md + - docs/models/operations/createaddressglobals.md + - docs/models/operations/createbatchglobals.md + - docs/models/operations/createcarrieraccountglobals.md + - docs/models/operations/createcustomsdeclarationglobals.md + - docs/models/operations/createcustomsitemglobals.md + - docs/models/operations/createliverateglobals.md + - docs/models/operations/createmanifestglobals.md + - docs/models/operations/createorderglobals.md + - docs/models/operations/createparcelglobals.md + - docs/models/operations/createparcelrequest.md + - docs/models/operations/createpickupglobals.md + - docs/models/operations/createrefundglobals.md + - docs/models/operations/createservicegroupglobals.md + - docs/models/operations/createshipmentglobals.md + - docs/models/operations/createshippoaccountglobals.md + - docs/models/operations/createtrackglobals.md + - docs/models/operations/createtransactionglobals.md + - docs/models/operations/createtransactionrequest.md + - docs/models/operations/createuserparceltemplateglobals.md + - docs/models/operations/deletedefaultparceltemplateglobals.md + - docs/models/operations/deletedefaultparceltemplaterequest.md + - docs/models/operations/deleteservicegroupglobals.md + - docs/models/operations/deleteservicegrouprequest.md + - docs/models/operations/deleteuserparceltemplateglobals.md + - docs/models/operations/deleteuserparceltemplaterequest.md + - docs/models/operations/deletewebhookrequest.md + - docs/models/operations/getaddressglobals.md + - docs/models/operations/getaddressrequest.md + - docs/models/operations/getbatchglobals.md + - docs/models/operations/getbatchrequest.md + - docs/models/operations/getcarrieraccountglobals.md + - docs/models/operations/getcarrieraccountrequest.md + - docs/models/operations/getcarrierparceltemplateglobals.md + - docs/models/operations/getcarrierparceltemplaterequest.md + - docs/models/operations/getcarrierregistrationstatusglobals.md + - docs/models/operations/getcarrierregistrationstatusrequest.md + - docs/models/operations/getcustomsdeclarationglobals.md + - docs/models/operations/getcustomsdeclarationrequest.md + - docs/models/operations/getcustomsitemglobals.md + - docs/models/operations/getcustomsitemrequest.md + - docs/models/operations/getdefaultparceltemplateglobals.md + - docs/models/operations/getdefaultparceltemplaterequest.md + - docs/models/operations/getmanifestglobals.md + - docs/models/operations/getmanifestrequest.md + - docs/models/operations/getorderglobals.md + - docs/models/operations/getorderrequest.md + - docs/models/operations/getparcelglobals.md + - docs/models/operations/getparcelrequest.md + - docs/models/operations/getrateglobals.md + - docs/models/operations/getraterequest.md + - docs/models/operations/getrefundglobals.md + - docs/models/operations/getrefundrequest.md + - docs/models/operations/getshipmentglobals.md + - docs/models/operations/getshipmentrequest.md + - docs/models/operations/getshippoaccountglobals.md + - docs/models/operations/getshippoaccountrequest.md + - docs/models/operations/gettrackglobals.md + - docs/models/operations/gettrackrequest.md + - docs/models/operations/gettransactionglobals.md + - docs/models/operations/gettransactionrequest.md + - docs/models/operations/getuserparceltemplateglobals.md + - docs/models/operations/getuserparceltemplaterequest.md + - docs/models/operations/getwebhookrequest.md + - docs/models/operations/include.md + - docs/models/operations/initiateoauth2signinglobals.md + - docs/models/operations/initiateoauth2signinrequest.md + - docs/models/operations/initiateoauth2signinresponse.md + - docs/models/operations/listaddressesglobals.md + - docs/models/operations/listaddressesrequest.md + - docs/models/operations/listcarrieraccountsglobals.md + - docs/models/operations/listcarrieraccountsrequest.md + - docs/models/operations/listcarrierparceltemplatesglobals.md + - docs/models/operations/listcarrierparceltemplatesrequest.md + - docs/models/operations/listcustomsdeclarationsglobals.md + - docs/models/operations/listcustomsdeclarationsrequest.md + - docs/models/operations/listcustomsitemsglobals.md + - docs/models/operations/listcustomsitemsrequest.md + - docs/models/operations/listmanifestsglobals.md + - docs/models/operations/listmanifestsrequest.md + - docs/models/operations/listordersglobals.md + - docs/models/operations/listordersrequest.md + - docs/models/operations/listparcelsglobals.md + - docs/models/operations/listparcelsrequest.md + - docs/models/operations/listrefundsglobals.md + - docs/models/operations/listrefundsrequest.md + - docs/models/operations/listservicegroupsglobals.md + - docs/models/operations/listservicegroupsrequest.md + - docs/models/operations/listshipmentratesbycurrencycodeglobals.md + - docs/models/operations/listshipmentratesbycurrencycoderequest.md + - docs/models/operations/listshipmentratesglobals.md + - docs/models/operations/listshipmentratesrequest.md + - docs/models/operations/listshipmentsglobals.md + - docs/models/operations/listshipmentsrequest.md + - docs/models/operations/listshippoaccountsglobals.md + - docs/models/operations/listshippoaccountsrequest.md + - docs/models/operations/listtransactionsglobals.md + - docs/models/operations/listtransactionsrequest.md + - docs/models/operations/listuserparceltemplatesglobals.md + - docs/models/operations/listuserparceltemplatesrequest.md + - docs/models/operations/purchasebatchglobals.md + - docs/models/operations/purchasebatchrequest.md + - docs/models/operations/registercarrieraccountglobals.md + - docs/models/operations/registercarrieraccountrequest.md + - docs/models/operations/removeshipmentsfrombatchglobals.md + - docs/models/operations/removeshipmentsfrombatchrequest.md + - docs/models/operations/updatecarrieraccountglobals.md + - docs/models/operations/updatecarrieraccountrequest.md + - docs/models/operations/updatedefaultparceltemplateglobals.md + - docs/models/operations/updateservicegroupglobals.md + - docs/models/operations/updateshippoaccountglobals.md + - docs/models/operations/updateshippoaccountrequest.md + - docs/models/operations/updateuserparceltemplateglobals.md + - docs/models/operations/updateuserparceltemplaterequest.md + - docs/models/operations/updatewebhookrequest.md + - docs/models/operations/validateaddressglobals.md + - docs/models/operations/validateaddressrequest.md + - docs/models/utils/retryconfig.md + - docs/sdks/addresses/README.md + - docs/sdks/batches/README.md + - docs/sdks/carrieraccounts/README.md + - docs/sdks/carrierparceltemplates/README.md + - docs/sdks/customsdeclarations/README.md + - docs/sdks/customsitems/README.md + - docs/sdks/manifests/README.md + - docs/sdks/orders/README.md + - docs/sdks/parcels/README.md + - docs/sdks/pickups/README.md + - docs/sdks/rates/README.md + - docs/sdks/ratesatcheckout/README.md + - docs/sdks/refunds/README.md + - docs/sdks/servicegroups/README.md + - docs/sdks/shipments/README.md + - docs/sdks/shippo/README.md + - docs/sdks/shippoaccounts/README.md + - docs/sdks/trackingstatus/README.md + - docs/sdks/transactions/README.md + - docs/sdks/userparceltemplates/README.md + - docs/sdks/webhooks/README.md + - poetry.toml + - py.typed + - pylintrc + - pyproject.toml + - scripts/prepare_readme.py + - scripts/publish.sh + - src/shippo/__init__.py + - src/shippo/_hooks/__init__.py + - src/shippo/_hooks/sdkhooks.py + - src/shippo/_hooks/types.py + - src/shippo/_version.py + - src/shippo/addresses.py + - src/shippo/basesdk.py + - src/shippo/batches.py + - src/shippo/carrier_accounts.py + - src/shippo/carrier_parcel_templates.py + - src/shippo/customs_declarations.py + - src/shippo/customs_items.py + - src/shippo/httpclient.py + - src/shippo/manifests.py + - src/shippo/models/__init__.py + - src/shippo/models/components/__init__.py + - src/shippo/models/components/address.py + - src/shippo/models/components/addresscompletecreaterequest.py + - src/shippo/models/components/addresscreaterequest.py + - src/shippo/models/components/addressimporter.py + - src/shippo/models/components/addresspaginatedlist.py + - src/shippo/models/components/addressvalidationresults.py + - src/shippo/models/components/addressvalidationresultsmessage.py + - src/shippo/models/components/addressvalidationresultsmessagecodeenum.py + - src/shippo/models/components/addressvalidationresultsmessagesourceenum.py + - src/shippo/models/components/alcohol.py + - src/shippo/models/components/batch.py + - src/shippo/models/components/batchcreaterequest.py + - src/shippo/models/components/batchshipment.py + - src/shippo/models/components/batchshipmentcreaterequest.py + - src/shippo/models/components/batchshipmentpaginatedlist.py + - src/shippo/models/components/billing.py + - src/shippo/models/components/carrieraccount.py + - src/shippo/models/components/carrieraccountbase.py + - src/shippo/models/components/carrieraccountcanadapostcreateparameters.py + - src/shippo/models/components/carrieraccountcanadapostcreaterequest.py + - src/shippo/models/components/carrieraccountchronopostcreaterequest.py + - src/shippo/models/components/carrieraccountcolissimocreaterequest.py + - src/shippo/models/components/carrieraccountcorreoscreaterequest.py + - src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py + - src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py + - src/shippo/models/components/carrieraccountdhlexpresscreaterequestparameters.py + - src/shippo/models/components/carrieraccountdpddecreaterequest.py + - src/shippo/models/components/carrieraccountdpdukcreaterequest.py + - src/shippo/models/components/carrieraccountfedexcreaterequest.py + - src/shippo/models/components/carrieraccounthermesukcreaterequest.py + - src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py + - src/shippo/models/components/carrieraccountpaginatedlist.py + - src/shippo/models/components/carrieraccountposteitalianecreaterequest.py + - src/shippo/models/components/carrieraccountregistrationstatus.py + - src/shippo/models/components/carrieraccountsendlecreaterequest.py + - src/shippo/models/components/carrieraccountservicelevel.py + - src/shippo/models/components/carrieraccountupscreaterequest.py + - src/shippo/models/components/carrieraccountupscreaterequestparameters.py + - src/shippo/models/components/carrieraccountuspscreaterequest.py + - src/shippo/models/components/carrieraccountwithextrainfo.py + - src/shippo/models/components/carrierparceltemplate.py + - src/shippo/models/components/carrierparceltemplatelist.py + - src/shippo/models/components/carriersenum.py + - src/shippo/models/components/cod.py + - src/shippo/models/components/connectexistingownaccountrequest.py + - src/shippo/models/components/corerate.py + - src/shippo/models/components/customerreference.py + - src/shippo/models/components/customsdeclaration.py + - src/shippo/models/components/customsdeclarationb13afilingoptionenum.py + - src/shippo/models/components/customsdeclarationcontentstypeenum.py + - src/shippo/models/components/customsdeclarationcreaterequest.py + - src/shippo/models/components/customsdeclarationeelpfcenum.py + - src/shippo/models/components/customsdeclarationincotermenum.py + - src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py + - src/shippo/models/components/customsdeclarationpaginatedlist.py + - src/shippo/models/components/customsexporteridentification.py + - src/shippo/models/components/customsinvoicedcharges.py + - src/shippo/models/components/customsitem.py + - src/shippo/models/components/customsitemcreaterequest.py + - src/shippo/models/components/customsitempaginatedlist.py + - src/shippo/models/components/customstaxidentification.py + - src/shippo/models/components/dangerousgoodsbiologicalmaterial.py + - src/shippo/models/components/dangerousgoodslithiumbatteries.py + - src/shippo/models/components/dangerousgoodsobject.py + - src/shippo/models/components/defaultparceltemplate.py + - src/shippo/models/components/defaultparceltemplateupdaterequest.py + - src/shippo/models/components/departmentnumber.py + - src/shippo/models/components/distanceunitenum.py + - src/shippo/models/components/dryice.py + - src/shippo/models/components/fedexconnectexistingownaccountparameters.py + - src/shippo/models/components/instanttransactioncreaterequest.py + - src/shippo/models/components/insurance.py + - src/shippo/models/components/invoicenumber.py + - src/shippo/models/components/labelfiletypeenum.py + - src/shippo/models/components/lineitem.py + - src/shippo/models/components/lineitembase.py + - src/shippo/models/components/liverate.py + - src/shippo/models/components/liveratecreaterequest.py + - src/shippo/models/components/liveratepaginatedlist.py + - src/shippo/models/components/location.py + - src/shippo/models/components/manifest.py + - src/shippo/models/components/manifestcreaterequest.py + - src/shippo/models/components/manifestpaginatedlist.py + - src/shippo/models/components/objectstateenum.py + - src/shippo/models/components/order.py + - src/shippo/models/components/ordercreaterequest.py + - src/shippo/models/components/orderpaginatedlist.py + - src/shippo/models/components/ordershopappenum.py + - src/shippo/models/components/orderstatusenum.py + - src/shippo/models/components/parcel.py + - src/shippo/models/components/parcelcreatefromtemplaterequest.py + - src/shippo/models/components/parcelcreaterequest.py + - src/shippo/models/components/parcelextra.py + - src/shippo/models/components/parcelinsurance.py + - src/shippo/models/components/parcelpaginatedlist.py + - src/shippo/models/components/parceltemplatearamexaustraliaenum.py + - src/shippo/models/components/parceltemplatedhlecommerceenum.py + - src/shippo/models/components/parceltemplatedpdukenum.py + - src/shippo/models/components/parceltemplateenumset.py + - src/shippo/models/components/parceltemplatefedexenum.py + - src/shippo/models/components/parceltemplateupsenum.py + - src/shippo/models/components/parceltemplateuspsenum.py + - src/shippo/models/components/pickup.py + - src/shippo/models/components/pickupbase.py + - src/shippo/models/components/ponumber.py + - src/shippo/models/components/rate.py + - src/shippo/models/components/ratepaginatedlist.py + - src/shippo/models/components/refund.py + - src/shippo/models/components/refundpaginatedlist.py + - src/shippo/models/components/refundrequestbody.py + - src/shippo/models/components/responsemessage.py + - src/shippo/models/components/rmanumber.py + - src/shippo/models/components/security.py + - src/shippo/models/components/servicegroup.py + - src/shippo/models/components/servicegroupaccountandservicelevel.py + - src/shippo/models/components/servicegroupcreaterequest.py + - src/shippo/models/components/servicegrouptypeenum.py + - src/shippo/models/components/servicegroupupdaterequest.py + - src/shippo/models/components/servicelevel.py + - src/shippo/models/components/servicelevelairterraenum.py + - src/shippo/models/components/servicelevelapcpostalenum.py + - src/shippo/models/components/servicelevelapgenum.py + - src/shippo/models/components/servicelevelaramexaustraliaenum.py + - src/shippo/models/components/servicelevelasendiaenum.py + - src/shippo/models/components/servicelevelaustraliapostenum.py + - src/shippo/models/components/servicelevelbettertrucksenum.py + - src/shippo/models/components/servicelevelcanadapostenum.py + - src/shippo/models/components/servicelevelcdlenum.py + - src/shippo/models/components/servicelevelchronopostenum.py + - src/shippo/models/components/servicelevelcolissimoenum.py + - src/shippo/models/components/servicelevelcorreosespanaenum.py + - src/shippo/models/components/serviceleveldeutschepostenum.py + - src/shippo/models/components/serviceleveldhlecommerceenum.py + - src/shippo/models/components/serviceleveldhlexpressenum.py + - src/shippo/models/components/serviceleveldhlgermanyenum.py + - src/shippo/models/components/serviceleveldpddeenum.py + - src/shippo/models/components/serviceleveldpdukenum.py + - src/shippo/models/components/servicelevelenumset.py + - src/shippo/models/components/servicelevelepostglobalenum.py + - src/shippo/models/components/servicelevelevriukenum.py + - src/shippo/models/components/servicelevelfedexenum.py + - src/shippo/models/components/servicelevelglobegisticsenum.py + - src/shippo/models/components/servicelevelglsusenum.py + - src/shippo/models/components/serviceleveljitsuenum.py + - src/shippo/models/components/servicelevellasershipenum.py + - src/shippo/models/components/servicelevellsoenum.py + - src/shippo/models/components/servicelevelmondialrelayenum.py + - src/shippo/models/components/servicelevelontracenum.py + - src/shippo/models/components/servicelevelparcelforceenum.py + - src/shippo/models/components/servicelevelpostitalianeenum.py + - src/shippo/models/components/servicelevelpurolatorenum.py + - src/shippo/models/components/servicelevelroyalmailenum.py + - src/shippo/models/components/servicelevelsendleenum.py + - src/shippo/models/components/servicelevelswyftenum.py + - src/shippo/models/components/serviceleveludsenum.py + - src/shippo/models/components/servicelevelupsenum.py + - src/shippo/models/components/serviceleveluspsenum.py + - src/shippo/models/components/servicelevelvehoenum.py + - src/shippo/models/components/servicelevelwithparent.py + - src/shippo/models/components/shipment.py + - src/shippo/models/components/shipmentcreaterequest.py + - src/shippo/models/components/shipmentextra.py + - src/shippo/models/components/shipmentextralasershipattributesenum.py + - src/shippo/models/components/shipmentextrareturnservicetypelasershipenum.py + - src/shippo/models/components/shipmentextrareturnservicetypeupsenum.py + - src/shippo/models/components/shipmentpaginatedlist.py + - src/shippo/models/components/shippoaccount.py + - src/shippo/models/components/shippoaccountpaginatedlist.py + - src/shippo/models/components/shippoaccountupdaterequest.py + - src/shippo/models/components/track.py + - src/shippo/models/components/trackingstatus.py + - src/shippo/models/components/trackingstatusenum.py + - src/shippo/models/components/trackingstatuslocationbase.py + - src/shippo/models/components/trackingstatussubstatus.py + - src/shippo/models/components/tracksrequest.py + - src/shippo/models/components/transaction.py + - src/shippo/models/components/transactioncreaterequest.py + - src/shippo/models/components/transactionpaginatedlist.py + - src/shippo/models/components/transactionstatusenum.py + - src/shippo/models/components/upsconnectexistingownaccountparameters.py + - src/shippo/models/components/upsreferencefields.py + - src/shippo/models/components/userparceltemplate.py + - src/shippo/models/components/userparceltemplatecreaterequest.py + - src/shippo/models/components/userparceltemplatelist.py + - src/shippo/models/components/userparceltemplateupdaterequest.py + - src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py + - src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py + - src/shippo/models/components/webhook.py + - src/shippo/models/components/webhookeventtypeenum.py + - src/shippo/models/components/webhookpaginatedlist.py + - src/shippo/models/components/webhookpayload.py + - src/shippo/models/components/webhookpayloadbatch.py + - src/shippo/models/components/webhookpayloadtrack.py + - src/shippo/models/components/webhookpayloadtransaction.py + - src/shippo/models/components/webhookupdaterequest.py + - src/shippo/models/components/weightunitenum.py + - src/shippo/models/errors/__init__.py + - src/shippo/models/errors/initiateoauth2signin.py + - src/shippo/models/errors/sdkerror.py + - src/shippo/models/internal/__init__.py + - src/shippo/models/internal/globals.py + - src/shippo/models/operations/__init__.py + - src/shippo/models/operations/addshipmentstobatch.py + - src/shippo/models/operations/createaddress.py + - src/shippo/models/operations/createbatch.py + - src/shippo/models/operations/createcarrieraccount.py + - src/shippo/models/operations/createcustomsdeclaration.py + - src/shippo/models/operations/createcustomsitem.py + - src/shippo/models/operations/createliverate.py + - src/shippo/models/operations/createmanifest.py + - src/shippo/models/operations/createorder.py + - src/shippo/models/operations/createparcel.py + - src/shippo/models/operations/createpickup.py + - src/shippo/models/operations/createrefund.py + - src/shippo/models/operations/createservicegroup.py + - src/shippo/models/operations/createshipment.py + - src/shippo/models/operations/createshippoaccount.py + - src/shippo/models/operations/createtrack.py + - src/shippo/models/operations/createtransaction.py + - src/shippo/models/operations/createuserparceltemplate.py + - src/shippo/models/operations/deletedefaultparceltemplate.py + - src/shippo/models/operations/deleteservicegroup.py + - src/shippo/models/operations/deleteuserparceltemplate.py + - src/shippo/models/operations/deletewebhook.py + - src/shippo/models/operations/getaddress.py + - src/shippo/models/operations/getbatch.py + - src/shippo/models/operations/getcarrieraccount.py + - src/shippo/models/operations/getcarrierparceltemplate.py + - src/shippo/models/operations/getcarrierregistrationstatus.py + - src/shippo/models/operations/getcustomsdeclaration.py + - src/shippo/models/operations/getcustomsitem.py + - src/shippo/models/operations/getdefaultparceltemplate.py + - src/shippo/models/operations/getmanifest.py + - src/shippo/models/operations/getorder.py + - src/shippo/models/operations/getparcel.py + - src/shippo/models/operations/getrate.py + - src/shippo/models/operations/getrefund.py + - src/shippo/models/operations/getshipment.py + - src/shippo/models/operations/getshippoaccount.py + - src/shippo/models/operations/gettrack.py + - src/shippo/models/operations/gettransaction.py + - src/shippo/models/operations/getuserparceltemplate.py + - src/shippo/models/operations/getwebhook.py + - src/shippo/models/operations/initiateoauth2signin.py + - src/shippo/models/operations/listaddresses.py + - src/shippo/models/operations/listcarrieraccounts.py + - src/shippo/models/operations/listcarrierparceltemplates.py + - src/shippo/models/operations/listcustomsdeclarations.py + - src/shippo/models/operations/listcustomsitems.py + - src/shippo/models/operations/listmanifests.py + - src/shippo/models/operations/listorders.py + - src/shippo/models/operations/listparcels.py + - src/shippo/models/operations/listrefunds.py + - src/shippo/models/operations/listservicegroups.py + - src/shippo/models/operations/listshipmentrates.py + - src/shippo/models/operations/listshipmentratesbycurrencycode.py + - src/shippo/models/operations/listshipments.py + - src/shippo/models/operations/listshippoaccounts.py + - src/shippo/models/operations/listtransactions.py + - src/shippo/models/operations/listuserparceltemplates.py + - src/shippo/models/operations/purchasebatch.py + - src/shippo/models/operations/registercarrieraccount.py + - src/shippo/models/operations/removeshipmentsfrombatch.py + - src/shippo/models/operations/updatecarrieraccount.py + - src/shippo/models/operations/updatedefaultparceltemplate.py + - src/shippo/models/operations/updateservicegroup.py + - src/shippo/models/operations/updateshippoaccount.py + - src/shippo/models/operations/updateuserparceltemplate.py + - src/shippo/models/operations/updatewebhook.py + - src/shippo/models/operations/validateaddress.py + - src/shippo/orders.py + - src/shippo/parcels.py + - src/shippo/pickups.py + - src/shippo/py.typed + - src/shippo/rates.py + - src/shippo/rates_at_checkout.py + - src/shippo/refunds.py + - src/shippo/sdk.py + - src/shippo/sdkconfiguration.py + - src/shippo/service_groups.py + - src/shippo/shipments.py + - src/shippo/shippo_accounts.py + - src/shippo/tracking_status.py + - src/shippo/transactions.py + - src/shippo/types/__init__.py + - src/shippo/types/basemodel.py + - src/shippo/user_parcel_templates.py + - src/shippo/utils/__init__.py + - src/shippo/utils/annotations.py + - src/shippo/utils/enums.py + - src/shippo/utils/eventstreaming.py + - src/shippo/utils/forms.py + - src/shippo/utils/headers.py + - src/shippo/utils/logger.py + - src/shippo/utils/metadata.py + - src/shippo/utils/queryparams.py + - src/shippo/utils/requestbodies.py + - src/shippo/utils/retries.py + - src/shippo/utils/security.py + - src/shippo/utils/serializers.py + - src/shippo/utils/url.py + - src/shippo/utils/values.py + - src/shippo/webhooks.py diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 8e514783..ba2be7d0 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -4,6 +4,7 @@ generation: maintainOpenAPIOrder: true usageSnippets: optionalPropertyRendering: withExample + sdkInitStyle: constructor useClassNamesForArrayFields: true fixes: nameResolutionDec2023: true @@ -11,11 +12,24 @@ generation: parameterOrderingFeb2024: true requestResponseComponentNamesFeb2024: true securityFeb2025: false + sharedErrorComponentsApr2025: false + sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false + hoistGlobalSecurity: true + schemas: + allOfMergeStrategy: shallowMerge + requestBodyFieldName: "" + versioningStrategy: automatic + persistentEdits: {} + tests: + generateTests: true + generateNewTests: false + skipResponseBodyAssertions: false python: - version: 4.0.0 + version: 5.0.0 additionalDependencies: dev: httpretty: ==1.1.4 @@ -23,18 +37,35 @@ python: pytest: ==8.3.3 pytest-asyncio: ==0.25.3 main: {} + allowedRedefinedBuiltins: + - id + - object + - dir + asyncMode: both authors: - Shippo + baseErrorName: ShippoError + bodyVariantOverloads: false clientServerStatusCodesAsErrors: true + constFieldCasing: upper defaultErrorName: SDKError description: Shipping API Python library (USPS, FedEx, UPS and more) + durationFormat: false enableCustomCodeRegions: false enumFormat: enum + errorSchemaValidation: true + eventStreamClassNames: + async: EventStreamAsync + sync: EventStream fixFlags: + asyncPaginationSep2025: false + conflictResistantModelImportsFeb2026: false responseRequiredSep2024: false flattenGlobalSecurity: true flattenRequests: false flatteningOrder: parameters-first + forwardCompatibleEnumsByDefault: false + forwardCompatibleUnionsByDefault: "false" imports: option: openapi paths: @@ -43,13 +74,28 @@ python: operations: models/operations shared: models/components webhooks: models/webhooks + inferUnionDiscriminators: true inputModelSuffix: input + inputTypedDictSuffix: TypedDict license: MIT License maxMethodParams: 3 methodArguments: require-security-and-request + methodTimeoutArgument: timeout-ms + methodTimeoutUnits: milliseconds + moduleName: "" + multipartArrayFormat: legacy + optionalDependencies: {} outputModelSuffix: output + packageManager: poetry packageName: shippo + preApplyUnionDiscriminators: false projectUrls: {} + pytestFilterWarnings: [] pytestTimeout: 0 + rawResponseHelpers: false responseFormat: flat + responseSchemaValidation: true + sseFlatResponse: false templateVersion: v2 + useAsyncHooks: false + uuidFormat: false diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 90aeb377..1907dc09 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,19 +1,20 @@ -speakeasyVersion: 1.521.1 +speakeasyVersion: 1.791.0 sources: openapi: sourceNamespace: openapi - sourceRevisionDigest: sha256:e8ab98342833888dbc4dd20f683ee5fb7791107d8574b8dfabce743bc3675cd0 - sourceBlobDigest: sha256:8c66d55b10c00886e8fd1f2b6ea6b233bccf17f622fed046dcf302d5da3f91f5 + sourceRevisionDigest: sha256:2cf76f8a42391be79d350a7dffacd28b696fee0a34a8ce7fa8ab3b4b836070b3 + sourceBlobDigest: sha256:4c4d7bfcf710fde4bf5cff88930e0f4da04dcd16c252eae617d5f70a5f5557dd tags: - latest - - speakeasy-sdk-regen-1732493299 - "2018-02-08" targets: first-target: source: openapi sourceNamespace: openapi - sourceRevisionDigest: sha256:e8ab98342833888dbc4dd20f683ee5fb7791107d8574b8dfabce743bc3675cd0 - sourceBlobDigest: sha256:8c66d55b10c00886e8fd1f2b6ea6b233bccf17f622fed046dcf302d5da3f91f5 + sourceRevisionDigest: sha256:2cf76f8a42391be79d350a7dffacd28b696fee0a34a8ce7fa8ab3b4b836070b3 + sourceBlobDigest: sha256:4c4d7bfcf710fde4bf5cff88930e0f4da04dcd16c252eae617d5f70a5f5557dd + codeSamplesNamespace: openapi-python-code-samples + codeSamplesRevisionDigest: sha256:dbf0fd402ae0d822b8bd93ecc6ba3b4f7e86ff47bd2f6ec8598aab7cd48919a7 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest @@ -32,5 +33,5 @@ workflow: token: $pypi_token codeSamples: registry: - location: registry.speakeasyapi.dev/shippo/shippo/openapi-code-samples + location: registry.speakeasyapi.dev/shippo/shippo/openapi-python-code-samples blocking: false diff --git a/.speakeasy/workflow.yaml b/.speakeasy/workflow.yaml index 12cc89a1..116cd575 100644 --- a/.speakeasy/workflow.yaml +++ b/.speakeasy/workflow.yaml @@ -15,5 +15,5 @@ targets: token: $pypi_token codeSamples: registry: - location: registry.speakeasyapi.dev/shippo/shippo/openapi-code-samples + location: registry.speakeasyapi.dev/shippo/shippo/openapi-python-code-samples blocking: false diff --git a/README-PYPI.md b/README-PYPI.md index 72fd8c61..a1f2cc06 100644 --- a/README-PYPI.md +++ b/README-PYPI.md @@ -47,7 +47,15 @@ Shippo external API.: Use this API to integrate with the Shippo service > > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated. -The SDK can be installed with either *pip* or *poetry* package managers. +The SDK can be installed with *uv*, *pip*, or *poetry* package managers. + +### uv + +*uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities. + +```bash +uv add shippo +``` ### PIP @@ -78,7 +86,7 @@ It's also possible to write a standalone Python script without needing to set up ```python #!/usr/bin/env -S uv run --script # /// script -# requires-python = ">=3.9" +# requires-python = ">=3.10" # dependencies = [ # "shippo", # ] @@ -140,15 +148,13 @@ from shippo.utils import BackoffStrategy, RetryConfig with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list(, + res = s_client.addresses.list(page=1, results=5, RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) - assert res is not None - # Handle response print(res) @@ -162,13 +168,11 @@ from shippo.utils import BackoffStrategy, RetryConfig with Shippo( retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False), - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list() - - assert res is not None + res = s_client.addresses.list(page=1, results=5) # Handle response print(res) @@ -294,8 +298,8 @@ from shippo import Shippo def main(): with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: # Rest of application here... @@ -304,8 +308,8 @@ def main(): async def amain(): async with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: # Rest of application here... ``` @@ -344,14 +348,14 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
Available methods -### [addresses](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md) +### [Addresses](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md#list) - List all addresses * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md#create) - Create a new address * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md#get) - Retrieve an address * [validate](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/addresses/README.md#validate) - Validate an address -### [batches](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md) +### [Batches](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md) * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md#create) - Create a batch * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md#get) - Retrieve a batch @@ -359,7 +363,7 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [purchase](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md#purchase) - Purchase a batch * [remove_shipments](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/batches/README.md#remove_shipments) - Remove shipments from a batch -### [carrier_accounts](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md) +### [CarrierAccounts](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md#list) - List all carrier accounts * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md#create) - Create a new carrier account @@ -369,97 +373,96 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [register](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md#register) - Add a Shippo carrier account * [get_registration_status](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrieraccounts/README.md#get_registration_status) - Get Carrier Registration status -### [carrier_parcel_templates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrierparceltemplates/README.md) +### [CarrierParcelTemplates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrierparceltemplates/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrierparceltemplates/README.md#list) - List all carrier parcel templates * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/carrierparceltemplates/README.md#get) - Retrieve a carrier parcel templates -### [customs_declarations](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsdeclarations/README.md) +### [CustomsDeclarations](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsdeclarations/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsdeclarations/README.md#list) - List all customs declarations * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsdeclarations/README.md#create) - Create a new customs declaration * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsdeclarations/README.md#get) - Retrieve a customs declaration -### [customs_items](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsitems/README.md) +### [CustomsItems](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsitems/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsitems/README.md#list) - List all customs items * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsitems/README.md#create) - Create a new customs item * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/customsitems/README.md#get) - Retrieve a customs item -### [manifests](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/manifests/README.md) +### [Manifests](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/manifests/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/manifests/README.md#list) - List all manifests * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/manifests/README.md#create) - Create a new manifest * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/manifests/README.md#get) - Retrieve a manifest -### [orders](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/orders/README.md) +### [Orders](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/orders/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/orders/README.md#list) - List all orders * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/orders/README.md#create) - Create a new order * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/orders/README.md#get) - Retrieve an order -### [parcels](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/parcels/README.md) +### [Parcels](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/parcels/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/parcels/README.md#list) - List all parcels * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/parcels/README.md#create) - Create a new parcel * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/parcels/README.md#get) - Retrieve an existing parcel -### [pickups](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/pickups/README.md) +### [Pickups](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/pickups/README.md) * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/pickups/README.md#create) - Create a pickup -### [rates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/rates/README.md) +### [Rates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/rates/README.md) * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/rates/README.md#get) - Retrieve a rate * [list_shipment_rates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/rates/README.md#list_shipment_rates) - Retrieve shipment rates * [list_shipment_rates_by_currency_code](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/rates/README.md#list_shipment_rates_by_currency_code) - Retrieve shipment rates in currency -### [rates_at_checkout](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md) +### [RatesAtCheckout](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md) * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md#create) - Generate a live rates request * [get_default_parcel_template](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md#get_default_parcel_template) - Show current default parcel template * [update_default_parcel_template](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md#update_default_parcel_template) - Update default parcel template * [delete_default_parcel_template](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/ratesatcheckout/README.md#delete_default_parcel_template) - Clear current default parcel template -### [refunds](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/refunds/README.md) +### [Refunds](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/refunds/README.md) * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/refunds/README.md#create) - Create a refund * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/refunds/README.md#list) - List all refunds * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/refunds/README.md#get) - Retrieve a refund -### [service_groups](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md) +### [ServiceGroups](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md#list) - List all service groups * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md#create) - Create a new service group * [update](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md#update) - Update an existing service group * [delete](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/servicegroups/README.md#delete) - Delete a service group -### [shipments](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shipments/README.md) +### [Shipments](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shipments/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shipments/README.md#list) - List all shipments * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shipments/README.md#create) - Create a new shipment * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shipments/README.md#get) - Retrieve a shipment - -### [shippo_accounts](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md) +### [ShippoAccounts](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md#list) - List all Shippo Accounts * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md#create) - Create a Shippo Account * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md#get) - Retrieve a Shippo Account * [update](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/shippoaccounts/README.md#update) - Update a Shippo Account -### [tracking_status](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/trackingstatus/README.md) +### [TrackingStatus](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/trackingstatus/README.md) * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/trackingstatus/README.md#create) - Register a tracking webhook * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/trackingstatus/README.md#get) - Get a tracking status -### [transactions](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/transactions/README.md) +### [Transactions](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/transactions/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/transactions/README.md#list) - List all shipping labels * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/transactions/README.md#create) - Create a shipping label * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/transactions/README.md#get) - Retrieve a shipping label -### [user_parcel_templates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md) +### [UserParcelTemplates](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md) * [list](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md#list) - List all user parcel templates * [create](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md#create) - Create a new user parcel template @@ -467,7 +470,7 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [get](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md#get) - Retrieves a user parcel template * [update](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/userparceltemplates/README.md#update) - Update an existing user parcel template -### [webhooks](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/webhooks/README.md) +### [Webhooks](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/webhooks/README.md) * [create_webhook](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/webhooks/README.md#create_webhook) - Create a new webhook * [list_webhooks](https://github.com/goshippo/shippo-python-sdk/blob/master/docs/sdks/webhooks/README.md#list_webhooks) - List all webhooks diff --git a/README.md b/README.md index b7452dd7..6b15425d 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,15 @@ Shippo external API.: Use this API to integrate with the Shippo service > > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated. -The SDK can be installed with either *pip* or *poetry* package managers. +The SDK can be installed with *uv*, *pip*, or *poetry* package managers. + +### uv + +*uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities. + +```bash +uv add shippo +``` ### PIP @@ -78,7 +86,7 @@ It's also possible to write a standalone Python script without needing to set up ```python #!/usr/bin/env -S uv run --script # /// script -# requires-python = ">=3.9" +# requires-python = ">=3.10" # dependencies = [ # "shippo", # ] @@ -140,15 +148,13 @@ from shippo.utils import BackoffStrategy, RetryConfig with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list(, + res = s_client.addresses.list(page=1, results=5, RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) - assert res is not None - # Handle response print(res) @@ -162,13 +168,11 @@ from shippo.utils import BackoffStrategy, RetryConfig with Shippo( retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False), - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list() - - assert res is not None + res = s_client.addresses.list(page=1, results=5) # Handle response print(res) @@ -294,8 +298,8 @@ from shippo import Shippo def main(): with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: # Rest of application here... @@ -304,8 +308,8 @@ def main(): async def amain(): async with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: # Rest of application here... ``` @@ -344,14 +348,14 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
Available methods -### [addresses](docs/sdks/addresses/README.md) +### [Addresses](docs/sdks/addresses/README.md) * [list](docs/sdks/addresses/README.md#list) - List all addresses * [create](docs/sdks/addresses/README.md#create) - Create a new address * [get](docs/sdks/addresses/README.md#get) - Retrieve an address * [validate](docs/sdks/addresses/README.md#validate) - Validate an address -### [batches](docs/sdks/batches/README.md) +### [Batches](docs/sdks/batches/README.md) * [create](docs/sdks/batches/README.md#create) - Create a batch * [get](docs/sdks/batches/README.md#get) - Retrieve a batch @@ -359,7 +363,7 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [purchase](docs/sdks/batches/README.md#purchase) - Purchase a batch * [remove_shipments](docs/sdks/batches/README.md#remove_shipments) - Remove shipments from a batch -### [carrier_accounts](docs/sdks/carrieraccounts/README.md) +### [CarrierAccounts](docs/sdks/carrieraccounts/README.md) * [list](docs/sdks/carrieraccounts/README.md#list) - List all carrier accounts * [create](docs/sdks/carrieraccounts/README.md#create) - Create a new carrier account @@ -369,97 +373,96 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [register](docs/sdks/carrieraccounts/README.md#register) - Add a Shippo carrier account * [get_registration_status](docs/sdks/carrieraccounts/README.md#get_registration_status) - Get Carrier Registration status -### [carrier_parcel_templates](docs/sdks/carrierparceltemplates/README.md) +### [CarrierParcelTemplates](docs/sdks/carrierparceltemplates/README.md) * [list](docs/sdks/carrierparceltemplates/README.md#list) - List all carrier parcel templates * [get](docs/sdks/carrierparceltemplates/README.md#get) - Retrieve a carrier parcel templates -### [customs_declarations](docs/sdks/customsdeclarations/README.md) +### [CustomsDeclarations](docs/sdks/customsdeclarations/README.md) * [list](docs/sdks/customsdeclarations/README.md#list) - List all customs declarations * [create](docs/sdks/customsdeclarations/README.md#create) - Create a new customs declaration * [get](docs/sdks/customsdeclarations/README.md#get) - Retrieve a customs declaration -### [customs_items](docs/sdks/customsitems/README.md) +### [CustomsItems](docs/sdks/customsitems/README.md) * [list](docs/sdks/customsitems/README.md#list) - List all customs items * [create](docs/sdks/customsitems/README.md#create) - Create a new customs item * [get](docs/sdks/customsitems/README.md#get) - Retrieve a customs item -### [manifests](docs/sdks/manifests/README.md) +### [Manifests](docs/sdks/manifests/README.md) * [list](docs/sdks/manifests/README.md#list) - List all manifests * [create](docs/sdks/manifests/README.md#create) - Create a new manifest * [get](docs/sdks/manifests/README.md#get) - Retrieve a manifest -### [orders](docs/sdks/orders/README.md) +### [Orders](docs/sdks/orders/README.md) * [list](docs/sdks/orders/README.md#list) - List all orders * [create](docs/sdks/orders/README.md#create) - Create a new order * [get](docs/sdks/orders/README.md#get) - Retrieve an order -### [parcels](docs/sdks/parcels/README.md) +### [Parcels](docs/sdks/parcels/README.md) * [list](docs/sdks/parcels/README.md#list) - List all parcels * [create](docs/sdks/parcels/README.md#create) - Create a new parcel * [get](docs/sdks/parcels/README.md#get) - Retrieve an existing parcel -### [pickups](docs/sdks/pickups/README.md) +### [Pickups](docs/sdks/pickups/README.md) * [create](docs/sdks/pickups/README.md#create) - Create a pickup -### [rates](docs/sdks/rates/README.md) +### [Rates](docs/sdks/rates/README.md) * [get](docs/sdks/rates/README.md#get) - Retrieve a rate * [list_shipment_rates](docs/sdks/rates/README.md#list_shipment_rates) - Retrieve shipment rates * [list_shipment_rates_by_currency_code](docs/sdks/rates/README.md#list_shipment_rates_by_currency_code) - Retrieve shipment rates in currency -### [rates_at_checkout](docs/sdks/ratesatcheckout/README.md) +### [RatesAtCheckout](docs/sdks/ratesatcheckout/README.md) * [create](docs/sdks/ratesatcheckout/README.md#create) - Generate a live rates request * [get_default_parcel_template](docs/sdks/ratesatcheckout/README.md#get_default_parcel_template) - Show current default parcel template * [update_default_parcel_template](docs/sdks/ratesatcheckout/README.md#update_default_parcel_template) - Update default parcel template * [delete_default_parcel_template](docs/sdks/ratesatcheckout/README.md#delete_default_parcel_template) - Clear current default parcel template -### [refunds](docs/sdks/refunds/README.md) +### [Refunds](docs/sdks/refunds/README.md) * [create](docs/sdks/refunds/README.md#create) - Create a refund * [list](docs/sdks/refunds/README.md#list) - List all refunds * [get](docs/sdks/refunds/README.md#get) - Retrieve a refund -### [service_groups](docs/sdks/servicegroups/README.md) +### [ServiceGroups](docs/sdks/servicegroups/README.md) * [list](docs/sdks/servicegroups/README.md#list) - List all service groups * [create](docs/sdks/servicegroups/README.md#create) - Create a new service group * [update](docs/sdks/servicegroups/README.md#update) - Update an existing service group * [delete](docs/sdks/servicegroups/README.md#delete) - Delete a service group -### [shipments](docs/sdks/shipments/README.md) +### [Shipments](docs/sdks/shipments/README.md) * [list](docs/sdks/shipments/README.md#list) - List all shipments * [create](docs/sdks/shipments/README.md#create) - Create a new shipment * [get](docs/sdks/shipments/README.md#get) - Retrieve a shipment - -### [shippo_accounts](docs/sdks/shippoaccounts/README.md) +### [ShippoAccounts](docs/sdks/shippoaccounts/README.md) * [list](docs/sdks/shippoaccounts/README.md#list) - List all Shippo Accounts * [create](docs/sdks/shippoaccounts/README.md#create) - Create a Shippo Account * [get](docs/sdks/shippoaccounts/README.md#get) - Retrieve a Shippo Account * [update](docs/sdks/shippoaccounts/README.md#update) - Update a Shippo Account -### [tracking_status](docs/sdks/trackingstatus/README.md) +### [TrackingStatus](docs/sdks/trackingstatus/README.md) * [create](docs/sdks/trackingstatus/README.md#create) - Register a tracking webhook * [get](docs/sdks/trackingstatus/README.md#get) - Get a tracking status -### [transactions](docs/sdks/transactions/README.md) +### [Transactions](docs/sdks/transactions/README.md) * [list](docs/sdks/transactions/README.md#list) - List all shipping labels * [create](docs/sdks/transactions/README.md#create) - Create a shipping label * [get](docs/sdks/transactions/README.md#get) - Retrieve a shipping label -### [user_parcel_templates](docs/sdks/userparceltemplates/README.md) +### [UserParcelTemplates](docs/sdks/userparceltemplates/README.md) * [list](docs/sdks/userparceltemplates/README.md#list) - List all user parcel templates * [create](docs/sdks/userparceltemplates/README.md#create) - Create a new user parcel template @@ -467,7 +470,7 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u * [get](docs/sdks/userparceltemplates/README.md#get) - Retrieves a user parcel template * [update](docs/sdks/userparceltemplates/README.md#update) - Update an existing user parcel template -### [webhooks](docs/sdks/webhooks/README.md) +### [Webhooks](docs/sdks/webhooks/README.md) * [create_webhook](docs/sdks/webhooks/README.md#create_webhook) - Create a new webhook * [list_webhooks](docs/sdks/webhooks/README.md#list_webhooks) - List all webhooks diff --git a/RELEASES.md b/RELEASES.md index 677ad9d8..09810c3e 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -398,4 +398,14 @@ Based on: ### Generated - [python v3.9.0] . ### Releases -- [PyPI v3.9.0] https://pypi.org/project/shippo/3.9.0 - . \ No newline at end of file +- [PyPI v3.9.0] https://pypi.org/project/shippo/3.9.0 - . + +## 2026-07-27 00:26:27 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.791.0 (2.924.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v5.0.0] . +### Releases +- [PyPI v5.0.0] https://pypi.org/project/shippo/5.0.0 - . \ No newline at end of file diff --git a/USAGE.md b/USAGE.md index 93c2d6f4..301aadd0 100644 --- a/USAGE.md +++ b/USAGE.md @@ -5,13 +5,11 @@ from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list() - - assert res is not None + res = s_client.addresses.list(page=1, results=5) # Handle response print(res) @@ -19,7 +17,8 @@ with Shippo(
-The same SDK client can also be used to make asychronous requests by importing asyncio. +The same SDK client can also be used to make asynchronous requests by importing asyncio. + ```python # Asynchronous Example import asyncio @@ -28,13 +27,11 @@ from shippo import Shippo async def main(): async with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = await s_client.addresses.list_async() - - assert res is not None + res = await s_client.addresses.list_async(page=1, results=5) # Handle response print(res) diff --git a/docs/models/components/address.md b/docs/models/components/address.md index 979c94fd..256c30f6 100644 --- a/docs/models/components/address.md +++ b/docs/models/components/address.md @@ -5,28 +5,28 @@ Address represents the address as retrieved from the database ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this guide for a list of country codes.
Sending a country is always required. | US | -| `name` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First and Last Name of the addressee | Shwan Ippotle | -| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name | Shippo | -| `street1` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). | 215 Clayton St. | -| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line, 35 character limit. | | -| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line, 35 character limit.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments. | | -| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | -| `city` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results. | San Francisco | -| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations. | CA | -| `zip` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates. | 94117 | -| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. | +1 555 341 9393 | -| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant. | shippotle@shippo.com | -| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | -| `is_complete` | *Optional[bool]* | :heavy_minus_sign: | Complete addresses contain all required values.

Incomplete addresses have failed one or multiple
validations.
Incomplete Addresses are eligible for requesting rates but lack at least one required
value for purchasing labels. | true | -| `latitude` | [Optional[components.Latitude]](../../models/components/latitude.md) | :heavy_minus_sign: | Latitude of address | | -| `longitude` | [Optional[components.Longitude]](../../models/components/longitude.md) | :heavy_minus_sign: | Longitude of address | | -| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Address creation. | 2014-07-09T02:19:13.174Z | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Address object.
This ID is required to create a Shipment object. | d799c2679e644279b59fe661ac8fa488 | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the Address object. | shippotle@shippo.com | -| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last Address update. Since you cannot update Addresses after they were created, this time
stamp reflects the time when the Address was changed by Shippo's systems for the last time, e.g., during the
approximation of one or more values. | 2014-07-09T02:19:13.174Z | -| `validation_results` | [Optional[components.AddressValidationResults]](../../models/components/addressvalidationresults.md) | :heavy_minus_sign: | Object that contains information regarding if an address had been validated or not. Also contains any messages
generated during validation. Children keys are is_valid(boolean) and messages(array). | | -| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First and Last Name of the addressee

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Either company or name required; No length validation (first 35 chars printed on label) \| | Shwan Ippotle | +| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 35 characters; Either company or name required \| | Shippo | +| `street1` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First street line. Usually street number and street name (except for DHL Germany, see street_no).

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | 215 Clayton St. | +| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | +| `city` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Max 35 characters \| | San Francisco | +| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required if country requires state; Max 2 characters for US, CA, PR \| | CA | +| `zip` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 10 characters \| | 94117 | +| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes.
Sending a country is always required. | US | +| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Min 1, max 15 characters \|
\| USPS \| Sender phone required for shipments during label purchase; Min 8, max 15 digits \| | +1 555 341 9393 | +| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 80 characters \|
\| USPS \| Sender email required for shipments during label purchase \| | shippotle@shippo.com | +| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | +| `is_complete` | *Optional[bool]* | :heavy_minus_sign: | Complete addresses contain all required values.

Incomplete addresses have failed one or multiple validations. Incomplete Addresses are eligible for requesting rates but lack at least one required value for purchasing labels. | true | +| `latitude` | [Optional[components.Latitude]](../../models/components/latitude.md) | :heavy_minus_sign: | Latitude of address | | +| `longitude` | [Optional[components.Longitude]](../../models/components/longitude.md) | :heavy_minus_sign: | Longitude of address | | +| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Address creation. | 2014-07-09T02:19:13.174Z | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Address object.
This ID is required to create a Shipment object. | d799c2679e644279b59fe661ac8fa488 | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the Address object. | shippotle@shippo.com | +| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last Address update. Since you cannot update Addresses after they were created, this time
stamp reflects the time when the Address was changed by Shippo's systems for the last time, e.g., during the
approximation of one or more values. | 2014-07-09T02:19:13.174Z | +| `validation_results` | [Optional[components.AddressValidationResults]](../../models/components/addressvalidationresults.md) | :heavy_minus_sign: | Object that contains information regarding if an address had been validated or not. Also contains any messages
generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). | | +| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | \ No newline at end of file diff --git a/docs/models/components/addresscompletecreaterequest.md b/docs/models/components/addresscompletecreaterequest.md index ba0d8c5d..e9b3284d 100644 --- a/docs/models/components/addresscompletecreaterequest.md +++ b/docs/models/components/addresscompletecreaterequest.md @@ -5,20 +5,20 @@ Address represents the address as retrieved from the database ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *str* | :heavy_check_mark: | **required for purchase**

First and Last Name of the addressee | Shwan Ippotle | -| `street1` | *str* | :heavy_check_mark: | **required for purchase**

First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). | 215 Clayton St. | -| `city` | *str* | :heavy_check_mark: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results. | San Francisco | -| `state` | *str* | :heavy_check_mark: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations. | CA | -| `zip` | *str* | :heavy_check_mark: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates. | 94117 | -| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this guide for a list of country codes.
Sending a country is always required. | US | -| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name | Shippo | -| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line, 35 character limit. | | -| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line, 35 character limit.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments. | | -| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | -| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. | +1 555 341 9393 | -| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant. | shippotle@shippo.com | -| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | -| `validate_` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *str* | :heavy_check_mark: | **required for purchase**

First and Last Name of the addressee

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Either company or name required; No length validation (first 35 chars printed on label) \| | Shwan Ippotle | +| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 35 characters; Either company or name required \| | Shippo | +| `street1` | *str* | :heavy_check_mark: | **required for purchase**

First street line. Usually street number and street name (except for DHL Germany, see street_no).

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | 215 Clayton St. | +| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | +| `city` | *str* | :heavy_check_mark: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Max 35 characters \| | San Francisco | +| `state` | *str* | :heavy_check_mark: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required if country requires state; Max 2 characters for US, CA, PR \| | CA | +| `zip` | *str* | :heavy_check_mark: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 10 characters \| | 94117 | +| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes.
Sending a country is always required. | US | +| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Min 1, max 15 characters \|
\| USPS \| Sender phone required for shipments during label purchase; Min 8, max 15 digits \| | +1 555 341 9393 | +| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 80 characters \|
\| USPS \| Sender email required for shipments during label purchase \| | shippotle@shippo.com | +| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | +| `validate_` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | \ No newline at end of file diff --git a/docs/models/components/addresscreaterequest.md b/docs/models/components/addresscreaterequest.md index 2f3d5aa9..a6531a9d 100644 --- a/docs/models/components/addresscreaterequest.md +++ b/docs/models/components/addresscreaterequest.md @@ -5,20 +5,20 @@ Address represents the address as retrieved from the database ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this guide for a list of country codes.
Sending a country is always required. | US | -| `name` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First and Last Name of the addressee | Shwan Ippotle | -| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name | Shippo | -| `street1` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). | 215 Clayton St. | -| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line, 35 character limit. | | -| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line, 35 character limit.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments. | | -| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | -| `city` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results. | San Francisco | -| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations. | CA | -| `zip` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates. | 94117 | -| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. | +1 555 341 9393 | -| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant. | shippotle@shippo.com | -| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | -| `validate_` | *Optional[bool]* | :heavy_minus_sign: | Set to true to validate Address object. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First and Last Name of the addressee

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Either company or name required; No length validation (first 35 chars printed on label) \| | Shwan Ippotle | +| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 35 characters; Either company or name required \| | Shippo | +| `street1` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

First street line. Usually street number and street name (except for DHL Germany, see street_no).

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | 215 Clayton St. | +| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| At least one street line required; Max 35 characters per line \| | | +| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | | +| `city` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates.
Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state
or a ZIP code (see below), if known, it will yield more accurate results.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Max 35 characters \| | San Francisco | +| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required if country requires state; Max 2 characters for US, CA, PR \| | CA | +| `zip` | *Optional[str]* | :heavy_minus_sign: | **required for purchase**

Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more
accurate Rates.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 10 characters \| | 94117 | +| `country` | *str* | :heavy_check_mark: | ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`.
If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes.
Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes.
Sending a country is always required. | US | +| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Required; Min 1, max 15 characters \|
\| USPS \| Sender phone required for shipments during label purchase; Min 8, max 15 digits \| | +1 555 341 9393 | +| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 80 characters \|
\| USPS \| Sender email required for shipments during label purchase \| | shippotle@shippo.com | +| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | Customer ID 123456 | +| `validate_` | *Optional[bool]* | :heavy_minus_sign: | Set to true to validate Address object. | true | \ No newline at end of file diff --git a/docs/models/components/addressimporter.md b/docs/models/components/addressimporter.md index 6aafac72..90149a97 100644 --- a/docs/models/components/addressimporter.md +++ b/docs/models/components/addressimporter.md @@ -5,18 +5,18 @@ Object that represents the address of the importer ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *Optional[str]* | :heavy_minus_sign: | First and Last Name of the addressee | Shwan Ippotle | -| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name | Shippo | -| `street1` | *Optional[str]* | :heavy_minus_sign: | First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). | Blumenstraße | -| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line, 35 character limit. | | -| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line, 35 character limit.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments. | | -| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | 22 | -| `city` | *Optional[str]* | :heavy_minus_sign: | Name of a city | München | -| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations. | CA | -| `zip` | *Optional[str]* | :heavy_minus_sign: | Postal code of an Address. | 80331 | -| `country` | *Optional[str]* | :heavy_minus_sign: | Example: `US` or `DE`. All accepted values can be found on the
Official ISO Website.
Sending a country is always required. | DE | -| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. | 80331 | -| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant. | shippotle@shippo.com | -| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the address provided is a residential address or not. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `name` | *Optional[str]* | :heavy_minus_sign: | First and Last Name of the addressee | Shwan Ippotle | +| `company` | *Optional[str]* | :heavy_minus_sign: | Company Name | Shippo | +| `street1` | *Optional[str]* | :heavy_minus_sign: | First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). | Blumenstraße | +| `street2` | *Optional[str]* | :heavy_minus_sign: | Second street line, 35 character limit. | | +| `street3` | *Optional[str]* | :heavy_minus_sign: | Third street line, 35 character limit.
Only accepted for USPS international shipments, UPS domestic and UPS international shipments. | | +| `street_no` | *Optional[str]* | :heavy_minus_sign: | Street number of the addressed building.
This field can be included in street1 for all carriers except for DHL Germany. | 22 | +| `city` | *Optional[str]* | :heavy_minus_sign: | Name of a city | München | +| `state` | *Optional[str]* | :heavy_minus_sign: | **required for purchase for some countries**

State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some
countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers
only accept two or three character state abbreviations. | CA | +| `zip` | *Optional[str]* | :heavy_minus_sign: | Postal code of an Address. | 80331 | +| `country` | *Optional[str]* | :heavy_minus_sign: | Example: `US` or `DE`. All accepted values can be found on the
[Official ISO Website](http://www.iso.org/).
Sending a country is always required. | DE | +| `phone` | *Optional[str]* | :heavy_minus_sign: | Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This
increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. | 80331 | +| `email` | *Optional[str]* | :heavy_minus_sign: | E-mail address of the contact person, RFC3696/5321-compliant. | shippotle@shippo.com | +| `is_residential` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the address provided is a residential address or not. | true | \ No newline at end of file diff --git a/docs/models/components/addressvalidationresults.md b/docs/models/components/addressvalidationresults.md index 2b19fc8e..47f16190 100644 --- a/docs/models/components/addressvalidationresults.md +++ b/docs/models/components/addressvalidationresults.md @@ -1,7 +1,7 @@ # AddressValidationResults Object that contains information regarding if an address had been validated or not. Also contains any messages -generated during validation. Children keys are is_valid(boolean) and messages(array). +generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). ## Fields diff --git a/docs/models/components/addressvalidationresultsmessage.md b/docs/models/components/addressvalidationresultsmessage.md index d4dbef5f..4308ae47 100644 --- a/docs/models/components/addressvalidationresultsmessage.md +++ b/docs/models/components/addressvalidationresultsmessage.md @@ -3,9 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `code` | *Optional[str]* | :heavy_minus_sign: | See Address Validation Codes | Unknown Street | -| `source` | *Optional[str]* | :heavy_minus_sign: | See Address Validation Source | Shippo Address Validator | -| `text` | *Optional[str]* | :heavy_minus_sign: | N/A | City, State and ZIP Code are valid, but street address is not a match. | -| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | address_warning | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `code` | *Optional[str]* | :heavy_minus_sign: | See [Address Validation Codes](/shippoapi/public-api/address-validation-codes) | Unknown Street | +| `source` | *Optional[str]* | :heavy_minus_sign: | See [Address Validation Source](/shippoapi/public-api/address-validation-source) | Shippo Address Validator | +| `text` | *Optional[str]* | :heavy_minus_sign: | N/A | City, State and ZIP Code are valid, but street address is not a match. | +| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | address_warning | \ No newline at end of file diff --git a/docs/models/components/addressvalidationresultsmessagecodeenum.md b/docs/models/components/addressvalidationresultsmessagecodeenum.md index e0211c4f..1aa56196 100644 --- a/docs/models/components/addressvalidationresultsmessagecodeenum.md +++ b/docs/models/components/addressvalidationresultsmessagecodeenum.md @@ -1,5 +1,13 @@ # AddressValidationResultsMessageCodeEnum +## Example Usage + +```python +from shippo.models.components import AddressValidationResultsMessageCodeEnum + +value = AddressValidationResultsMessageCodeEnum.VERIFICATION_ERROR +``` + ## Values diff --git a/docs/models/components/addressvalidationresultsmessagesourceenum.md b/docs/models/components/addressvalidationresultsmessagesourceenum.md index df831acd..a4223cee 100644 --- a/docs/models/components/addressvalidationresultsmessagesourceenum.md +++ b/docs/models/components/addressvalidationresultsmessagesourceenum.md @@ -1,5 +1,13 @@ # AddressValidationResultsMessageSourceEnum +## Example Usage + +```python +from shippo.models.components import AddressValidationResultsMessageSourceEnum + +value = AddressValidationResultsMessageSourceEnum.SHIPPO_ADDRESS_VALIDATOR +``` + ## Values diff --git a/docs/models/components/ancillaryendorsement.md b/docs/models/components/ancillaryendorsement.md index 0171c0b6..a56fec60 100644 --- a/docs/models/components/ancillaryendorsement.md +++ b/docs/models/components/ancillaryendorsement.md @@ -2,6 +2,14 @@ Specify an ancillary service endorsement to provide the USPS with instructions on how to handle undeliverable-as-addressed pieces (DHL eCommerce only). +## Example Usage + +```python +from shippo.models.components import AncillaryEndorsement + +value = AncillaryEndorsement.FORWARDING_SERVICE_REQUESTED +``` + ## Values diff --git a/docs/models/components/attribute.md b/docs/models/components/attribute.md index d7f1ad3c..d8ecadf9 100644 --- a/docs/models/components/attribute.md +++ b/docs/models/components/attribute.md @@ -1,5 +1,13 @@ # Attribute +## Example Usage + +```python +from shippo.models.components import Attribute + +value = Attribute.BESTVALUE +``` + ## Values diff --git a/docs/models/components/batch.md b/docs/models/components/batch.md index 75d714e9..33a56b10 100644 --- a/docs/models/components/batch.md +++ b/docs/models/components/batch.md @@ -3,18 +3,18 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `default_carrier_account` | *str* | :heavy_check_mark: | ID of the Carrier Account object to use as the default for all shipments in this Batch.
The carrier account can be changed on a per-shipment basis by changing the carrier_account in the
corresponding BatchShipment object. | 078870331023437cb917f5187429b093 | -| `default_servicelevel_token` | *str* | :heavy_check_mark: | Token of the service level to use as the default for all shipments in this Batch.
The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the
corresponding BatchShipment object. Servicelevel tokens can be found here. | usps_priority | -| `batch_shipments` | [components.BatchShipmentPaginatedList](../../models/components/batchshipmentpaginatedlist.md) | :heavy_check_mark: | N/A | | -| `label_url` | List[*str*] | :heavy_check_mark: | An array of URLs each pointing to a merged file of 100 labels each | | -| `object_created` | *str* | :heavy_check_mark: | Date and time of Batch creation | 2016-01-04T00:15:44.394Z | -| `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given Batch object | 5ef63c54f5bf45d3b1f8fb37dcb1c5f4 | -| `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the Address object. | shippo@shippo.com | -| `object_results` | [components.ObjectResults](../../models/components/objectresults.md) | :heavy_check_mark: | An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed` | | -| `object_updated` | *str* | :heavy_check_mark: | Date and time of last update to the Batch | 2016-01-04T00:48:13.841Z | -| `status` | [components.BatchStatus](../../models/components/batchstatus.md) | :heavy_check_mark: | Batches that are `VALIDATING` are being created and validated

`VALID` batches can be purchased

`INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed

Batches that are in the `PURCHASING` state are being purchased

`PURCHASED` batches are finished purchasing. | VALID | -| `label_filetype` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the label. If empty, will use the default format set from
the Shippo dashboard. | PDF_4x6 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | BATCH #1 | -| `test` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `default_carrier_account` | *str* | :heavy_check_mark: | ID of the Carrier Account object to use as the default for all shipments in this Batch.
The carrier account can be changed on a per-shipment basis by changing the carrier_account in the
corresponding BatchShipment object. | 078870331023437cb917f5187429b093 | +| `default_servicelevel_token` | *str* | :heavy_check_mark: | Token of the service level to use as the default for all shipments in this Batch.
The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the
corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) | usps_priority | +| `label_filetype` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from
[the Shippo dashboard.](https://apps.goshippo.com/settings/labels) | PDF_4x6 | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | BATCH #1 | +| `batch_shipments` | [components.BatchShipmentPaginatedList](../../models/components/batchshipmentpaginatedlist.md) | :heavy_check_mark: | N/A | | +| `label_url` | List[*str*] | :heavy_check_mark: | An array of URLs each pointing to a merged file of 100 labels each | | +| `object_created` | *str* | :heavy_check_mark: | Date and time of Batch creation | 2016-01-04T00:15:44.394Z | +| `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given Batch object | 5ef63c54f5bf45d3b1f8fb37dcb1c5f4 | +| `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the Batch object. | shippo@shippo.com | +| `object_results` | [components.ObjectResults](../../models/components/objectresults.md) | :heavy_check_mark: | An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed` | | +| `object_updated` | *str* | :heavy_check_mark: | Date and time of last update to the Batch | 2016-01-04T00:48:13.841Z | +| `status` | [components.BatchStatus](../../models/components/batchstatus.md) | :heavy_check_mark: | - `VALIDATING`: the batch is being created and validated
- `VALID`: the batch can be purchased
- `INVALID`: the batch cannot be purchased; `INVALID` BatchShipments must be removed
- `PURCHASING`: the batch is being purchased
- `PURCHASED`: the batch is finished purchasing | VALID | +| `test` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | \ No newline at end of file diff --git a/docs/models/components/batchcreaterequest.md b/docs/models/components/batchcreaterequest.md index d8bb4139..07ed159c 100644 --- a/docs/models/components/batchcreaterequest.md +++ b/docs/models/components/batchcreaterequest.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `default_carrier_account` | *str* | :heavy_check_mark: | ID of the Carrier Account object to use as the default for all shipments in this Batch.
The carrier account can be changed on a per-shipment basis by changing the carrier_account in the
corresponding BatchShipment object. | 078870331023437cb917f5187429b093 | -| `default_servicelevel_token` | *str* | :heavy_check_mark: | Token of the service level to use as the default for all shipments in this Batch.
The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the
corresponding BatchShipment object. Servicelevel tokens can be found here. | usps_priority | -| `batch_shipments` | List[[components.BatchShipmentCreateRequest](../../models/components/batchshipmentcreaterequest.md)] | :heavy_check_mark: | Array of BatchShipment objects. The response keeps the same order as in the request array. | | -| `label_filetype` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the label. If empty, will use the default format set from
the Shippo dashboard. | PDF_4x6 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | BATCH #1 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `default_carrier_account` | *str* | :heavy_check_mark: | ID of the Carrier Account object to use as the default for all shipments in this Batch.
The carrier account can be changed on a per-shipment basis by changing the carrier_account in the
corresponding BatchShipment object. | 078870331023437cb917f5187429b093 | +| `default_servicelevel_token` | *str* | :heavy_check_mark: | Token of the service level to use as the default for all shipments in this Batch.
The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the
corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) | usps_priority | +| `label_filetype` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from
[the Shippo dashboard.](https://apps.goshippo.com/settings/labels) | PDF_4x6 | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | BATCH #1 | +| `batch_shipments` | List[[components.BatchShipmentCreateRequest](../../models/components/batchshipmentcreaterequest.md)] | :heavy_check_mark: | Array of BatchShipment objects. The response keeps the same order as in the request array. | | \ No newline at end of file diff --git a/docs/models/components/batchshipment.md b/docs/models/components/batchshipment.md index d13622e4..e7d77c50 100644 --- a/docs/models/components/batchshipment.md +++ b/docs/models/components/batchshipment.md @@ -1,15 +1,21 @@ # BatchShipment +The batch shipment object is a wrapper around a shipment object, which include shipment-specific information +for batch processing. + +Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through +the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint + ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `object_id` | *str* | :heavy_check_mark: | Object ID of this batch shipment. Can be used in the remove_shipments endpoint. | e11c95a6788d4ddcaa22f03175838740 | -| `shipment` | *str* | :heavy_check_mark: | Object ID of the shipment object created for this batch shipment. | adcfdddf8ec64b84ad22772bce3ea37a | -| `status` | [components.BatchShipmentStatus](../../models/components/batchshipmentstatus.md) | :heavy_check_mark: | `INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.

`VALID` batch shipments can be purchased.

Batch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field

`INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again. | INVALID | -| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account to be used for this shipment (will override batch default) | a4391cd4ab974f478f55dc08b5c8e3b3 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | SHIPMENT #1 | -| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | A token that sets the shipping method for the batch, overriding the batch default.
Servicelevel tokens can be found in this list
or at this endpoint. | fedex_ground | -| `messages` | List[*Any*] | :heavy_minus_sign: | List of Shipment and Transaction error messages. | | -| `transaction` | *Optional[str]* | :heavy_minus_sign: | Object ID of the transaction object created for this batch shipment. | 4c33736a67e2450da88b38c42deef6b7 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account to be used for this shipment (will override batch default) | a4391cd4ab974f478f55dc08b5c8e3b3 | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | SHIPMENT #1 | +| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | A token that sets the shipping method for the batch, overriding the batch default.
Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels)
or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). | fedex_ground | +| `messages` | List[*Any*] | :heavy_minus_sign: | List of Shipment and Transaction error messages. | | +| `object_id` | *str* | :heavy_check_mark: | Object ID of this batch shipment. Can be used in the remove_shipments endpoint. | e11c95a6788d4ddcaa22f03175838740 | +| `shipment` | *str* | :heavy_check_mark: | Object ID of the shipment object created for this batch shipment. | adcfdddf8ec64b84ad22772bce3ea37a | +| `status` | [components.BatchShipmentStatus](../../models/components/batchshipmentstatus.md) | :heavy_check_mark: | - `INVALID`: the batch shipment cannot be purchased and will have to be removed, fixed, and added to the batch again
- `VALID`: the batch shipment can be purchased
- `TRANSACTION_FAILED`: the batch shipment was not able to be purchased and the error will be displayed on the message field
- `INCOMPLETE`: the batch shipment has an issue with the Address and will need to be removed, fixed, and added to the batch again | INVALID | +| `transaction` | *Optional[str]* | :heavy_minus_sign: | Object ID of the transaction object created for this batch shipment. | 4c33736a67e2450da88b38c42deef6b7 | \ No newline at end of file diff --git a/docs/models/components/batchshipmentcreaterequest.md b/docs/models/components/batchshipmentcreaterequest.md index 4f4c9112..e66c9b60 100644 --- a/docs/models/components/batchshipmentcreaterequest.md +++ b/docs/models/components/batchshipmentcreaterequest.md @@ -3,9 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `shipment` | [components.ShipmentCreateRequest](../../models/components/shipmentcreaterequest.md) | :heavy_check_mark: | N/A | | -| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account to be used for this shipment (will override batch default) | a4391cd4ab974f478f55dc08b5c8e3b3 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | SHIPMENT #1 | -| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | A token that sets the shipping method for the batch, overriding the batch default.
Servicelevel tokens can be found in this list
or at this endpoint. | fedex_ground | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account to be used for this shipment (will override batch default) | a4391cd4ab974f478f55dc08b5c8e3b3 | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want
to attach to the object. | SHIPMENT #1 | +| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | A token that sets the shipping method for the batch, overriding the batch default.
Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels)
or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). | fedex_ground | +| `shipment` | [components.ShipmentCreateRequest](../../models/components/shipmentcreaterequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/batchshipmentpaginatedlist.md b/docs/models/components/batchshipmentpaginatedlist.md index 2c6a0b72..4ee1f8cb 100644 --- a/docs/models/components/batchshipmentpaginatedlist.md +++ b/docs/models/components/batchshipmentpaginatedlist.md @@ -1,6 +1,6 @@ # BatchShipmentPaginatedList -Array of BatchShipment objects. +Array of [BatchShipment](/shippoapi/public-api/batches/batchshipment) objects. The response keeps the same order as in the request array. diff --git a/docs/models/components/batchshipmentstatus.md b/docs/models/components/batchshipmentstatus.md index c7873122..e87c9adb 100644 --- a/docs/models/components/batchshipmentstatus.md +++ b/docs/models/components/batchshipmentstatus.md @@ -1,9 +1,17 @@ # BatchShipmentStatus -`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.
-`VALID` batch shipments can be purchased.
-Batch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field
-`INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again. +- `INVALID`: the batch shipment cannot be purchased and will have to be removed, fixed, and added to the batch again +- `VALID`: the batch shipment can be purchased +- `TRANSACTION_FAILED`: the batch shipment was not able to be purchased and the error will be displayed on the message field +- `INCOMPLETE`: the batch shipment has an issue with the Address and will need to be removed, fixed, and added to the batch again + +## Example Usage + +```python +from shippo.models.components import BatchShipmentStatus + +value = BatchShipmentStatus.INVALID +``` ## Values diff --git a/docs/models/components/batchstatus.md b/docs/models/components/batchstatus.md index 05ee104a..eef6cd02 100644 --- a/docs/models/components/batchstatus.md +++ b/docs/models/components/batchstatus.md @@ -1,10 +1,18 @@ # BatchStatus -Batches that are `VALIDATING` are being created and validated
-`VALID` batches can be purchased
-`INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed
-Batches that are in the `PURCHASING` state are being purchased
-`PURCHASED` batches are finished purchasing. +- `VALIDATING`: the batch is being created and validated +- `VALID`: the batch can be purchased +- `INVALID`: the batch cannot be purchased; `INVALID` BatchShipments must be removed +- `PURCHASING`: the batch is being purchased +- `PURCHASED`: the batch is finished purchasing + +## Example Usage + +```python +from shippo.models.components import BatchStatus + +value = BatchStatus.VALIDATING +``` ## Values diff --git a/docs/models/components/billingtype.md b/docs/models/components/billingtype.md index 2f93c657..f884fdf7 100644 --- a/docs/models/components/billingtype.md +++ b/docs/models/components/billingtype.md @@ -2,6 +2,14 @@ Party to be billed. (Leave blank for DHL Germany.) +## Example Usage + +```python +from shippo.models.components import BillingType + +value = BillingType.SENDER +``` + ## Values diff --git a/docs/models/components/buildinglocationtype.md b/docs/models/components/buildinglocationtype.md index f6a477be..f59b26ff 100644 --- a/docs/models/components/buildinglocationtype.md +++ b/docs/models/components/buildinglocationtype.md @@ -3,6 +3,14 @@ Where your parcels will be available for pickup. "Security Deck" and "Shipping Dock" are only supported for DHL Express. +## Example Usage + +```python +from shippo.models.components import BuildingLocationType + +value = BuildingLocationType.BACK_DOOR +``` + ## Values diff --git a/docs/models/components/buildingtype.md b/docs/models/components/buildingtype.md index e3ecb4ee..e9659624 100644 --- a/docs/models/components/buildingtype.md +++ b/docs/models/components/buildingtype.md @@ -2,6 +2,14 @@ The type of building where the pickup is located. +## Example Usage + +```python +from shippo.models.components import BuildingType + +value = BuildingType.APARTMENT +``` + ## Values diff --git a/docs/models/components/carrieraccount.md b/docs/models/components/carrieraccount.md index 8ac80f3c..e0a6d100 100644 --- a/docs/models/components/carrieraccount.md +++ b/docs/models/components/carrieraccount.md @@ -3,16 +3,16 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the carrier accounts tutorial
page for the `account_id` per carrier.

To protect account information, this field will be masked in any API response. | **** | -| `carrier` | *str* | :heavy_check_mark: | Carrier token, see Carriers

Please check the carrier accounts tutorial page for all supported carriers. | usps | -| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | -| `parameters` | [Optional[components.CarrierAccountParameters]](../../models/components/carrieraccountparameters.md) | :heavy_minus_sign: | N/A | | -| `carrier_name` | *Optional[Any]* | :heavy_minus_sign: | Carrier name, see Carriers
| USPS | -| `is_shippo_account` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the carrier account object. | 6aa34d5f6865448fbb1ee93636e98999 | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the carrier account object. | bob+22@gmail.com | -| `service_levels` | List[[components.CarrierAccountServiceLevel](../../models/components/carrieraccountservicelevel.md)] | :heavy_minus_sign: | N/A | | -| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/)
page for the `account_id` per carrier.
To protect account information, this field will be masked in any API response. | **** | +| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | +| `carrier` | *str* | :heavy_check_mark: | Carrier token, see [Carriers](/shippoapi/public-api/carriers)
Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. | usps | +| `parameters` | [Optional[components.CarrierAccountParameters]](../../models/components/carrieraccountparameters.md) | :heavy_minus_sign: | N/A | | +| `carrier_name` | *Optional[Any]* | :heavy_minus_sign: | Carrier name, see [Carriers](/shippoapi/public-api/carriers) | USPS | +| `is_shippo_account` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the carrier account object. | 6aa34d5f6865448fbb1ee93636e98999 | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the carrier account object. | bob+22@gmail.com | +| `service_levels` | List[[components.CarrierAccountServiceLevel](../../models/components/carrieraccountservicelevel.md)] | :heavy_minus_sign: | N/A | | +| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | \ No newline at end of file diff --git a/docs/models/components/carrieraccountbase.md b/docs/models/components/carrieraccountbase.md index 6ef60274..540a047a 100644 --- a/docs/models/components/carrieraccountbase.md +++ b/docs/models/components/carrieraccountbase.md @@ -3,9 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the carrier accounts tutorial
page for the `account_id` per carrier.

To protect account information, this field will be masked in any API response. | **** | -| `carrier` | *str* | :heavy_check_mark: | Carrier token, see Carriers

Please check the carrier accounts tutorial page for all supported carriers. | usps | -| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | -| `parameters` | [Optional[components.CarrierAccountBaseParameters]](../../models/components/carrieraccountbaseparameters.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/)
page for the `account_id` per carrier.
To protect account information, this field will be masked in any API response. | **** | +| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | +| `carrier` | *str* | :heavy_check_mark: | Carrier token, see [Carriers](/shippoapi/public-api/carriers)
Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. | usps | +| `parameters` | [Optional[components.CarrierAccountBaseParameters]](../../models/components/carrieraccountbaseparameters.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/carrieraccountcanadapostcreaterequest.md b/docs/models/components/carrieraccountcanadapostcreaterequest.md index 7f3a897d..7becfc5a 100644 --- a/docs/models/components/carrieraccountcanadapostcreaterequest.md +++ b/docs/models/components/carrieraccountcanadapostcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountCanadaPostCreateParameters](../../models/components/carrieraccountcanadapostcreateparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["canada_post"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["canada_post"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountCanadaPostCreateParameters](../../models/components/carrieraccountcanadapostcreateparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountchronopostcreaterequest.md b/docs/models/components/carrieraccountchronopostcreaterequest.md index 4c251136..761ed8e8 100644 --- a/docs/models/components/carrieraccountchronopostcreaterequest.md +++ b/docs/models/components/carrieraccountchronopostcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountChronopostCreateRequestParameters](../../models/components/carrieraccountchronopostcreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["chronopost"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["chronopost"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountChronopostCreateRequestParameters](../../models/components/carrieraccountchronopostcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountcolissimocreaterequest.md b/docs/models/components/carrieraccountcolissimocreaterequest.md index 5ee0f007..a34b2d5e 100644 --- a/docs/models/components/carrieraccountcolissimocreaterequest.md +++ b/docs/models/components/carrieraccountcolissimocreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountColissimoCreateRequestParameters](../../models/components/carrieraccountcolissimocreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["colissimo"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["colissimo"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountColissimoCreateRequestParameters](../../models/components/carrieraccountcolissimocreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountcorreoscreaterequest.md b/docs/models/components/carrieraccountcorreoscreaterequest.md index b48580f0..a731f9b5 100644 --- a/docs/models/components/carrieraccountcorreoscreaterequest.md +++ b/docs/models/components/carrieraccountcorreoscreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountCorreosCreateRequestParameters](../../models/components/carrieraccountcorreoscreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["correos"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["correos"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountCorreosCreateRequestParameters](../../models/components/carrieraccountcorreoscreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountdeutschepostcreaterequest.md b/docs/models/components/carrieraccountdeutschepostcreaterequest.md index e017135c..4ece805e 100644 --- a/docs/models/components/carrieraccountdeutschepostcreaterequest.md +++ b/docs/models/components/carrieraccountdeutschepostcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountDeutschePostCreateRequestParameters](../../models/components/carrieraccountdeutschepostcreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["deutsche_post"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["deutsche_post"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountDeutschePostCreateRequestParameters](../../models/components/carrieraccountdeutschepostcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountdhlexpresscreaterequest.md b/docs/models/components/carrieraccountdhlexpresscreaterequest.md index 38182e56..5545b3f1 100644 --- a/docs/models/components/carrieraccountdhlexpresscreaterequest.md +++ b/docs/models/components/carrieraccountdhlexpresscreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountDHLExpressCreateRequestParameters](../../models/components/carrieraccountdhlexpresscreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["dhl_express"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["dhl_express"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountDHLExpressCreateRequestParameters](../../models/components/carrieraccountdhlexpresscreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountdpddecreaterequest.md b/docs/models/components/carrieraccountdpddecreaterequest.md index 5d993b36..a04151dd 100644 --- a/docs/models/components/carrieraccountdpddecreaterequest.md +++ b/docs/models/components/carrieraccountdpddecreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `parameters` | [components.CarrierAccountDpdDeCreateRequestParameters](../../models/components/carrieraccountdpddecreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["dpd_de"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["dpd_de"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountDpdDeCreateRequestParameters](../../models/components/carrieraccountdpddecreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountdpdukcreaterequest.md b/docs/models/components/carrieraccountdpdukcreaterequest.md index 49c9b1fa..c1068369 100644 --- a/docs/models/components/carrieraccountdpdukcreaterequest.md +++ b/docs/models/components/carrieraccountdpdukcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `parameters` | [components.CarrierAccountDPDUKCreateRequestParameters](../../models/components/carrieraccountdpdukcreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["dpd_uk"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["dpd_uk"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountDPDUKCreateRequestParameters](../../models/components/carrieraccountdpdukcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountfedexcreaterequest.md b/docs/models/components/carrieraccountfedexcreaterequest.md index 403d4aec..904c203d 100644 --- a/docs/models/components/carrieraccountfedexcreaterequest.md +++ b/docs/models/components/carrieraccountfedexcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `parameters` | [components.CarrierAccountFedExCreateRequestParameters](../../models/components/carrieraccountfedexcreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["fedex"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["fedex"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountFedExCreateRequestParameters](../../models/components/carrieraccountfedexcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccounthermesukcreaterequest.md b/docs/models/components/carrieraccounthermesukcreaterequest.md index 2860283e..ed0bbb26 100644 --- a/docs/models/components/carrieraccounthermesukcreaterequest.md +++ b/docs/models/components/carrieraccounthermesukcreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -| `parameters` | [components.CarrierAccountHermesUKCreateRequestParameters](../../models/components/carrieraccounthermesukcreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["hermes_uk"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["hermes_uk"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountHermesUKCreateRequestParameters](../../models/components/carrieraccounthermesukcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountmondialrelaycreaterequest.md b/docs/models/components/carrieraccountmondialrelaycreaterequest.md index f428984a..637c7c86 100644 --- a/docs/models/components/carrieraccountmondialrelaycreaterequest.md +++ b/docs/models/components/carrieraccountmondialrelaycreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountMondialRelayCreateRequestParameters](../../models/components/carrieraccountmondialrelaycreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["mondial_relay"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["mondial_relay"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountMondialRelayCreateRequestParameters](../../models/components/carrieraccountmondialrelaycreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountposteitalianecreaterequest.md b/docs/models/components/carrieraccountposteitalianecreaterequest.md index 50694a9a..b47ae6ce 100644 --- a/docs/models/components/carrieraccountposteitalianecreaterequest.md +++ b/docs/models/components/carrieraccountposteitalianecreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountPosteItalianeCreateRequestParameters](../../models/components/carrieraccountposteitalianecreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["poste_italiane"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["poste_italiane"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountPosteItalianeCreateRequestParameters](../../models/components/carrieraccountposteitalianecreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountregistrationstatus.md b/docs/models/components/carrieraccountregistrationstatus.md index 059832f6..e0bd3ada 100644 --- a/docs/models/components/carrieraccountregistrationstatus.md +++ b/docs/models/components/carrieraccountregistrationstatus.md @@ -1,5 +1,7 @@ # CarrierAccountRegistrationStatus +Carrier account registration status + ## Fields diff --git a/docs/models/components/carrieraccountsendlecreaterequest.md b/docs/models/components/carrieraccountroyalmailcreaterequest.md similarity index 57% rename from docs/models/components/carrieraccountsendlecreaterequest.md rename to docs/models/components/carrieraccountroyalmailcreaterequest.md index 4b416f66..11f0bf10 100644 --- a/docs/models/components/carrieraccountsendlecreaterequest.md +++ b/docs/models/components/carrieraccountroyalmailcreaterequest.md @@ -1,9 +1,9 @@ -# CarrierAccountSendleCreateRequest +# CarrierAccountRoyalMailCreateRequest ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountSendleCreateRequestParameters](../../models/components/carrieraccountsendlecreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["sendle"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `carrier` | *Literal["royal_mail"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountRoyalMailCreateRequestParameters](../../models/components/carrieraccountroyalmailcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountroyalmailcreaterequestparameters.md b/docs/models/components/carrieraccountroyalmailcreaterequestparameters.md new file mode 100644 index 00000000..43ca7a53 --- /dev/null +++ b/docs/models/components/carrieraccountroyalmailcreaterequestparameters.md @@ -0,0 +1,10 @@ +# CarrierAccountRoyalMailCreateRequestParameters + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `client_id` | *str* | :heavy_check_mark: | The client ID assigned to the user | +| `client_secret` | *str* | :heavy_check_mark: | The secret that corresponds to the supplied client ID | +| `partner_token` | *str* | :heavy_check_mark: | A unique identifier for your OBA account | \ No newline at end of file diff --git a/docs/models/components/carrieraccountroyalmailsfcreaterequest.md b/docs/models/components/carrieraccountroyalmailsfcreaterequest.md new file mode 100644 index 00000000..207f8fc0 --- /dev/null +++ b/docs/models/components/carrieraccountroyalmailsfcreaterequest.md @@ -0,0 +1,9 @@ +# CarrierAccountRoyalMailSfCreateRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `carrier` | *Literal["royal_mail_sf"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountRoyalMailSfCreateRequestParameters](../../models/components/carrieraccountroyalmailsfcreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountroyalmailsfcreaterequestparameters.md b/docs/models/components/carrieraccountroyalmailsfcreaterequestparameters.md new file mode 100644 index 00000000..8dba8954 --- /dev/null +++ b/docs/models/components/carrieraccountroyalmailsfcreaterequestparameters.md @@ -0,0 +1,8 @@ +# CarrierAccountRoyalMailSfCreateRequestParameters + + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `royal_mail_sf_agreements` | *bool* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountsendlecreaterequestparameters.md b/docs/models/components/carrieraccountsendlecreaterequestparameters.md deleted file mode 100644 index aa1e00cf..00000000 --- a/docs/models/components/carrieraccountsendlecreaterequestparameters.md +++ /dev/null @@ -1,7 +0,0 @@ -# CarrierAccountSendleCreateRequestParameters - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/carrieraccountservicelevel.md b/docs/models/components/carrieraccountservicelevel.md index 1bf46413..a233100e 100644 --- a/docs/models/components/carrieraccountservicelevel.md +++ b/docs/models/components/carrieraccountservicelevel.md @@ -5,8 +5,8 @@ Contains details regarding the service level for the carrier account. ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *Optional[str]* | :heavy_minus_sign: | Service level name, e.g. `Priority Mail` or `FedEx Ground®`.
A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties.
These names vary depending on the provider.

See Service Levels. | Priority Mail Express | -| `token` | *Optional[str]* | :heavy_minus_sign: | Service level token, e.g. `usps_priority` or `fedex_ground`.

See Service Levels. | usps_priority_express | -| `supports_return_labels` | *Optional[bool]* | :heavy_minus_sign: | Whether or not the service level supports return labels. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *Optional[str]* | :heavy_minus_sign: | Service level name, e.g. `Priority Mail` or `FedEx Ground®`.
A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties.
These names vary depending on the provider.
See [Service Levels](/shippoapi/public-api/service-levels). | Priority Mail Express | +| `token` | *Optional[str]* | :heavy_minus_sign: | Service level token, e.g. `usps_priority` or `fedex_ground`.
See [Service Levels](/shippoapi/public-api/service-levels). | usps_priority_express | +| `supports_return_labels` | *Optional[bool]* | :heavy_minus_sign: | Whether or not the service level supports return labels. | true | \ No newline at end of file diff --git a/docs/models/components/carrieraccountupscreaterequestparameters.md b/docs/models/components/carrieraccountupscreaterequestparameters.md index 7f112b83..794c8e3a 100644 --- a/docs/models/components/carrieraccountupscreaterequestparameters.md +++ b/docs/models/components/carrieraccountupscreaterequestparameters.md @@ -9,17 +9,17 @@ | `billing_address_country_iso2` | *str* | :heavy_check_mark: | N/A | US | | `billing_address_state` | *str* | :heavy_check_mark: | N/A | CA | | `billing_address_street1` | *str* | :heavy_check_mark: | N/A | 731 Market St | -| `billing_address_zip` | *str* | :heavy_check_mark: | N/A | 94103 | -| `pickup_address_city` | *str* | :heavy_check_mark: | User's pickup address city. | San Francisco | -| `pickup_address_country_iso2` | *str* | :heavy_check_mark: | User's pickup street 1. | US | -| `pickup_address_state` | *str* | :heavy_check_mark: | User's pickup address state. | CA | -| `pickup_address_street1` | *str* | :heavy_check_mark: | User's pickup address street 1. | 731 Market St | -| `pickup_address_zip` | *str* | :heavy_check_mark: | User's pickup address zip code. | 94103 | -| `ups_agreements` | *bool* | :heavy_check_mark: | Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false | | | `billing_address_street2` | *Optional[str]* | :heavy_minus_sign: | Empty string acceptable for billing_address_street2 | STE 200 | +| `billing_address_zip` | *str* | :heavy_check_mark: | N/A | 94103 | | `company` | *Optional[str]* | :heavy_minus_sign: | Company name. Full name is acceptable in this field if the user has no company name | Shippo | | `email` | *Optional[str]* | :heavy_minus_sign: | N/A | hippo@shippo.com | | `full_name` | *Optional[str]* | :heavy_minus_sign: | N/A | Shippo Meister | | `phone` | *Optional[str]* | :heavy_minus_sign: | Needs to be a valid phone number and cannot be null | 1112223333 | +| `pickup_address_city` | *str* | :heavy_check_mark: | User's pickup address city. | San Francisco | +| `pickup_address_country_iso2` | *str* | :heavy_check_mark: | User's pickup street 1. | US | | `pickup_address_same_as_billing_address` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `pickup_address_street2` | *Optional[str]* | :heavy_minus_sign: | User's pickup street 2. | STE 200 | \ No newline at end of file +| `pickup_address_state` | *str* | :heavy_check_mark: | User's pickup address state. | CA | +| `pickup_address_street1` | *str* | :heavy_check_mark: | User's pickup address street 1. | 731 Market St | +| `pickup_address_street2` | *Optional[str]* | :heavy_minus_sign: | User's pickup street 2. | STE 200 | +| `pickup_address_zip` | *str* | :heavy_check_mark: | User's pickup address zip code. | 94103 | +| `ups_agreements` | *bool* | :heavy_check_mark: | Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false | | \ No newline at end of file diff --git a/docs/models/components/carrieraccountuspscreaterequest.md b/docs/models/components/carrieraccountuspscreaterequest.md index 610c3ed1..83c38f85 100644 --- a/docs/models/components/carrieraccountuspscreaterequest.md +++ b/docs/models/components/carrieraccountuspscreaterequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `parameters` | [components.CarrierAccountUSPSCreateRequestParameters](../../models/components/carrieraccountuspscreaterequestparameters.md) | :heavy_check_mark: | N/A | -| `carrier` | *Literal["usps"]* | :heavy_check_mark: | N/A | \ No newline at end of file +| `carrier` | *Literal["usps"]* | :heavy_check_mark: | N/A | +| `parameters` | [components.CarrierAccountUSPSCreateRequestParameters](../../models/components/carrieraccountuspscreaterequestparameters.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/carrieraccountwithextrainfo.md b/docs/models/components/carrieraccountwithextrainfo.md index 3588a595..c6f7dd9a 100644 --- a/docs/models/components/carrieraccountwithextrainfo.md +++ b/docs/models/components/carrieraccountwithextrainfo.md @@ -3,17 +3,17 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the carrier accounts tutorial
page for the `account_id` per carrier.

To protect account information, this field will be masked in any API response. | **** | -| `carrier` | *str* | :heavy_check_mark: | Carrier token, see Carriers

Please check the carrier accounts tutorial page for all supported carriers. | usps | -| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | -| `parameters` | [Optional[components.CarrierAccountWithExtraInfoParameters]](../../models/components/carrieraccountwithextrainfoparameters.md) | :heavy_minus_sign: | N/A | | -| `carrier_name` | *Optional[Any]* | :heavy_minus_sign: | Carrier name, see Carriers
| USPS | -| `is_shippo_account` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the carrier account object. | 6aa34d5f6865448fbb1ee93636e98999 | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the carrier account object. | bob+22@gmail.com | -| `service_levels` | List[[components.CarrierAccountServiceLevel](../../models/components/carrieraccountservicelevel.md)] | :heavy_minus_sign: | N/A | | -| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | -| `object_info` | [Optional[components.ObjectInfo]](../../models/components/objectinfo.md) | :heavy_minus_sign: | Holds internal state relevant to users. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account_id` | *str* | :heavy_check_mark: | Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/)
page for the `account_id` per carrier.
To protect account information, this field will be masked in any API response. | **** | +| `active` | *Optional[bool]* | :heavy_minus_sign: | Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly
passed Shippo will query all carrier accounts that have this field set. By default, this is set to True. | | +| `carrier` | *str* | :heavy_check_mark: | Carrier token, see [Carriers](/shippoapi/public-api/carriers)
Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. | usps | +| `parameters` | [Optional[components.CarrierAccountWithExtraInfoParameters]](../../models/components/carrieraccountwithextrainfoparameters.md) | :heavy_minus_sign: | N/A | | +| `carrier_name` | *Optional[Any]* | :heavy_minus_sign: | Carrier name, see [Carriers](/shippoapi/public-api/carriers) | USPS | +| `is_shippo_account` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the carrier account object. | 6aa34d5f6865448fbb1ee93636e98999 | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the carrier account object. | bob+22@gmail.com | +| `service_levels` | List[[components.CarrierAccountServiceLevel](../../models/components/carrieraccountservicelevel.md)] | :heavy_minus_sign: | N/A | | +| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | false | +| `object_info` | [Optional[components.ObjectInfo]](../../models/components/objectinfo.md) | :heavy_minus_sign: | Holds internal state relevant to users. | | \ No newline at end of file diff --git a/docs/models/components/carrieraccountwithextrainfostatus.md b/docs/models/components/carrieraccountwithextrainfostatus.md index 6a8a28e4..da6a00dc 100644 --- a/docs/models/components/carrieraccountwithextrainfostatus.md +++ b/docs/models/components/carrieraccountwithextrainfostatus.md @@ -2,6 +2,14 @@ Current authentication status. Possible values: 'disconnected' (authorization lost, reconnect needed), 'connected' (authorized and active), 'authorization_pending' (awaiting initial authorization flow). +## Example Usage + +```python +from shippo.models.components import CarrierAccountWithExtraInfoStatus + +value = CarrierAccountWithExtraInfoStatus.DISCONNECTED +``` + ## Values diff --git a/docs/models/components/carrieraccountwithextrainfotype.md b/docs/models/components/carrieraccountwithextrainfotype.md index b9d1a6ab..632f2ede 100644 --- a/docs/models/components/carrieraccountwithextrainfotype.md +++ b/docs/models/components/carrieraccountwithextrainfotype.md @@ -2,6 +2,14 @@ Authentication method used by this account. +## Example Usage + +```python +from shippo.models.components import CarrierAccountWithExtraInfoType + +value = CarrierAccountWithExtraInfoType.DEFAULT +``` + ## Values diff --git a/docs/models/components/carrierparceltemplatelist.md b/docs/models/components/carrierparceltemplatelist.md index 1121142b..5b2308f4 100644 --- a/docs/models/components/carrierparceltemplatelist.md +++ b/docs/models/components/carrierparceltemplatelist.md @@ -1,5 +1,7 @@ # CarrierParcelTemplateList +List of carrier parcel templates + ## Fields diff --git a/docs/models/components/carriersenum.md b/docs/models/components/carriersenum.md index 7cfb943e..ba2c436f 100644 --- a/docs/models/components/carriersenum.md +++ b/docs/models/components/carriersenum.md @@ -14,7 +14,6 @@ | boxberry | Boxberry| | bring | Bring (also used for Posten Norge)| | canada_post | Canada Post| -| cdl | CDL| | chronopost | Chronopost| | collect_plus | CollectPlus| | correios_br | CorreiosBR| @@ -51,9 +50,9 @@ | posti | Posti| | purolator | Purolator| | royal_mail | Royal Mail| +| royal_mail_sf | Royal Mail Storefeeder| | rr_donnelley | ePost Global| | russian_post | Russian Post| -| sendle | Sendle| | skypostal | SkyPostal| | stuart | Stuart| | swyft | Swyft| @@ -63,6 +62,14 @@ | veho | Veho | +## Example Usage + +```python +from shippo.models.components import CarriersEnum + +value = CarriersEnum.AIRTERRA +``` + ## Values @@ -80,7 +87,6 @@ | `BOXBERRY` | boxberry | | `BRING` | bring | | `CANADA_POST` | canada_post | -| `CDL` | cdl | | `CHRONOPOST` | chronopost | | `COLLECT_PLUS` | collect_plus | | `CORREIOS_BR` | correios_br | @@ -117,9 +123,9 @@ | `POSTI` | posti | | `PUROLATOR` | purolator | | `ROYAL_MAIL` | royal_mail | +| `ROYAL_MAIL_SF` | royal_mail_sf | | `RR_DONNELLEY` | rr_donnelley | | `RUSSIAN_POST` | russian_post | -| `SENDLE` | sendle | | `SKYPOSTAL` | skypostal | | `STUART` | stuart | | `SWYFT` | swyft | diff --git a/docs/models/components/cod.md b/docs/models/components/cod.md index efe45ad0..6fc4561a 100644 --- a/docs/models/components/cod.md +++ b/docs/models/components/cod.md @@ -5,8 +5,8 @@ Specify collection on delivery details (UPS only). ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `amount` | *Optional[str]* | :heavy_minus_sign: | Amount to be collected. | 5.5 | -| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency for the amount to be collected. Currently only USD is supported for UPS. | USD | -| `payment_method` | [Optional[components.PaymentMethod]](../../models/components/paymentmethod.md) | :heavy_minus_sign: | Secured funds include money orders, certified cheques and others (see
UPS for details).
If no payment_method inputted the value defaults to "ANY".) | CASH | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | *Optional[str]* | :heavy_minus_sign: | Amount to be collected. | 5.5 | +| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency for the amount to be collected. Currently only USD is supported for UPS. | USD | +| `payment_method` | [Optional[components.PaymentMethod]](../../models/components/paymentmethod.md) | :heavy_minus_sign: | Secured funds include money orders, certified cheques and others (see
[UPS](https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html) for details).
If no payment_method inputted the value defaults to "ANY".) | CASH | \ No newline at end of file diff --git a/docs/models/components/connectexistingownaccountrequest.md b/docs/models/components/connectexistingownaccountrequest.md index 3f9f718a..045330ff 100644 --- a/docs/models/components/connectexistingownaccountrequest.md +++ b/docs/models/components/connectexistingownaccountrequest.md @@ -6,8 +6,8 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | `account_id` | *str* | :heavy_check_mark: | N/A | 321123 | -| `carrier` | *str* | :heavy_check_mark: | N/A | fedex | -| `parameters` | [components.ConnectExistingOwnAccountRequestParameters](../../models/components/connectexistingownaccountrequestparameters.md) | :heavy_check_mark: | N/A | | | `active` | *Optional[bool]* | :heavy_minus_sign: | N/A | | +| `carrier` | *str* | :heavy_check_mark: | N/A | fedex | | `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | FEDEX Account | +| `parameters` | [components.ConnectExistingOwnAccountRequestParameters](../../models/components/connectexistingownaccountrequestparameters.md) | :heavy_check_mark: | N/A | | | `test` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | \ No newline at end of file diff --git a/docs/models/components/corerate.md b/docs/models/components/corerate.md index c53936b7..1add7886 100644 --- a/docs/models/components/corerate.md +++ b/docs/models/components/corerate.md @@ -3,14 +3,14 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `amount` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the sender's country. | 5.5 | -| `amount_local` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the recipient's country. | 5.5 | -| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency used in the sender's country, refers to `amount`.
The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. | USD | -| `currency_local` | *Optional[str]* | :heavy_minus_sign: | Currency used in the recipient's country, refers to `amount_local`.
The official ISO 4217 currency codes are used, e.g. `USD` or "EUR". | USD | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the Rate object. | adcfdddf8ec64b84ad22772bce3ea37a | -| `provider` | *Optional[str]* | :heavy_minus_sign: | Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`. | USPS | -| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account that has been used to retrieve the rate. | 078870331023437cb917f5187429b093 | -| `servicelevel_name` | *Optional[str]* | :heavy_minus_sign: | Service level name, e.g. `Priority Mail` or `FedEx Ground®`.
A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard),
along with other properties. These names vary depending on the provider.

See Service Levels. | Priority Mail | -| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See servicelevels. | fedex_ground | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the sender's country. | 5.5 | +| `amount_local` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the recipient's country. | 5.5 | +| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency used in the sender's country, refers to `amount`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. | USD | +| `currency_local` | *Optional[str]* | :heavy_minus_sign: | Currency used in the recipient's country, refers to `amount_local`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or "EUR". | USD | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the Rate object. | adcfdddf8ec64b84ad22772bce3ea37a | +| `provider` | *Optional[str]* | :heavy_minus_sign: | Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`. | USPS | +| `carrier_account` | *Optional[str]* | :heavy_minus_sign: | Object ID of the carrier account that has been used to retrieve the rate. | 078870331023437cb917f5187429b093 | +| `servicelevel_name` | *Optional[str]* | :heavy_minus_sign: | Service level name, e.g. `Priority Mail` or `FedEx Ground®`.
A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard),
along with other properties. These names vary depending on the provider.
See [Service Levels](/shippoapi/public-api/service-levels). | Priority Mail | +| `servicelevel_token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See [servicelevels](/shippoapi/public-api/service-levels). | fedex_ground | \ No newline at end of file diff --git a/docs/models/components/customerreference.md b/docs/models/components/customerreference.md index 76720c84..85adc6b2 100644 --- a/docs/models/components/customerreference.md +++ b/docs/models/components/customerreference.md @@ -5,8 +5,8 @@ Specify the reference field on the label (FedEx and UPS only). ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for customer reference field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | -| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for customer reference. Up to 40 characters. If
this is provided, reference_1 will be ignored. | | -| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 1 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for customer reference field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | +| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for customer reference. Up to 40 characters. If
this is provided, reference_1 will be ignored.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 40 characters (Express services); Max 30 characters (Ground services) \| | | +| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 1 | \ No newline at end of file diff --git a/docs/models/components/customsdeclaration.md b/docs/models/components/customsdeclaration.md index e8513361..6bffaf3a 100644 --- a/docs/models/components/customsdeclaration.md +++ b/docs/models/components/customsdeclaration.md @@ -3,36 +3,36 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `certify` | *bool* | :heavy_check_mark: | Expresses that the certify_signer has provided all information of this customs declaration truthfully. | true | -| `certify_signer` | *str* | :heavy_check_mark: | Name of the person who created the customs declaration and is responsible for the validity of all
information provided. | Shawn Ippotle | -| `contents_type` | *str* | :heavy_check_mark: | Type of goods of the shipment.
Allowed values available here | MERCHANDISE | -| `items` | List[*str*] | :heavy_check_mark: | Distinct Parcel content items as Customs Items object_ids. | [
"5087f181d1dc4b14b73fdbf636498886"
] | -| `non_delivery_option` | *str* | :heavy_check_mark: | Indicates how the carrier should proceed in case the shipment can't be delivered.
Allowed values available here | RETURN | -| `aes_itn` | *Optional[str]* | :heavy_minus_sign: | **required if eel_pfc is `AES_ITN`**

AES / ITN reference of the shipment. | | -| `b13a_filing_option` | *Optional[str]* | :heavy_minus_sign: | B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS).
More information on reporting commercial exports from Canada.
Allowed values available here | FILED_ELECTRONICALLY | -| `b13a_number` | *Optional[str]* | :heavy_minus_sign: | **must be provided if and only if b13a_filing_option is provided**

Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;

the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;

or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. | | -| `certificate` | *Optional[str]* | :heavy_minus_sign: | Certificate reference of the shipment. | | -| `commercial_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A | | -| `contents_explanation` | *Optional[str]* | :heavy_minus_sign: | **required if contents_type is `OTHER`**

Explanation of the type of goods of the shipment. | T-Shirt purchase | -| `disclaimer` | *Optional[str]* | :heavy_minus_sign: | Disclaimer for the shipment and customs information that have been provided. | | -| `duties_payor` | [Optional[components.CustomsDeclarationDutiesPayor]](../../models/components/customsdeclarationdutiespayor.md) | :heavy_minus_sign: | Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments. | | -| `exporter_identification` | [Optional[components.CustomsExporterIdentification]](../../models/components/customsexporteridentification.md) | :heavy_minus_sign: | Additional exporter identification that may be required to ship in certain countries | | -| `exporter_reference` | *Optional[str]* | :heavy_minus_sign: | Exporter reference of an export shipment. | | -| `importer_reference` | *Optional[str]* | :heavy_minus_sign: | Importer reference of an import shipment. | | -| `is_vat_collected` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the shipment's destination VAT has been collected. May be required for some destinations. | | -| `invoice` | *Optional[str]* | :heavy_minus_sign: | Invoice reference of the shipment. | #123123 | -| `license` | *Optional[str]* | :heavy_minus_sign: | License reference of the shipment. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID #123123 | -| `notes` | *Optional[str]* | :heavy_minus_sign: | Additional notes to be included in the customs declaration. | | -| `address_importer` | *Optional[str]* | :heavy_minus_sign: | Object ID of the Importer address. | 257ba08436604d2aaf069caafe7acb2a | -| `eel_pfc` | *Optional[str]* | :heavy_minus_sign: | EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most
other shipments from the US, `NOEEI_30_37_a` is applicable.
Allowed values available here | NOEEI_30_37_a | -| `incoterm` | *Optional[str]* | :heavy_minus_sign: | The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only.
eDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK.
If expecting DAP for other carriers, please use DDU.
Allowed values available here | DDP | -| `invoiced_charges` | [Optional[components.CustomsInvoicedCharges]](../../models/components/customsinvoicedcharges.md) | :heavy_minus_sign: | Additional invoiced charges to be shown on the Customs Declaration Commercial Invoice. | | -| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of object creation. | 2014-07-17T01:01:08.306Z | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given object. | e2197a54da9d470480f4f8796cc419cb | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the object. | shippotle@shippo.com | -| `object_state` | [Optional[components.ObjectStateEnum]](../../models/components/objectstateenum.md) | :heavy_minus_sign: | Indicates the validity of the enclosing object | | -| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last object update. | 2014-07-17T01:01:08.306Z | -| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `aes_itn` | *Optional[str]* | :heavy_minus_sign: | **required if eel_pfc is `AES_ITN`**

AES / ITN reference of the shipment. | | +| `b13a_filing_option` | *Optional[str]* | :heavy_minus_sign: | B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS).
[More information on reporting commercial exports from Canada.](https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html)
Allowed values available [here](/shippoapi/public-api/customs-declaration-b13a-filing-option) | FILED_ELECTRONICALLY | +| `b13a_number` | *Optional[str]* | :heavy_minus_sign: | **must be provided if and only if b13a_filing_option is provided**

Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. | | +| `certificate` | *Optional[str]* | :heavy_minus_sign: | Certificate reference of the shipment. | | +| `certify` | *bool* | :heavy_check_mark: | Expresses that the certify_signer has provided all information of this customs declaration truthfully. | true | +| `certify_signer` | *str* | :heavy_check_mark: | Name of the person who created the customs declaration and is responsible for the validity of all
information provided. | Shawn Ippotle | +| `commercial_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A | | +| `contents_explanation` | *Optional[str]* | :heavy_minus_sign: | **required if contents_type is `OTHER`**

Explanation of the type of goods of the shipment. | T-Shirt purchase | +| `disclaimer` | *Optional[str]* | :heavy_minus_sign: | Disclaimer for the shipment and customs information that have been provided.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 554 characters \| | | +| `duties_payor` | [Optional[components.CustomsDeclarationDutiesPayor]](../../models/components/customsdeclarationdutiespayor.md) | :heavy_minus_sign: | Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments. | | +| `exporter_identification` | [Optional[components.CustomsExporterIdentification]](../../models/components/customsexporteridentification.md) | :heavy_minus_sign: | Additional exporter identification that may be required to ship in certain countries | | +| `exporter_reference` | *Optional[str]* | :heavy_minus_sign: | Exporter reference of an export shipment. | | +| `importer_reference` | *Optional[str]* | :heavy_minus_sign: | Importer reference of an import shipment. | | +| `is_vat_collected` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the shipment's destination VAT has been collected. May be required for some destinations. | | +| `invoice` | *Optional[str]* | :heavy_minus_sign: | Invoice reference of the shipment. | #123123 | +| `license` | *Optional[str]* | :heavy_minus_sign: | License reference of the shipment. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID #123123 | +| `notes` | *Optional[str]* | :heavy_minus_sign: | Additional notes to be included in the customs declaration. | | +| `address_importer` | *Optional[str]* | :heavy_minus_sign: | Object ID of the Importer address. | 257ba08436604d2aaf069caafe7acb2a | +| `contents_type` | *str* | :heavy_check_mark: | Type of goods of the shipment.
Allowed values available [here](/shippoapi/public-api/customs-declaration-contents-type) | MERCHANDISE | +| `eel_pfc` | *Optional[str]* | :heavy_minus_sign: | EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most
other shipments from the US, `NOEEI_30_37_a` is applicable.
Allowed values available [here](/shippoapi/public-api/customs-declaration-eelpfc) | NOEEI_30_37_a | +| `incoterm` | *Optional[str]* | :heavy_minus_sign: | The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only.
eDAP is available for DPD UK only. DAP is available for DHL Express, FedEx, and DPD UK.
If expecting DAP for other carriers, please use DDU.
Allowed values available [here](/shippoapi/public-api/customs-declaration-incoterm)
Carrier-specific restrictions are in the table below.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Must be one of DDP, DDU, FCA, DAP \| | DDP | +| `invoiced_charges` | [Optional[components.CustomsInvoicedCharges]](../../models/components/customsinvoicedcharges.md) | :heavy_minus_sign: | Additional invoiced charges to be shown on the Customs Declaration Commercial Invoice. | | +| `items` | List[*str*] | :heavy_check_mark: | Distinct Parcel content items as Customs Items object_ids. | [
"5087f181d1dc4b14b73fdbf636498886"
] | +| `non_delivery_option` | *str* | :heavy_check_mark: | Indicates how the carrier should proceed in case the shipment can't be delivered.
Allowed values available [here](/shippoapi/public-api/customs-declaration-non-delivery-option) | RETURN | +| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of object creation. | 2014-07-17T01:01:08.306Z | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given object. | e2197a54da9d470480f4f8796cc419cb | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the object. | shippotle@shippo.com | +| `object_state` | [Optional[components.ObjectStateEnum]](../../models/components/objectstateenum.md) | :heavy_minus_sign: | Indicates the validity of the enclosing object | | +| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last object update. | 2014-07-17T01:01:08.306Z | +| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | true | \ No newline at end of file diff --git a/docs/models/components/customsdeclarationb13afilingoptionenum.md b/docs/models/components/customsdeclarationb13afilingoptionenum.md index 34bcc9ca..4068c619 100644 --- a/docs/models/components/customsdeclarationb13afilingoptionenum.md +++ b/docs/models/components/customsdeclarationb13afilingoptionenum.md @@ -1,8 +1,16 @@ # CustomsDeclarationB13AFilingOptionEnum B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS). - More information on reporting commercial exports from Canada. -Allowed values available here +[More information on reporting commercial exports from Canada.](https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html) +Allowed values available [here](/shippoapi/public-api/customs-declaration-b13a-filing-option) + +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationB13AFilingOptionEnum + +value = CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY +``` ## Values diff --git a/docs/models/components/customsdeclarationcontentstypeenum.md b/docs/models/components/customsdeclarationcontentstypeenum.md index 79a05b90..5b4ceab9 100644 --- a/docs/models/components/customsdeclarationcontentstypeenum.md +++ b/docs/models/components/customsdeclarationcontentstypeenum.md @@ -1,7 +1,15 @@ # CustomsDeclarationContentsTypeEnum Type of goods of the shipment. -Allowed values available here +Allowed values available [here](/shippoapi/public-api/customs-declaration-contents-type) + +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationContentsTypeEnum + +value = CustomsDeclarationContentsTypeEnum.DOCUMENTS +``` ## Values diff --git a/docs/models/components/customsdeclarationcreaterequest.md b/docs/models/components/customsdeclarationcreaterequest.md index a4de3955..5867519e 100644 --- a/docs/models/components/customsdeclarationcreaterequest.md +++ b/docs/models/components/customsdeclarationcreaterequest.md @@ -3,30 +3,30 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `certify` | *bool* | :heavy_check_mark: | Expresses that the certify_signer has provided all information of this customs declaration truthfully. | true | -| `certify_signer` | *str* | :heavy_check_mark: | Name of the person who created the customs declaration and is responsible for the validity of all
information provided. | Shawn Ippotle | -| `contents_type` | [components.CustomsDeclarationContentsTypeEnum](../../models/components/customsdeclarationcontentstypeenum.md) | :heavy_check_mark: | N/A | MERCHANDISE | -| `items` | List[[components.CustomsItemCreateRequest](../../models/components/customsitemcreaterequest.md)] | :heavy_check_mark: | N/A | | -| `non_delivery_option` | [components.CustomsDeclarationNonDeliveryOptionEnum](../../models/components/customsdeclarationnondeliveryoptionenum.md) | :heavy_check_mark: | N/A | RETURN | -| `aes_itn` | *Optional[str]* | :heavy_minus_sign: | **required if eel_pfc is `AES_ITN`**

AES / ITN reference of the shipment. | | -| `b13a_filing_option` | [Optional[components.CustomsDeclarationB13AFilingOptionEnum]](../../models/components/customsdeclarationb13afilingoptionenum.md) | :heavy_minus_sign: | N/A | FILED_ELECTRONICALLY | -| `b13a_number` | *Optional[str]* | :heavy_minus_sign: | **must be provided if and only if b13a_filing_option is provided**

Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;

the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;

or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. | | -| `certificate` | *Optional[str]* | :heavy_minus_sign: | Certificate reference of the shipment. | | -| `commercial_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A | | -| `contents_explanation` | *Optional[str]* | :heavy_minus_sign: | **required if contents_type is `OTHER`**

Explanation of the type of goods of the shipment. | T-Shirt purchase | -| `disclaimer` | *Optional[str]* | :heavy_minus_sign: | Disclaimer for the shipment and customs information that have been provided. | | -| `duties_payor` | [Optional[components.CustomsDeclarationCreateRequestDutiesPayor]](../../models/components/customsdeclarationcreaterequestdutiespayor.md) | :heavy_minus_sign: | Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments. | | -| `exporter_identification` | [Optional[components.CustomsExporterIdentification]](../../models/components/customsexporteridentification.md) | :heavy_minus_sign: | Additional exporter identification that may be required to ship in certain countries | | -| `exporter_reference` | *Optional[str]* | :heavy_minus_sign: | Exporter reference of an export shipment. | | -| `importer_reference` | *Optional[str]* | :heavy_minus_sign: | Importer reference of an import shipment. | | -| `is_vat_collected` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the shipment's destination VAT has been collected. May be required for some destinations. | | -| `invoice` | *Optional[str]* | :heavy_minus_sign: | Invoice reference of the shipment. | #123123 | -| `license` | *Optional[str]* | :heavy_minus_sign: | License reference of the shipment. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID #123123 | -| `notes` | *Optional[str]* | :heavy_minus_sign: | Additional notes to be included in the customs declaration. | | -| `address_importer` | [Optional[components.AddressImporter]](../../models/components/addressimporter.md) | :heavy_minus_sign: | Object that represents the address of the importer | | -| `eel_pfc` | [Optional[components.CustomsDeclarationEelPfcEnum]](../../models/components/customsdeclarationeelpfcenum.md) | :heavy_minus_sign: | N/A | NOEEI_30_37_a | -| `incoterm` | [Optional[components.CustomsDeclarationIncotermEnum]](../../models/components/customsdeclarationincotermenum.md) | :heavy_minus_sign: | N/A | DDP | -| `test` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `aes_itn` | *Optional[str]* | :heavy_minus_sign: | **required if eel_pfc is `AES_ITN`**

AES / ITN reference of the shipment. | | +| `b13a_filing_option` | [Optional[components.CustomsDeclarationB13AFilingOptionEnum]](../../models/components/customsdeclarationb13afilingoptionenum.md) | :heavy_minus_sign: | N/A | FILED_ELECTRONICALLY | +| `b13a_number` | *Optional[str]* | :heavy_minus_sign: | **must be provided if and only if b13a_filing_option is provided**

Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. | | +| `certificate` | *Optional[str]* | :heavy_minus_sign: | Certificate reference of the shipment. | | +| `certify` | *bool* | :heavy_check_mark: | Expresses that the certify_signer has provided all information of this customs declaration truthfully. | true | +| `certify_signer` | *str* | :heavy_check_mark: | Name of the person who created the customs declaration and is responsible for the validity of all
information provided. | Shawn Ippotle | +| `commercial_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A | | +| `contents_explanation` | *Optional[str]* | :heavy_minus_sign: | **required if contents_type is `OTHER`**

Explanation of the type of goods of the shipment. | T-Shirt purchase | +| `disclaimer` | *Optional[str]* | :heavy_minus_sign: | Disclaimer for the shipment and customs information that have been provided.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 554 characters \| | | +| `duties_payor` | [Optional[components.CustomsDeclarationCreateRequestDutiesPayor]](../../models/components/customsdeclarationcreaterequestdutiespayor.md) | :heavy_minus_sign: | Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments. | | +| `exporter_identification` | [Optional[components.CustomsExporterIdentification]](../../models/components/customsexporteridentification.md) | :heavy_minus_sign: | Additional exporter identification that may be required to ship in certain countries | | +| `exporter_reference` | *Optional[str]* | :heavy_minus_sign: | Exporter reference of an export shipment. | | +| `importer_reference` | *Optional[str]* | :heavy_minus_sign: | Importer reference of an import shipment. | | +| `is_vat_collected` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the shipment's destination VAT has been collected. May be required for some destinations. | | +| `invoice` | *Optional[str]* | :heavy_minus_sign: | Invoice reference of the shipment. | #123123 | +| `license` | *Optional[str]* | :heavy_minus_sign: | License reference of the shipment. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID #123123 | +| `notes` | *Optional[str]* | :heavy_minus_sign: | Additional notes to be included in the customs declaration. | | +| `address_importer` | [Optional[components.AddressImporter]](../../models/components/addressimporter.md) | :heavy_minus_sign: | Object that represents the address of the importer | | +| `contents_type` | [components.CustomsDeclarationContentsTypeEnum](../../models/components/customsdeclarationcontentstypeenum.md) | :heavy_check_mark: | N/A | MERCHANDISE | +| `eel_pfc` | [Optional[components.CustomsDeclarationEelPfcEnum]](../../models/components/customsdeclarationeelpfcenum.md) | :heavy_minus_sign: | N/A | NOEEI_30_37_a | +| `incoterm` | [Optional[components.CustomsDeclarationIncotermEnum]](../../models/components/customsdeclarationincotermenum.md) | :heavy_minus_sign: | N/A | DDP | +| `items` | List[[components.CustomsItemCreateRequest](../../models/components/customsitemcreaterequest.md)] | :heavy_check_mark: | N/A | | +| `non_delivery_option` | [components.CustomsDeclarationNonDeliveryOptionEnum](../../models/components/customsdeclarationnondeliveryoptionenum.md) | :heavy_check_mark: | N/A | RETURN | +| `test` | *Optional[bool]* | :heavy_minus_sign: | N/A | true | \ No newline at end of file diff --git a/docs/models/components/customsdeclarationcreaterequesttype.md b/docs/models/components/customsdeclarationcreaterequesttype.md index e21ac974..e773871b 100644 --- a/docs/models/components/customsdeclarationcreaterequesttype.md +++ b/docs/models/components/customsdeclarationcreaterequesttype.md @@ -2,6 +2,14 @@ Party to be billed for duties. +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationCreateRequestType + +value = CustomsDeclarationCreateRequestType.SENDER +``` + ## Values diff --git a/docs/models/components/customsdeclarationeelpfcenum.md b/docs/models/components/customsdeclarationeelpfcenum.md index f270968b..5d2ca433 100644 --- a/docs/models/components/customsdeclarationeelpfcenum.md +++ b/docs/models/components/customsdeclarationeelpfcenum.md @@ -2,7 +2,15 @@ EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most other shipments from the US, `NOEEI_30_37_a` is applicable. -Allowed values available here +Allowed values available [here](/shippoapi/public-api/customs-declaration-eelpfc) + +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationEelPfcEnum + +value = CustomsDeclarationEelPfcEnum.NOEEI_30_37_A +``` ## Values diff --git a/docs/models/components/customsdeclarationincotermenum.md b/docs/models/components/customsdeclarationincotermenum.md index 21cdf4cc..2484dc93 100644 --- a/docs/models/components/customsdeclarationincotermenum.md +++ b/docs/models/components/customsdeclarationincotermenum.md @@ -1,9 +1,23 @@ # CustomsDeclarationIncotermEnum -The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. -eDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK. +The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. +eDAP is available for DPD UK only. DAP is available for DHL Express, FedEx, and DPD UK. If expecting DAP for other carriers, please use DDU. -Allowed values available here +Allowed values available [here](/shippoapi/public-api/customs-declaration-incoterm) +Carrier-specific restrictions are in the table below. + +**Carrier-Specific Constraints:** +| Carrier | Constraints | +|:---|:---| +| FedEx | Must be one of DDP, DDU, FCA, DAP | + +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationIncotermEnum + +value = CustomsDeclarationIncotermEnum.DDP +``` ## Values diff --git a/docs/models/components/customsdeclarationnondeliveryoptionenum.md b/docs/models/components/customsdeclarationnondeliveryoptionenum.md index 3e62d232..1407ac2a 100644 --- a/docs/models/components/customsdeclarationnondeliveryoptionenum.md +++ b/docs/models/components/customsdeclarationnondeliveryoptionenum.md @@ -1,7 +1,15 @@ # CustomsDeclarationNonDeliveryOptionEnum Indicates how the carrier should proceed in case the shipment can't be delivered. -Allowed values available here +Allowed values available [here](/shippoapi/public-api/customs-declaration-non-delivery-option) + +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationNonDeliveryOptionEnum + +value = CustomsDeclarationNonDeliveryOptionEnum.ABANDON +``` ## Values diff --git a/docs/models/components/customsdeclarationtype.md b/docs/models/components/customsdeclarationtype.md index 6d9a1ce1..814fc8ad 100644 --- a/docs/models/components/customsdeclarationtype.md +++ b/docs/models/components/customsdeclarationtype.md @@ -2,6 +2,14 @@ Party to be billed for duties. +## Example Usage + +```python +from shippo.models.components import CustomsDeclarationType + +value = CustomsDeclarationType.SENDER +``` + ## Values diff --git a/docs/models/components/customsexporteridentification.md b/docs/models/components/customsexporteridentification.md index 63e1c4d9..d24e9b71 100644 --- a/docs/models/components/customsexporteridentification.md +++ b/docs/models/components/customsexporteridentification.md @@ -5,7 +5,7 @@ Additional exporter identification that may be required to ship in certain count ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `eori_number` | *Optional[str]* | :heavy_minus_sign: | Economic Operators' Registration and Identification (EORI) number. Must start with a 2 character
country code followed by a 6-17 character alphanumeric identifier (e.g. PL1234567890ABCDE).
More information on EORI. | PL123456790ABCDE | -| `tax_id` | [Optional[components.CustomsTaxIdentification]](../../models/components/customstaxidentification.md) | :heavy_minus_sign: | Tax identification that may be required to ship in certain countries. Typically used to assess duties on
goods that are crossing a border. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `eori_number` | *Optional[str]* | :heavy_minus_sign: | Economic Operators' Registration and Identification (EORI) number. Must start with a 2 character
country code followed by a 6-17 character alphanumeric identifier (e.g. PL1234567890ABCDE).
[More information on EORI.](https://ec.europa.eu/taxation_customs/business/customs-procedures/general-overview/economic-operators-registration-identification-number-eori_en) | PL123456790ABCDE | +| `tax_id` | [Optional[components.CustomsTaxIdentification]](../../models/components/customstaxidentification.md) | :heavy_minus_sign: | Tax identification that may be required to ship in certain countries. Typically used to assess duties on
goods that are crossing a border. | | \ No newline at end of file diff --git a/docs/models/components/customsitem.md b/docs/models/components/customsitem.md index f37c8432..82f0f9b9 100644 --- a/docs/models/components/customsitem.md +++ b/docs/models/components/customsitem.md @@ -6,17 +6,17 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `description` | *str* | :heavy_check_mark: | Text description of your item. | T-Shirt | +| `eccn_ear99` | *Optional[str]* | :heavy_minus_sign: | Export Control Classification Number, required on some exports from the United States. | | | `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID "123454" | | `net_weight` | *str* | :heavy_check_mark: | Total weight of this item, i.e. quantity * weight per item. | 5 | -| `origin_country` | *str* | :heavy_check_mark: | Country of origin of the item. Example: `US` or `DE`.
All accepted values can be found on the Official ISO Website. | | +| `origin_country` | *str* | :heavy_check_mark: | Country of origin of the item. Example: `US` or `DE`.
All accepted values can be found on the [Official ISO Website](http://www.iso.org/). | | | `quantity` | *int* | :heavy_check_mark: | Quantity of this item in the shipment you send. Must be greater than 0. | 20 | -| `value_amount` | *str* | :heavy_check_mark: | Total value of this item, i.e. quantity * value per item. | 200 | -| `value_currency` | *str* | :heavy_check_mark: | Currency used for value_amount. The official ISO 4217
currency codes are used, e.g. `USD` or `EUR`. | USD | -| `eccn_ear99` | *Optional[str]* | :heavy_minus_sign: | Export Control Classification Number, required on some exports from the United States. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID "123454" | | `sku_code` | *Optional[str]* | :heavy_minus_sign: | SKU code of the item, which is required by some carriers. | HM-123 | | `hs_code` | *Optional[str]* | :heavy_minus_sign: | HS code of the item, which is required by some carriers. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 50 character limit. | 0901.21 | | `tariff_number` | *Optional[str]* | :heavy_minus_sign: | The tariff number of the item. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 12 character limit. | | +| `value_amount` | *str* | :heavy_check_mark: | Total value of this item, i.e. quantity * value per item. | 200 | +| `value_currency` | *str* | :heavy_check_mark: | Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php)
currency codes are used, e.g. `USD` or `EUR`. | USD | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of object creation. | 2014-07-17T00:49:20.631Z | | `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given object. | d799c2679e644279b59fe661ac8fa488 | | `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the object. | shippotle@shippo.com | diff --git a/docs/models/components/customsitemcreaterequest.md b/docs/models/components/customsitemcreaterequest.md index a4190837..e8321b0f 100644 --- a/docs/models/components/customsitemcreaterequest.md +++ b/docs/models/components/customsitemcreaterequest.md @@ -6,14 +6,14 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `description` | *str* | :heavy_check_mark: | Text description of your item. | T-Shirt | +| `eccn_ear99` | *Optional[str]* | :heavy_minus_sign: | Export Control Classification Number, required on some exports from the United States. | | | `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID "123454" | | `net_weight` | *str* | :heavy_check_mark: | Total weight of this item, i.e. quantity * weight per item. | 5 | -| `origin_country` | *str* | :heavy_check_mark: | Country of origin of the item. Example: `US` or `DE`.
All accepted values can be found on the Official ISO Website. | | +| `origin_country` | *str* | :heavy_check_mark: | Country of origin of the item. Example: `US` or `DE`.
All accepted values can be found on the [Official ISO Website](http://www.iso.org/). | | | `quantity` | *int* | :heavy_check_mark: | Quantity of this item in the shipment you send. Must be greater than 0. | 20 | -| `value_amount` | *str* | :heavy_check_mark: | Total value of this item, i.e. quantity * value per item. | 200 | -| `value_currency` | *str* | :heavy_check_mark: | Currency used for value_amount. The official ISO 4217
currency codes are used, e.g. `USD` or `EUR`. | USD | -| `eccn_ear99` | *Optional[str]* | :heavy_minus_sign: | Export Control Classification Number, required on some exports from the United States. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | Order ID "123454" | | `sku_code` | *Optional[str]* | :heavy_minus_sign: | SKU code of the item, which is required by some carriers. | HM-123 | | `hs_code` | *Optional[str]* | :heavy_minus_sign: | HS code of the item, which is required by some carriers. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 50 character limit. | 0901.21 | -| `tariff_number` | *Optional[str]* | :heavy_minus_sign: | The tariff number of the item. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 12 character limit. | | \ No newline at end of file +| `tariff_number` | *Optional[str]* | :heavy_minus_sign: | The tariff number of the item. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 12 character limit. | | +| `value_amount` | *str* | :heavy_check_mark: | Total value of this item, i.e. quantity * value per item. | 200 | +| `value_currency` | *str* | :heavy_check_mark: | Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php)
currency codes are used, e.g. `USD` or `EUR`. | USD | \ No newline at end of file diff --git a/docs/models/components/customstaxidentificationtype.md b/docs/models/components/customstaxidentificationtype.md index daf76f93..7821b36b 100644 --- a/docs/models/components/customstaxidentificationtype.md +++ b/docs/models/components/customstaxidentificationtype.md @@ -6,6 +6,14 @@ Type of tax identification. * `IOSS` - Import One-Stop Shop * `ARN` - Australian Taxation Office Reference Number +## Example Usage + +```python +from shippo.models.components import CustomsTaxIdentificationType + +value = CustomsTaxIdentificationType.EIN +``` + ## Values diff --git a/docs/models/components/dangerousgoodscode.md b/docs/models/components/dangerousgoodscode.md index 533f4b95..0ea72554 100644 --- a/docs/models/components/dangerousgoodscode.md +++ b/docs/models/components/dangerousgoodscode.md @@ -1,6 +1,14 @@ # DangerousGoodsCode -Dangerous Goods Code (DHL eCommerce only). See Category Codes +Dangerous Goods Code (DHL eCommerce only). See [Category Codes](https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods) + +## Example Usage + +```python +from shippo.models.components import DangerousGoodsCode + +value = DangerousGoodsCode.ONE +``` ## Values diff --git a/docs/models/components/dangerousgoodsobject.md b/docs/models/components/dangerousgoodsobject.md index 95d5e6ad..5831b0ac 100644 --- a/docs/models/components/dangerousgoodsobject.md +++ b/docs/models/components/dangerousgoodsobject.md @@ -2,7 +2,7 @@ Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents are provided, only certain USPS service levels will be eligible. For more information, see our -guide on hazardous or dangerous materials shipping. +[guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). ## Fields diff --git a/docs/models/components/defaultparceltemplate.md b/docs/models/components/defaultparceltemplate.md index 70219e5d..98aa2d35 100644 --- a/docs/models/components/defaultparceltemplate.md +++ b/docs/models/components/defaultparceltemplate.md @@ -1,5 +1,7 @@ # DefaultParcelTemplate +Default parcel template + ## Fields diff --git a/docs/models/components/departmentnumber.md b/docs/models/components/departmentnumber.md index b9b255ef..71e1060a 100644 --- a/docs/models/components/departmentnumber.md +++ b/docs/models/components/departmentnumber.md @@ -8,5 +8,5 @@ Specify the department number field on the label (FedEx and UPS only). | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for department number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | -| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for department number. Up to 40 characters. | | +| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for department number. Up to 40 characters.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 characters \| | | | `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 3 | \ No newline at end of file diff --git a/docs/models/components/distanceunitenum.md b/docs/models/components/distanceunitenum.md index b770d9b7..a2fad86e 100644 --- a/docs/models/components/distanceunitenum.md +++ b/docs/models/components/distanceunitenum.md @@ -2,6 +2,14 @@ The measure unit used for length, width and height. +## Example Usage + +```python +from shippo.models.components import DistanceUnitEnum + +value = DistanceUnitEnum.CM +``` + ## Values diff --git a/docs/models/components/fedexconnectexistingownaccountparameters.md b/docs/models/components/fedexconnectexistingownaccountparameters.md index da66ec27..b376103d 100644 --- a/docs/models/components/fedexconnectexistingownaccountparameters.md +++ b/docs/models/components/fedexconnectexistingownaccountparameters.md @@ -1,15 +1,31 @@ # FedExConnectExistingOwnAccountParameters +In the case of masked fields, they should be handled carefully. + +Fields also must consider: +- Not providing a *fields* in parameters will not result in a change to any configured value +- Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value +- Providing *field* with null will clear the configured value +- Providing *field* with any other value will change the configured value and may affect the behavior of the account. + + ## Fields -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `first_name` | *str* | :heavy_check_mark: | First name of the account holder | -| `last_name` | *str* | :heavy_check_mark: | Last name of the account holder | -| `phone_number` | *str* | :heavy_check_mark: | Phone number of the account holder | -| `from_address_st` | *str* | :heavy_check_mark: | Street address of the account holder | -| `from_address_city` | *str* | :heavy_check_mark: | City of the account holder | -| `from_address_state` | *str* | :heavy_check_mark: | State of the account holder | -| `from_address_zip` | *str* | :heavy_check_mark: | Zip code of the account holder | -| `from_address_country_iso2` | *str* | :heavy_check_mark: | Country of the account holder | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `first_name` | *str* | :heavy_check_mark: | First name of the account holder | | +| `last_name` | *str* | :heavy_check_mark: | Last name of the account holder | | +| `phone_number` | *str* | :heavy_check_mark: | Phone number of the account holder | | +| `from_address_st` | *str* | :heavy_check_mark: | Street address of the account holder | | +| `from_address_city` | *str* | :heavy_check_mark: | City of the account holder | | +| `from_address_state` | *str* | :heavy_check_mark: | State of the account holder | | +| `from_address_zip` | *str* | :heavy_check_mark: | Zip code of the account holder | | +| `from_address_country_iso2` | *str* | :heavy_check_mark: | Country of the account holder | | +| `use_multi_factor_registration` | *bool* | :heavy_check_mark: | Must be true. FedEx accounts are registered using the multi-factor registration workflow. | | +| `verification_option` | [components.VerificationOption](../../models/components/verificationoption.md) | :heavy_check_mark: | Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE). | | +| `verification_pin` | *Optional[str]* | :heavy_minus_sign: | (optional) The PIN to verify the account. | | +| `verification_invoice_number` | *Optional[str]* | :heavy_minus_sign: | (optional) The invoice number to verify the account. | | +| `verification_invoice_amount` | *Optional[Decimal]* | :heavy_minus_sign: | (optional) The invoice amount to verify the account. | 340 | +| `verification_invoice_date` | [datetime](https://docs.python.org/3/library/datetime.html#datetime-objects) | :heavy_minus_sign: | (optional) The invoice date to verify the account. In the format `YYYY-MM-DD`. | 2024-03-09 | +| `verification_invoice_currency` | *Optional[str]* | :heavy_minus_sign: | (optional) The invoice currency to verify the account. | USD | \ No newline at end of file diff --git a/docs/models/components/instanttransactioncreaterequest.md b/docs/models/components/instanttransactioncreaterequest.md index 56e19657..1549ccc6 100644 --- a/docs/models/components/instanttransactioncreaterequest.md +++ b/docs/models/components/instanttransactioncreaterequest.md @@ -5,10 +5,10 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `carrier_account` | *str* | :heavy_check_mark: | N/A | b741b99f95e841639b54272834bc478c | -| `servicelevel_token` | *str* | :heavy_check_mark: | N/A | usps_priority | -| `shipment` | [components.ShipmentCreateRequest](../../models/components/shipmentcreaterequest.md) | :heavy_check_mark: | N/A | | | `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `carrier_account` | *str* | :heavy_check_mark: | N/A | b741b99f95e841639b54272834bc478c | | `label_file_type` | [Optional[components.LabelFileType]](../../models/components/labelfiletype.md) | :heavy_minus_sign: | N/A | PDF | | `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Order ID #12345 | +| `servicelevel_token` | *str* | :heavy_check_mark: | N/A | usps_priority | +| `shipment` | [components.ShipmentCreateRequest](../../models/components/shipmentcreaterequest.md) | :heavy_check_mark: | N/A | | | `order` | *Optional[str]* | :heavy_minus_sign: | N/A | adcfdddf8ec64b84ad22772bce3ea37a | \ No newline at end of file diff --git a/docs/models/components/insurance.md b/docs/models/components/insurance.md index 77c3dae9..914f5db4 100644 --- a/docs/models/components/insurance.md +++ b/docs/models/components/insurance.md @@ -1,8 +1,10 @@ # Insurance -To add 3rd party insurance powered by XCover, -specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance -by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance +To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/), +specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance +by additionally specifying `provider` (UPS, FedEx and OnTrac only). + +If you do not want to add insurance to your shipment, do not set these parameters. diff --git a/docs/models/components/insuranceprovider.md b/docs/models/components/insuranceprovider.md index 781d182c..7d9586ee 100644 --- a/docs/models/components/insuranceprovider.md +++ b/docs/models/components/insuranceprovider.md @@ -2,6 +2,14 @@ To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set `provider` to `FEDEX`, `UPS`, or `ONTRAC`. +## Example Usage + +```python +from shippo.models.components import InsuranceProvider + +value = InsuranceProvider.FEDEX +``` + ## Values diff --git a/docs/models/components/invoicenumber.md b/docs/models/components/invoicenumber.md index 0cc57033..9673d4fc 100644 --- a/docs/models/components/invoicenumber.md +++ b/docs/models/components/invoicenumber.md @@ -5,8 +5,8 @@ Specify the invoice number field on the label (FedEx and UPS only). ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for invoice number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | -| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for invoice number. Up to 40 characters. If
provided, this will be used on the label instead of shipment.customs_declaration.invoice. | | -| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 2 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for invoice number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | +| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for invoice number. Up to 40 characters. If
provided, this will be used on the label instead of shipment.customs_declaration.invoice.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 characters \| | | +| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 2 | \ No newline at end of file diff --git a/docs/models/components/labelfiletype.md b/docs/models/components/labelfiletype.md index 24660a37..5becea5b 100644 --- a/docs/models/components/labelfiletype.md +++ b/docs/models/components/labelfiletype.md @@ -1,5 +1,13 @@ # LabelFileType +## Example Usage + +```python +from shippo.models.components import LabelFileType + +value = LabelFileType.PNG +``` + ## Values diff --git a/docs/models/components/labelfiletypeenum.md b/docs/models/components/labelfiletypeenum.md index 61950429..fd52dbb7 100644 --- a/docs/models/components/labelfiletypeenum.md +++ b/docs/models/components/labelfiletypeenum.md @@ -1,7 +1,15 @@ # LabelFileTypeEnum -Print format of the label. If empty, will use the default format set from -the Shippo dashboard. +Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from +[the Shippo dashboard.](https://apps.goshippo.com/settings/labels) + +## Example Usage + +```python +from shippo.models.components import LabelFileTypeEnum + +value = LabelFileTypeEnum.PNG +``` ## Values diff --git a/docs/models/components/latitude.md b/docs/models/components/latitude.md index eb5f81f6..7560a2a9 100644 --- a/docs/models/components/latitude.md +++ b/docs/models/components/latitude.md @@ -1,5 +1,7 @@ # Latitude +Latitude of address + ## Supported Types diff --git a/docs/models/components/lineitem.md b/docs/models/components/lineitem.md index 6a08278e..baae9141 100644 --- a/docs/models/components/lineitem.md +++ b/docs/models/components/lineitem.md @@ -1,11 +1,16 @@ # LineItem +Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource +in the future. Currently it's a nested object within the order resource. + +A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. + ## Fields | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency of the total_price amount. | USD | +| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency of the `total_price` amount. | USD | | `manufacture_country` | *Optional[str]* | :heavy_minus_sign: | Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order. | US | | `max_delivery_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time this item needs to be delivered by, i.e. by when the carrier delivers it to the buyer.
This value is used by some platforms such as eBay to measure a seller's shipping time and performance.
It will be displayed in the Shippo dashboard. | 2016-07-23T00:00:00Z | | `max_ship_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time this item needs to be fulfilled by, i.e. by when the shipping label needs to be
created and handed over to the carrier. This value is used by some platforms such as eBay to measure
a seller's handling time and performance. It will be displayed in the Shippo dashboard. | 2016-07-23T00:00:00Z | @@ -14,6 +19,6 @@ | `title` | *Optional[str]* | :heavy_minus_sign: | Title of the line item. | Hippo Magazines | | `total_price` | *Optional[str]* | :heavy_minus_sign: | Total price paid by the buyer for this item (or these items, if quantity > 1). | 12.1 | | `variant_title` | *Optional[str]* | :heavy_minus_sign: | A variant is a specific variation of an item (e.g. `size M` or `color blue`).
Variants might be exposed as a separate resource in the future too.
Currently the variant title is a free text field describing the variant. | June Edition | -| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of this/these item(s). Instead of specifying the weight of all items,
you can also set the total_weight value of the order object. | 0.4 | +| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of this/these item(s). Instead of specifying the weight of all items,
you can also set the `total_weight` value of the order object. | 0.4 | | `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | | `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the line item object. | abf7d5675d744b6ea9fdb6f796b28f28 | \ No newline at end of file diff --git a/docs/models/components/lineitembase.md b/docs/models/components/lineitembase.md index f88c9303..72b8b282 100644 --- a/docs/models/components/lineitembase.md +++ b/docs/models/components/lineitembase.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency of the total_price amount. | USD | +| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency of the `total_price` amount. | USD | | `manufacture_country` | *Optional[str]* | :heavy_minus_sign: | Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order. | US | | `max_delivery_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time this item needs to be delivered by, i.e. by when the carrier delivers it to the buyer.
This value is used by some platforms such as eBay to measure a seller's shipping time and performance.
It will be displayed in the Shippo dashboard. | 2016-07-23T00:00:00Z | | `max_ship_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The date and time this item needs to be fulfilled by, i.e. by when the shipping label needs to be
created and handed over to the carrier. This value is used by some platforms such as eBay to measure
a seller's handling time and performance. It will be displayed in the Shippo dashboard. | 2016-07-23T00:00:00Z | @@ -14,5 +14,5 @@ | `title` | *Optional[str]* | :heavy_minus_sign: | Title of the line item. | Hippo Magazines | | `total_price` | *Optional[str]* | :heavy_minus_sign: | Total price paid by the buyer for this item (or these items, if quantity > 1). | 12.1 | | `variant_title` | *Optional[str]* | :heavy_minus_sign: | A variant is a specific variation of an item (e.g. `size M` or `color blue`).
Variants might be exposed as a separate resource in the future too.
Currently the variant title is a free text field describing the variant. | June Edition | -| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of this/these item(s). Instead of specifying the weight of all items,
you can also set the total_weight value of the order object. | 0.4 | +| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of this/these item(s). Instead of specifying the weight of all items,
you can also set the `total_weight` value of the order object. | 0.4 | | `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | \ No newline at end of file diff --git a/docs/models/components/liverate.md b/docs/models/components/liverate.md index b0fda4b1..88f89796 100644 --- a/docs/models/components/liverate.md +++ b/docs/models/components/liverate.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `amount` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the sender's country. | 5.5 | -| `amount_local` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the recipient's country. | 5.5 | -| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency used in the sender's country, refers to `amount`.
The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. | USD | -| `currency_local` | *Optional[str]* | :heavy_minus_sign: | Currency used in the recipient's country, refers to `amount_local`.
The official ISO 4217 currency codes are used, e.g. `USD` or "EUR". | USD | -| `estimated_days` | *Optional[int]* | :heavy_minus_sign: | The estimated days in transit of the rate that powers the shipping option, if available. | 2 | -| `title` | *Optional[str]* | :heavy_minus_sign: | The name of the service group being returned | Shipping Option 1 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the sender's country. | 5.5 | +| `amount_local` | *Optional[str]* | :heavy_minus_sign: | Final Rate price, expressed in the currency used in the recipient's country. | 5.5 | +| `currency` | *Optional[str]* | :heavy_minus_sign: | Currency used in the sender's country, refers to `amount`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. | USD | +| `currency_local` | *Optional[str]* | :heavy_minus_sign: | Currency used in the recipient's country, refers to `amount_local`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or "EUR". | USD | +| `estimated_days` | *Optional[int]* | :heavy_minus_sign: | The estimated days in transit of the rate that powers the shipping option, if available. | 2 | +| `title` | *Optional[str]* | :heavy_minus_sign: | The name of the service group being returned | Shipping Option 1 | \ No newline at end of file diff --git a/docs/models/components/liveratecreaterequest.md b/docs/models/components/liveratecreaterequest.md index 411829ae..e29c14ff 100644 --- a/docs/models/components/liveratecreaterequest.md +++ b/docs/models/components/liveratecreaterequest.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address_from` | [Optional[components.LiveRateCreateRequestAddressFrom]](../../models/components/liveratecreaterequestaddressfrom.md) | :heavy_minus_sign: | The sender address, which includes your name, company name, street address, city, state, zip code,
country, phone number, and email address (strings). Special characters should not be included in
any address element, especially name, company, and email. | | | `address_to` | [components.LiveRateCreateRequestAddressTo](../../models/components/liveratecreaterequestaddressto.md) | :heavy_check_mark: | The recipient address, which includes the recipient's name, company name, street address, city, state, zip code,
country, phone number, and email address (strings). Special characters should not be included in
any address element, especially name, company, and email. | | | `line_items` | List[[components.LineItem](../../models/components/lineitem.md)] | :heavy_check_mark: | Array of Line Item objects | | -| `address_from` | [Optional[components.LiveRateCreateRequestAddressFrom]](../../models/components/liveratecreaterequestaddressfrom.md) | :heavy_minus_sign: | The sender address, which includes your name, company name, street address, city, state, zip code,
country, phone number, and email address (strings). Special characters should not be included in
any address element, especially name, company, and email. | | | `parcel` | [Optional[components.LiveRateCreateRequestParcel]](../../models/components/liveratecreaterequestparcel.md) | :heavy_minus_sign: | Object ID for an existing User Parcel Template OR a fully formed Parcel object. | 5df144dca289442cv7a06 | \ No newline at end of file diff --git a/docs/models/components/longitude.md b/docs/models/components/longitude.md index 51c5e5c2..051eca20 100644 --- a/docs/models/components/longitude.md +++ b/docs/models/components/longitude.md @@ -1,5 +1,7 @@ # Longitude +Longitude of address + ## Supported Types diff --git a/docs/models/components/manifest.md b/docs/models/components/manifest.md index c6a615b9..2744cc9b 100644 --- a/docs/models/components/manifest.md +++ b/docs/models/components/manifest.md @@ -7,12 +7,12 @@ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `carrier_account` | *str* | :heavy_check_mark: | ID of carrier account | adcfdddf8ec64b84ad22772bce3ea37a | | `shipment_date` | *str* | :heavy_check_mark: | All shipments to be submitted on this day will be closed out.
Must be in the format `2014-01-18T00:35:03.463Z` (ISO 8601 date). | 2014-05-16T23:59:59Z | +| `transactions` | List[*str*] | :heavy_minus_sign: | IDs transactions to use. If you set this to null or not send this parameter,
Shippo will automatically assign all applicable transactions. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | | `address_from` | *str* | :heavy_check_mark: | ID of the Address object that should be used as pickup address for the scan form.
The USPS will validate this address before creating the scan form. | d799c2679e644279b59fe661ac8fa488 | | `documents` | List[*str*] | :heavy_check_mark: | An array containing the URLs to all returned manifest documents. | [
"https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D\u0026Expires=1402803835\u0026AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"
] | +| `errors` | List[*str*] | :heavy_minus_sign: | An array of codes and messages describing the error that occurred if any. | | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of object creation. | | | `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given object. | adcfdddf8ec64b84ad22772bce3ea37a | | `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the object. | shippotle@shippo.com | | `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of last object update. | | -| `status` | [components.ManifestStatus](../../models/components/manifeststatus.md) | :heavy_check_mark: | Indicates the status of the manifest. | SUCCESS | -| `transactions` | List[*str*] | :heavy_minus_sign: | IDs transactions to use. If you set this to null or not send this parameter,
Shippo will automatically assign all applicable transactions. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | -| `errors` | List[*str*] | :heavy_minus_sign: | An array of codes and messages describing the error that occurred if any. | | \ No newline at end of file +| `status` | [components.ManifestStatus](../../models/components/manifeststatus.md) | :heavy_check_mark: | Indicates the status of the manifest. | SUCCESS | \ No newline at end of file diff --git a/docs/models/components/manifestcreaterequest.md b/docs/models/components/manifestcreaterequest.md index 8eb11a0a..a2378357 100644 --- a/docs/models/components/manifestcreaterequest.md +++ b/docs/models/components/manifestcreaterequest.md @@ -7,6 +7,6 @@ | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | `carrier_account` | *str* | :heavy_check_mark: | ID of carrier account | adcfdddf8ec64b84ad22772bce3ea37a | | `shipment_date` | *str* | :heavy_check_mark: | All shipments to be submitted on this day will be closed out.
Must be in the format `2014-01-18T00:35:03.463Z` (ISO 8601 date). | 2014-05-16T23:59:59Z | -| `address_from` | [components.ManifestCreateRequestAddressFrom](../../models/components/manifestcreaterequestaddressfrom.md) | :heavy_check_mark: | N/A | | | `transactions` | List[*str*] | :heavy_minus_sign: | IDs transactions to use. If you set this to null or not send this parameter,
Shippo will automatically assign all applicable transactions. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | +| `address_from` | [components.ManifestCreateRequestAddressFrom](../../models/components/manifestcreaterequestaddressfrom.md) | :heavy_check_mark: | N/A | | | `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/manifeststatus.md b/docs/models/components/manifeststatus.md index c80d9323..45485f5b 100644 --- a/docs/models/components/manifeststatus.md +++ b/docs/models/components/manifeststatus.md @@ -2,6 +2,14 @@ Indicates the status of the manifest. +## Example Usage + +```python +from shippo.models.components import ManifestStatus + +value = ManifestStatus.QUEUED +``` + ## Values diff --git a/docs/models/components/objectinfo.md b/docs/models/components/objectinfo.md index e1c8b7b3..93847f0c 100644 --- a/docs/models/components/objectinfo.md +++ b/docs/models/components/objectinfo.md @@ -7,4 +7,5 @@ Holds internal state relevant to users. | Field | Type | Required | Description | | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `authentication` | [Optional[components.Authentication]](../../models/components/authentication.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `authentication` | [Optional[components.Authentication]](../../models/components/authentication.md) | :heavy_minus_sign: | N/A | +| `verification` | [Optional[components.Verification]](../../models/components/verification.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/objectresults.md b/docs/models/components/objectresults.md index 0d7ae9fb..673cf964 100644 --- a/docs/models/components/objectresults.md +++ b/docs/models/components/objectresults.md @@ -1,6 +1,6 @@ # ObjectResults -An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed` +An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed` ## Fields diff --git a/docs/models/components/objectstate.md b/docs/models/components/objectstate.md index 67ae0c8c..f0d411ac 100644 --- a/docs/models/components/objectstate.md +++ b/docs/models/components/objectstate.md @@ -2,6 +2,14 @@ A Parcel will only be valid when all required values have been sent and validated successfully. +## Example Usage + +```python +from shippo.models.components import ObjectState + +value = ObjectState.VALID +``` + ## Values diff --git a/docs/models/components/objectstateenum.md b/docs/models/components/objectstateenum.md index 53bb57df..ca5ca966 100644 --- a/docs/models/components/objectstateenum.md +++ b/docs/models/components/objectstateenum.md @@ -2,6 +2,14 @@ Indicates the validity of the enclosing object +## Example Usage + +```python +from shippo.models.components import ObjectStateEnum + +value = ObjectStateEnum.VALID +``` + ## Values diff --git a/docs/models/components/order.md b/docs/models/components/order.md index e444dc17..4f9ec5bb 100644 --- a/docs/models/components/order.md +++ b/docs/models/components/order.md @@ -3,25 +3,25 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `placed_at` | *str* | :heavy_check_mark: | Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo. | 2016-09-23T01:28:12Z | -| `to_address` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | Address object of the recipient / buyer. Will be returned expanded by default. | | -| `currency` | *Optional[str]* | :heavy_minus_sign: | **Required if total_price is provided**

Currency of the total_price and total_tax amounts. | USD | -| `notes` | *Optional[str]* | :heavy_minus_sign: | Custom buyer- or seller-provided notes about the order. | This customer is a VIP | -| `order_number` | *Optional[str]* | :heavy_minus_sign: | An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique. | #1068 | -| `order_status` | [Optional[components.OrderStatusEnum]](../../models/components/orderstatusenum.md) | :heavy_minus_sign: | Current state of the order. See the orders tutorial
for the logic of how the status is handled. | PAID | -| `shipping_cost` | *Optional[str]* | :heavy_minus_sign: | Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping. | 12.83 | -| `shipping_cost_currency` | *Optional[str]* | :heavy_minus_sign: | **Required if shipping_cost is provided**

Currency of the shipping_cost amount. | USD | -| `shipping_method` | *Optional[str]* | :heavy_minus_sign: | Shipping method (carrier + service or other free text description) chosen by the buyer.
This value can be different from the shipping method the seller will actually choose. | USPS First Class Package | -| `subtotal_price` | *Optional[str]* | :heavy_minus_sign: | N/A | 12.1 | -| `total_price` | *Optional[str]* | :heavy_minus_sign: | Total amount paid by the buyer for this order. | 24.93 | -| `total_tax` | *Optional[str]* | :heavy_minus_sign: | Total tax amount paid by the buyer for this order. | 0.0 | -| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of the order. | 0.4 | -| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | -| `from_address` | [Optional[components.Address]](../../models/components/address.md) | :heavy_minus_sign: | Address object of the sender / seller. Will be returned expanded by default. | | -| `line_items` | List[[components.LineItem](../../models/components/lineitem.md)] | :heavy_minus_sign: | Array of line item objects representing the items in this order.
All objects will be returned expanded by default. | | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the order object. | adcfdddf8ec64b84ad22772bce3ea37a | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the object. | shippotle@shippo.com | -| `shop_app` | [Optional[components.OrderShopAppEnum]](../../models/components/ordershopappenum.md) | :heavy_minus_sign: | Platform the order was created on and, if applicable, imported from.
Orders created via the Shippo API or dashboard will have the value "Shippo". | Shippo | -| `transactions` | List[[components.OrderTransaction](../../models/components/ordertransaction.md)] | :heavy_minus_sign: | Array of transaction objects representing all shipping labels purchased for this order.
All objects are returned expanded with a limited number of fields by default. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `currency` | *Optional[str]* | :heavy_minus_sign: | **Required if total_price is provided**

Currency of the `total_price` and `total_tax` amounts. | USD | +| `notes` | *Optional[str]* | :heavy_minus_sign: | Custom buyer- or seller-provided notes about the order. | This customer is a VIP | +| `order_number` | *Optional[str]* | :heavy_minus_sign: | An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique. | #1068 | +| `order_status` | [Optional[components.OrderStatusEnum]](../../models/components/orderstatusenum.md) | :heavy_minus_sign: | Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/)
for the logic of how the status is handled. | PAID | +| `placed_at` | *str* | :heavy_check_mark: | Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo. | 2016-09-23T01:28:12Z | +| `shipping_cost` | *Optional[str]* | :heavy_minus_sign: | Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping. | 12.83 | +| `shipping_cost_currency` | *Optional[str]* | :heavy_minus_sign: | **Required if shipping_cost is provided**

Currency of the `shipping_cost` amount. | USD | +| `shipping_method` | *Optional[str]* | :heavy_minus_sign: | Shipping method (carrier + service or other free text description) chosen by the buyer.
This value can be different from the shipping method the seller will actually choose. | USPS First Class Package | +| `subtotal_price` | *Optional[str]* | :heavy_minus_sign: | N/A | 12.1 | +| `total_price` | *Optional[str]* | :heavy_minus_sign: | Total amount paid by the buyer for this order. | 24.93 | +| `total_tax` | *Optional[str]* | :heavy_minus_sign: | Total tax amount paid by the buyer for this order. | 0.0 | +| `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of the order. | 0.4 | +| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | +| `from_address` | [Optional[components.Address]](../../models/components/address.md) | :heavy_minus_sign: | [Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default. | | +| `to_address` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | [Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default. | | +| `line_items` | List[[components.LineItem](../../models/components/lineitem.md)] | :heavy_minus_sign: | Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order.
All objects will be returned expanded by default. | | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the order object. | adcfdddf8ec64b84ad22772bce3ea37a | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the object. | shippotle@shippo.com | +| `shop_app` | [Optional[components.OrderShopAppEnum]](../../models/components/ordershopappenum.md) | :heavy_minus_sign: | Platform the order was created on and, if applicable, imported from.
Orders created via the Shippo API or dashboard will have the value "Shippo". | Shippo | +| `transactions` | List[[components.OrderTransaction](../../models/components/ordertransaction.md)] | :heavy_minus_sign: | Array of [transaction](/shippoapi/public-api/transactions) objects representing all shipping labels purchased for this order.
All objects are returned expanded with a limited number of fields by default. | | \ No newline at end of file diff --git a/docs/models/components/ordercreaterequest.md b/docs/models/components/ordercreaterequest.md index 095cbdb6..1dfc412a 100644 --- a/docs/models/components/ordercreaterequest.md +++ b/docs/models/components/ordercreaterequest.md @@ -5,19 +5,19 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `placed_at` | *str* | :heavy_check_mark: | Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo. | 2016-09-23T01:28:12Z | -| `to_address` | [components.AddressCreateRequest](../../models/components/addresscreaterequest.md) | :heavy_check_mark: | Address object of the recipient / buyer. Will be returned expanded by default. | | -| `currency` | *Optional[str]* | :heavy_minus_sign: | **Required if total_price is provided**

Currency of the total_price and total_tax amounts. | USD | +| `currency` | *Optional[str]* | :heavy_minus_sign: | **Required if total_price is provided**

Currency of the `total_price` and `total_tax` amounts. | USD | | `notes` | *Optional[str]* | :heavy_minus_sign: | Custom buyer- or seller-provided notes about the order. | This customer is a VIP | | `order_number` | *Optional[str]* | :heavy_minus_sign: | An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique. | #1068 | -| `order_status` | [Optional[components.OrderStatusEnum]](../../models/components/orderstatusenum.md) | :heavy_minus_sign: | Current state of the order. See the orders tutorial
for the logic of how the status is handled. | PAID | +| `order_status` | [Optional[components.OrderStatusEnum]](../../models/components/orderstatusenum.md) | :heavy_minus_sign: | Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/)
for the logic of how the status is handled. | PAID | +| `placed_at` | *str* | :heavy_check_mark: | Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo. | 2016-09-23T01:28:12Z | | `shipping_cost` | *Optional[str]* | :heavy_minus_sign: | Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping. | 12.83 | -| `shipping_cost_currency` | *Optional[str]* | :heavy_minus_sign: | **Required if shipping_cost is provided**

Currency of the shipping_cost amount. | USD | +| `shipping_cost_currency` | *Optional[str]* | :heavy_minus_sign: | **Required if shipping_cost is provided**

Currency of the `shipping_cost` amount. | USD | | `shipping_method` | *Optional[str]* | :heavy_minus_sign: | Shipping method (carrier + service or other free text description) chosen by the buyer.
This value can be different from the shipping method the seller will actually choose. | USPS First Class Package | | `subtotal_price` | *Optional[str]* | :heavy_minus_sign: | N/A | 12.1 | | `total_price` | *Optional[str]* | :heavy_minus_sign: | Total amount paid by the buyer for this order. | 24.93 | | `total_tax` | *Optional[str]* | :heavy_minus_sign: | Total tax amount paid by the buyer for this order. | 0.0 | | `weight` | *Optional[str]* | :heavy_minus_sign: | Total weight of the order. | 0.4 | | `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | -| `from_address` | [Optional[components.AddressCreateRequest]](../../models/components/addresscreaterequest.md) | :heavy_minus_sign: | Address object of the sender / seller. Will be returned expanded by default.. | | -| `line_items` | List[[components.LineItemBase](../../models/components/lineitembase.md)] | :heavy_minus_sign: | Array of line item objects representing the items in this order.
All objects will be returned expanded by default. | | \ No newline at end of file +| `from_address` | [Optional[components.AddressCreateRequest]](../../models/components/addresscreaterequest.md) | :heavy_minus_sign: | [Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default.. | | +| `to_address` | [components.AddressCreateRequest](../../models/components/addresscreaterequest.md) | :heavy_check_mark: | [Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default. | | +| `line_items` | List[[components.LineItemBase](../../models/components/lineitembase.md)] | :heavy_minus_sign: | Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order.
All objects will be returned expanded by default. | | \ No newline at end of file diff --git a/docs/models/components/ordershopappenum.md b/docs/models/components/ordershopappenum.md index 2c6cb1a3..cfdce218 100644 --- a/docs/models/components/ordershopappenum.md +++ b/docs/models/components/ordershopappenum.md @@ -3,6 +3,14 @@ Platform the order was created on and, if applicable, imported from. Orders created via the Shippo API or dashboard will have the value "Shippo". +## Example Usage + +```python +from shippo.models.components import OrderShopAppEnum + +value = OrderShopAppEnum.AMAZON +``` + ## Values diff --git a/docs/models/components/orderstatusenum.md b/docs/models/components/orderstatusenum.md index cd90ecf9..19e5e20f 100644 --- a/docs/models/components/orderstatusenum.md +++ b/docs/models/components/orderstatusenum.md @@ -1,8 +1,16 @@ # OrderStatusEnum -Current state of the order. See the orders tutorial +Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. +## Example Usage + +```python +from shippo.models.components import OrderStatusEnum + +value = OrderStatusEnum.UNKNOWN +``` + ## Values diff --git a/docs/models/components/parcel.md b/docs/models/components/parcel.md index e95184ea..a504e109 100644 --- a/docs/models/components/parcel.md +++ b/docs/models/components/parcel.md @@ -5,14 +5,14 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
The following values are supported for the `extra` field of the parcel object. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | | `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | | `weight` | *str* | :heavy_check_mark: | Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | | `distance_unit` | [components.DistanceUnitEnum](../../models/components/distanceunitenum.md) | :heavy_check_mark: | The measure unit used for length, width and height. | in | | `height` | *str* | :heavy_check_mark: | Height of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | | `length` | *str* | :heavy_check_mark: | Length of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | | `width` | *str* | :heavy_check_mark: | Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
See the Parcel Extra table below for all available services. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Parcel creation. | 2014-07-09T02:19:13.174Z | | `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Parcel object. This ID is required to create a Shipment object. | adcfdddf8ec64b84ad22772bce3ea37a | | `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the Parcel object. | shippotle@shippo.com | diff --git a/docs/models/components/parcelcreatefromtemplaterequest.md b/docs/models/components/parcelcreatefromtemplaterequest.md index 4b8b4926..351a2125 100644 --- a/docs/models/components/parcelcreatefromtemplaterequest.md +++ b/docs/models/components/parcelcreatefromtemplaterequest.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | -| `weight` | *str* | :heavy_check_mark: | Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `template` | [components.ParcelTemplateEnumSet](../../models/components/parceltemplateenumset.md) | :heavy_check_mark: | If template is passed, `length`, `width`, `height`, and `distance_unit` are not required | | -| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
See the Parcel Extra table below for all available services. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
The following values are supported for the `extra` field of the parcel object. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | +| `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | +| `weight` | *str* | :heavy_check_mark: | Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | +| `template` | [components.ParcelTemplateEnumSet](../../models/components/parceltemplateenumset.md) | :heavy_check_mark: | If template is passed, `length`, `width`, `height`, and `distance_unit` are not required | | \ No newline at end of file diff --git a/docs/models/components/parcelcreaterequest.md b/docs/models/components/parcelcreaterequest.md index da272e95..95e73478 100644 --- a/docs/models/components/parcelcreaterequest.md +++ b/docs/models/components/parcelcreaterequest.md @@ -3,13 +3,13 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | -| `weight` | *str* | :heavy_check_mark: | Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `distance_unit` | [components.DistanceUnitEnum](../../models/components/distanceunitenum.md) | :heavy_check_mark: | The measure unit used for length, width and height. | in | -| `height` | *str* | :heavy_check_mark: | Height of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `length` | *str* | :heavy_check_mark: | Length of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `width` | *str* | :heavy_check_mark: | Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | -| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
See the Parcel Extra table below for all available services. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `extra` | [Optional[components.ParcelExtra]](../../models/components/parcelextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested for each parcel in a multi-piece shipment.
The following values are supported for the `extra` field of the parcel object. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Customer ID 123456 | +| `mass_unit` | [components.WeightUnitEnum](../../models/components/weightunitenum.md) | :heavy_check_mark: | The unit used for weight. | lb | +| `weight` | *str* | :heavy_check_mark: | Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | +| `distance_unit` | [components.DistanceUnitEnum](../../models/components/distanceunitenum.md) | :heavy_check_mark: | The measure unit used for length, width and height. | in | +| `height` | *str* | :heavy_check_mark: | Height of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | +| `length` | *str* | :heavy_check_mark: | Length of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | +| `width` | *str* | :heavy_check_mark: | Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. | 1 | \ No newline at end of file diff --git a/docs/models/components/parcelextra.md b/docs/models/components/parcelextra.md index 2255216b..861c8bcf 100644 --- a/docs/models/components/parcelextra.md +++ b/docs/models/components/parcelextra.md @@ -1,14 +1,14 @@ # ParcelExtra -An object holding optional extra services to be requested for each parcel in a multi-piece shipment. -See the Parcel Extra table below for all available services. +An object holding optional extra services to be requested for each parcel in a multi-piece shipment. +The following values are supported for the `extra` field of the parcel object. ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `cod` | [Optional[components.Cod]](../../models/components/cod.md) | :heavy_minus_sign: | Specify collection on delivery details (UPS only). | -| `insurance` | [Optional[components.ParcelInsurance]](../../models/components/parcelinsurance.md) | :heavy_minus_sign: | To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters. | -| `reference_1` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. | -| `reference_2` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `cod` | [Optional[components.Cod]](../../models/components/cod.md) | :heavy_minus_sign: | Specify collection on delivery details (UPS only). | +| `insurance` | [Optional[components.ParcelInsurance]](../../models/components/parcelinsurance.md) | :heavy_minus_sign: | To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters. | +| `reference_1` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 40 characters (Express services); Max 30 characters (Ground services) \| | +| `reference_2` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 characters \| | \ No newline at end of file diff --git a/docs/models/components/parcelinsurance.md b/docs/models/components/parcelinsurance.md index be4b02c3..5fbca86e 100644 --- a/docs/models/components/parcelinsurance.md +++ b/docs/models/components/parcelinsurance.md @@ -1,6 +1,6 @@ # ParcelInsurance -To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters. +To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters. ## Fields diff --git a/docs/models/components/parcelinsuranceprovider.md b/docs/models/components/parcelinsuranceprovider.md index ea1bcef1..2864678b 100644 --- a/docs/models/components/parcelinsuranceprovider.md +++ b/docs/models/components/parcelinsuranceprovider.md @@ -2,6 +2,14 @@ To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set provider to `FEDEX`, `UPS`, or `ONTRAC`. +## Example Usage + +```python +from shippo.models.components import ParcelInsuranceProvider + +value = ParcelInsuranceProvider.FEDEX +``` + ## Values diff --git a/docs/models/components/parceltemplatearamexaustraliaenum.md b/docs/models/components/parceltemplatearamexaustraliaenum.md index f7c6b1b0..38374de6 100644 --- a/docs/models/components/parceltemplatearamexaustraliaenum.md +++ b/docs/models/components/parceltemplatearamexaustraliaenum.md @@ -8,6 +8,14 @@ | Fastway_Australia_Satchel_A5 | Satchel A5 | 210.00 x 148.00 x 64.00 mm| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateAramexAustraliaEnum + +value = ParcelTemplateAramexAustraliaEnum.FASTWAY_AUSTRALIA_SATCHEL_A2 +``` + ## Values diff --git a/docs/models/components/parceltemplatedhlecommerceenum.md b/docs/models/components/parceltemplatedhlecommerceenum.md index 904a2db8..45dc0604 100644 --- a/docs/models/components/parceltemplatedhlecommerceenum.md +++ b/docs/models/components/parceltemplatedhlecommerceenum.md @@ -6,6 +6,14 @@ | DHLeC_SM_Flats | Flats | 27.00 x 17.00 x 17.00 in| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateDHLeCommerceEnum + +value = ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR +``` + ## Values diff --git a/docs/models/components/parceltemplatedpdukenum.md b/docs/models/components/parceltemplatedpdukenum.md index 77cdf682..3af6a699 100644 --- a/docs/models/components/parceltemplatedpdukenum.md +++ b/docs/models/components/parceltemplatedpdukenum.md @@ -5,6 +5,14 @@ | DPD_UK_Express_Pak| DPD UK Express Pak | 530.00 x 400.00 x 100.00 mm| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateDPDUKEnum + +value = ParcelTemplateDPDUKEnum.DPD_UK_EXPRESS_PAK +``` + ## Values diff --git a/docs/models/components/parceltemplatefedexenum.md b/docs/models/components/parceltemplatefedexenum.md index 006f79ef..985969eb 100644 --- a/docs/models/components/parceltemplatefedexenum.md +++ b/docs/models/components/parceltemplatefedexenum.md @@ -11,7 +11,7 @@ | FedEx_Box_Medium_1 | FedEx® Medium Box (M1) | 13.25 x 11.50 x 2.38 in| | FedEx_Box_Medium_2 | FedEx® Medium Box (M2) | 11.25 x 8.75 x 4.38 in| | FedEx_Box_Small_1 | FedEx® Small Box (S1) | 12.38 x 10.88 x 1.50 in| -| FedEx_Box_Small_2 | FedEx® Small Box (S2) | 11.25 x 8.75 x 4.38 in| +| FedEx_Box_Small_2 | FedEx® Small Box (S2) | 11.25 x 8.75 x 2.38 in| | FedEx_Envelope | FedEx® Envelope | 12.50 x 9.50 x 0.80 in| | FedEx_Padded_Pak | FedEx® Padded Pak | 11.75 x 14.75 x 2.00 in| | FedEx_Pak_1 | FedEx® Large Pak | 15.50 x 12.00 x 0.80 in| @@ -20,6 +20,14 @@ | FedEx_XL_Pak | FedEx® Extra Large Pak | 17.50 x 20.75 x 2.00 in| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateFedExEnum + +value = ParcelTemplateFedExEnum.FED_EX_BOX_10KG +``` + ## Values diff --git a/docs/models/components/parceltemplateupsenum.md b/docs/models/components/parceltemplateupsenum.md index 390deb7e..e3ebbcfd 100644 --- a/docs/models/components/parceltemplateupsenum.md +++ b/docs/models/components/parceltemplateupsenum.md @@ -29,6 +29,14 @@ | UPS_Pallet | Pallet | 120.00 x 80.00 x 200.00 cm| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateUPSEnum + +value = ParcelTemplateUPSEnum.UPS_BOX_10KG +``` + ## Values diff --git a/docs/models/components/parceltemplateuspsenum.md b/docs/models/components/parceltemplateuspsenum.md index c252c600..186d0e4b 100644 --- a/docs/models/components/parceltemplateuspsenum.md +++ b/docs/models/components/parceltemplateuspsenum.md @@ -24,6 +24,14 @@ | USPS_SoftPack | Soft Pack Padded Envelope | Length and width defined in the Parcel| +## Example Usage + +```python +from shippo.models.components import ParcelTemplateUSPSEnum + +value = ParcelTemplateUSPSEnum.USPS_FLAT_RATE_CARDBOARD_ENVELOPE +``` + ## Values diff --git a/docs/models/components/paymentmethod.md b/docs/models/components/paymentmethod.md index b794d542..ea3c5bf5 100644 --- a/docs/models/components/paymentmethod.md +++ b/docs/models/components/paymentmethod.md @@ -1,9 +1,17 @@ # PaymentMethod Secured funds include money orders, certified cheques and others (see -UPS for details). +[UPS](https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html) for details). If no payment_method inputted the value defaults to "ANY".) +## Example Usage + +```python +from shippo.models.components import PaymentMethod + +value = PaymentMethod.SECURED_FUNDS +``` + ## Values diff --git a/docs/models/components/pickup.md b/docs/models/components/pickup.md index 0dcac2ba..d9942440 100644 --- a/docs/models/components/pickup.md +++ b/docs/models/components/pickup.md @@ -5,12 +5,12 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `carrier_account` | *str* | :heavy_check_mark: | The object ID of your USPS or DHL Express carrier account.
You can retrieve this from your Rate requests or our Carrier Accounts endpoint. | adcfdddf8ec64b84ad22772bce3ea37a | +| `carrier_account` | *str* | :heavy_check_mark: | The object ID of your USPS or DHL Express carrier account.
You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. | adcfdddf8ec64b84ad22772bce3ea37a | | `location` | [components.Location](../../models/components/location.md) | :heavy_check_mark: | Location where the parcel(s) will be picked up. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | | | `requested_end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The latest that you requested your parcels to be available for pickup.
Expressed in the timezone specified in the response. | | | `requested_start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The earliest that you requested your parcels to be ready for pickup.
Expressed in the timezone specified in the response. | | | `transactions` | List[*str*] | :heavy_check_mark: | The transaction(s) object ID(s) for the parcel(s) that need to be picked up. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Pickup creation. | | | `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Pickup object. | | | `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last Pickup update. | | diff --git a/docs/models/components/pickupbase.md b/docs/models/components/pickupbase.md index e3640ea8..37ef0768 100644 --- a/docs/models/components/pickupbase.md +++ b/docs/models/components/pickupbase.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `carrier_account` | *str* | :heavy_check_mark: | The object ID of your USPS or DHL Express carrier account.
You can retrieve this from your Rate requests or our Carrier Accounts endpoint. | adcfdddf8ec64b84ad22772bce3ea37a | -| `location` | [components.Location](../../models/components/location.md) | :heavy_check_mark: | Location where the parcel(s) will be picked up. | | -| `requested_end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The latest that you requested your parcels to be available for pickup.
Expressed in the timezone specified in the response. | | -| `requested_start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The earliest that you requested your parcels to be ready for pickup.
Expressed in the timezone specified in the response. | | -| `transactions` | List[*str*] | :heavy_check_mark: | The transaction(s) object ID(s) for the parcel(s) that need to be picked up. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `carrier_account` | *str* | :heavy_check_mark: | The object ID of your USPS or DHL Express carrier account.
You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. | adcfdddf8ec64b84ad22772bce3ea37a | +| `location` | [components.Location](../../models/components/location.md) | :heavy_check_mark: | Location where the parcel(s) will be picked up. | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you
want to attach to the object. | | +| `requested_end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The latest that you requested your parcels to be available for pickup.
Expressed in the timezone specified in the response. | | +| `requested_start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | The earliest that you requested your parcels to be ready for pickup.
Expressed in the timezone specified in the response. | | +| `transactions` | List[*str*] | :heavy_check_mark: | The transaction(s) object ID(s) for the parcel(s) that need to be picked up. | [
"adcfdddf8ec64b84ad22772bce3ea37a"
] | \ No newline at end of file diff --git a/docs/models/components/pickupstatus.md b/docs/models/components/pickupstatus.md index 031e2ab1..f9af6c65 100644 --- a/docs/models/components/pickupstatus.md +++ b/docs/models/components/pickupstatus.md @@ -2,6 +2,14 @@ Indicates the status of the pickup. +## Example Usage + +```python +from shippo.models.components import PickupStatus + +value = PickupStatus.PENDING +``` + ## Values diff --git a/docs/models/components/policy.md b/docs/models/components/policy.md new file mode 100644 index 00000000..8875e66b --- /dev/null +++ b/docs/models/components/policy.md @@ -0,0 +1,19 @@ +# Policy + +Policy to indicate if the Account needs multi-factor verification. + +## Example Usage + +```python +from shippo.models.components import Policy + +value = Policy.REQUIRED +``` + + +## Values + +| Name | Value | +| -------------- | -------------- | +| `REQUIRED` | required | +| `NOT_REQUIRED` | not-required | \ No newline at end of file diff --git a/docs/models/components/ponumber.md b/docs/models/components/ponumber.md index 67934f21..7bbafb0e 100644 --- a/docs/models/components/ponumber.md +++ b/docs/models/components/ponumber.md @@ -5,8 +5,8 @@ Specify the PO number field on the label (FedEx and UPS only). ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for PO number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | -| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for PO number. Up to 40 characters. If
this is provided, reference_2 will be ignored. | | -| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 2 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for PO number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | +| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for PO number. Up to 40 characters. If
this is provided, reference_2 will be ignored.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 characters \| | | +| `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 2 | \ No newline at end of file diff --git a/docs/models/components/preferreddeliverytimeframe.md b/docs/models/components/preferreddeliverytimeframe.md index 10f61b3c..1316e208 100644 --- a/docs/models/components/preferreddeliverytimeframe.md +++ b/docs/models/components/preferreddeliverytimeframe.md @@ -2,6 +2,14 @@ Required for DHL Germany Paket Sameday. Designates a desired timeframe for delivery. Format is `HHMMHHMM` +## Example Usage + +```python +from shippo.models.components import PreferredDeliveryTimeframe + +value = PreferredDeliveryTimeframe.TEN_MILLION_ONE_THOUSAND_TWO_HUNDRED +``` + ## Values diff --git a/docs/models/components/rate.md b/docs/models/components/rate.md index 2fd9eb8b..7ae01c58 100644 --- a/docs/models/components/rate.md +++ b/docs/models/components/rate.md @@ -7,22 +7,22 @@ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amount` | *str* | :heavy_check_mark: | Final Rate price, expressed in the currency used in the sender's country. | 5.5 | | `amount_local` | *str* | :heavy_check_mark: | Final Rate price, expressed in the currency used in the recipient's country. | 5.5 | -| `currency` | *str* | :heavy_check_mark: | Currency used in the sender's country, refers to `amount`.
The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. | USD | -| `currency_local` | *str* | :heavy_check_mark: | Currency used in the recipient's country, refers to `amount_local`.
The official ISO 4217 currency codes are used, e.g. `USD` or "EUR". | USD | +| `currency` | *str* | :heavy_check_mark: | Currency used in the sender's country, refers to `amount`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. | USD | +| `currency_local` | *str* | :heavy_check_mark: | Currency used in the recipient's country, refers to `amount_local`.
The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or "EUR". | USD | +| `arrives_by` | *Optional[str]* | :heavy_minus_sign: | Predicted time the carrier will deliver the package in the destination's local time zone. In the format `HH:MM:SS`. | 08:30:00 | | `attributes` | List[[components.Attribute](../../models/components/attribute.md)] | :heavy_check_mark: | An array containing specific attributes of this Rate in context of the entire shipment.
Attributes can be assigned `CHEAPEST`, `FASTEST`, or `BESTVALUE`. | | | `carrier_account` | *str* | :heavy_check_mark: | Object ID of the carrier account that has been used to retrieve the rate. | 078870331023437cb917f5187429b093 | -| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of Rate creation. | | -| `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given Rate object. | adcfdddf8ec64b84ad22772bce3ea37a | -| `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the rate object. | pp@gmail.com | -| `provider` | *str* | :heavy_check_mark: | Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`. | USPS | -| `servicelevel` | [components.ServiceLevelWithParent](../../models/components/servicelevelwithparent.md) | :heavy_check_mark: | N/A | | -| `shipment` | *str* | :heavy_check_mark: | N/A | adcfdddf8ec64b84ad22772bce3ea37a | -| `arrives_by` | *Optional[str]* | :heavy_minus_sign: | Predicted time the carrier will deliver the package in the destination's local time zone. In the format `HH:MM:SS`. | 08:30:00 | | `duration_terms` | *Optional[str]* | :heavy_minus_sign: | Further clarification of the transit times.
Often, this includes notes that the transit time as given in "days" is only an average, not a guaranteed time. | Delivery in 1 to 3 business days | | `estimated_days` | *Optional[int]* | :heavy_minus_sign: | Estimated transit time (duration) in days of the Parcel at the given servicelevel.
Please note that this is not binding, but only an average value as given by the provider.
Shippo is not able to guarantee any transit times. | 2 | | `included_insurance_price` | *Optional[str]* | :heavy_minus_sign: | Cost to the user to insure the Rate for the requested amount of coverage, if insurance coverage was requested.
Expressed in the currency used in the sender's country. Will be null if no insurance coverage was requested, or if insurance is requested from a non-standard insurance provider.
Please note this price is already included in the `amount` and `amount_local` fields on the Rate. Do not add this field to them. | 1.05 | | `messages` | List[[components.ResponseMessage](../../models/components/responsemessage.md)] | :heavy_minus_sign: | N/A | | +| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of Rate creation. | | +| `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given Rate object. | adcfdddf8ec64b84ad22772bce3ea37a | +| `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the rate object. | pp@gmail.com | +| `provider` | *str* | :heavy_check_mark: | Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`. | USPS | | `provider_image_75` | *Optional[str]* | :heavy_minus_sign: | URL to the provider logo with max. dimensions of 75*75px.
Please refer to the provider's Logo Usage Guidelines before using the logo. | https://cdn2.goshippo.com/providers/75/USPS.png | | `provider_image_200` | *Optional[str]* | :heavy_minus_sign: | URL to the provider logo with max. dimensions of 200*200px.
Please refer to the provider's Logo Usage Guidelines before using the logo. | https://cdn2.goshippo.com/providers/200/USPS.png | +| `servicelevel` | [components.ServiceLevelWithParent](../../models/components/servicelevelwithparent.md) | :heavy_check_mark: | N/A | | +| `shipment` | *str* | :heavy_check_mark: | N/A | adcfdddf8ec64b84ad22772bce3ea37a | | `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | | | `zone` | *Optional[str]* | :heavy_minus_sign: | The parcel's transit zone token. These tokens can vary depending on the provider. | 1 | \ No newline at end of file diff --git a/docs/models/components/rateunion.md b/docs/models/components/rateunion.md index b29bfb75..4937ddc7 100644 --- a/docs/models/components/rateunion.md +++ b/docs/models/components/rateunion.md @@ -3,7 +3,7 @@ ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. -
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. +Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. ## Supported Types diff --git a/docs/models/components/recipienttype.md b/docs/models/components/recipienttype.md index 5c3a6610..6f355138 100644 --- a/docs/models/components/recipienttype.md +++ b/docs/models/components/recipienttype.md @@ -2,6 +2,14 @@ Mandatory for Fedex only. License type of the recipient of the Alcohol Package. +## Example Usage + +```python +from shippo.models.components import RecipientType + +value = RecipientType.LICENSEE +``` + ## Values diff --git a/docs/models/components/refund.md b/docs/models/components/refund.md index 95b239d1..fa1b72ec 100644 --- a/docs/models/components/refund.md +++ b/docs/models/components/refund.md @@ -1,5 +1,7 @@ # Refund +Refund + ## Fields diff --git a/docs/models/components/refundrequestbody.md b/docs/models/components/refundrequestbody.md index c0c5d35b..1c678f74 100644 --- a/docs/models/components/refundrequestbody.md +++ b/docs/models/components/refundrequestbody.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | Example | | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `transaction` | *str* | :heavy_check_mark: | N/A | 915d94940ea54c3a80cbfa328722f5a1 | -| `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `transaction` | *str* | :heavy_check_mark: | N/A | 915d94940ea54c3a80cbfa328722f5a1 | \ No newline at end of file diff --git a/docs/models/components/refundstatus.md b/docs/models/components/refundstatus.md index 6e715d9e..0c1816ee 100644 --- a/docs/models/components/refundstatus.md +++ b/docs/models/components/refundstatus.md @@ -2,6 +2,14 @@ Indicates the status of the Refund. +## Example Usage + +```python +from shippo.models.components import RefundStatus + +value = RefundStatus.QUEUED +``` + ## Values diff --git a/docs/models/components/rmanumber.md b/docs/models/components/rmanumber.md index 08feb91a..eabeb57c 100644 --- a/docs/models/components/rmanumber.md +++ b/docs/models/components/rmanumber.md @@ -8,5 +8,5 @@ Specify the RMA number field on the label (FedEx and UPS only). | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `prefix` | *Optional[str]* | :heavy_minus_sign: | Custom prefix for RMA number field (ZPL labels only). Up to 11 characters, including trailing
spaces. Empty string indicates removal of default prefix. To use the default prefix, do not include
this property. | | -| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for RMA number. Up to 40 characters. | | +| `value` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label for RMA number. Up to 40 characters.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 20 characters \| | | | `ref_sort` | *Optional[int]* | :heavy_minus_sign: | Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers. | 1 | \ No newline at end of file diff --git a/docs/models/components/servicegroup.md b/docs/models/components/servicegroup.md index 167d4c23..a88c000a 100644 --- a/docs/models/components/servicegroup.md +++ b/docs/models/components/servicegroup.md @@ -3,16 +3,16 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | -| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | -| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

`LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.

`FLAT_RATE` - Returns a shipping option with the specified flat rate amount.

`FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | -| `object_id` | *str* | :heavy_check_mark: | The unique identifier of the given Service Group object. | 80feb1633d4a43c898f005850 | -| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | -| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | -| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | -| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | -| `is_active` | *Optional[bool]* | :heavy_minus_sign: | True if the service group is enabled, false otherwise. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | +| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | +| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | +| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | +| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | +| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

- `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE`: returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | +| `object_id` | *str* | :heavy_check_mark: | The unique identifier of the given Service Group object. | 80feb1633d4a43c898f005850 | +| `is_active` | *Optional[bool]* | :heavy_minus_sign: | True if the service group is enabled, false otherwise. | true | +| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/servicegroupaccountandservicelevel.md b/docs/models/components/servicegroupaccountandservicelevel.md index 8625bd74..ccd7562e 100644 --- a/docs/models/components/servicegroupaccountandservicelevel.md +++ b/docs/models/components/servicegroupaccountandservicelevel.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| `account_object_id` | *Optional[str]* | :heavy_minus_sign: | ID of a Carrier Account object | 80feb1633d4a43c898f0058506cfd82d | -| `service_level_token` | *Optional[str]* | :heavy_minus_sign: | Service level token, e.g. `usps_priority` or `fedex_ground`.

See Service Levels. | ups_next_day_air_saver | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `account_object_id` | *Optional[str]* | :heavy_minus_sign: | ID of a Carrier Account object | 80feb1633d4a43c898f0058506cfd82d | +| `service_level_token` | *Optional[str]* | :heavy_minus_sign: | Service level token, e.g. `usps_priority` or `fedex_ground`.
See [Service Levels](/shippoapi/public-api/service-levels). | ups_next_day_air_saver | \ No newline at end of file diff --git a/docs/models/components/servicegroupcreaterequest.md b/docs/models/components/servicegroupcreaterequest.md index 2e3e062f..00d190d9 100644 --- a/docs/models/components/servicegroupcreaterequest.md +++ b/docs/models/components/servicegroupcreaterequest.md @@ -3,14 +3,14 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | -| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | -| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

`LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.

`FLAT_RATE` - Returns a shipping option with the specified flat rate amount.

`FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | -| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | -| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | -| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | -| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | +| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | +| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | +| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | +| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | +| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

- `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE`: returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | +| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/servicegrouptypeenum.md b/docs/models/components/servicegrouptypeenum.md index 7c150b4d..e957293d 100644 --- a/docs/models/components/servicegrouptypeenum.md +++ b/docs/models/components/servicegrouptypeenum.md @@ -1,9 +1,18 @@ # ServiceGroupTypeEnum -The type of the service group.
-`LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
-`FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
-`FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` +The type of the service group. + +- `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. +- `FLAT_RATE`: returns a shipping option with the specified flat rate amount. +- `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + +## Example Usage + +```python +from shippo.models.components import ServiceGroupTypeEnum + +value = ServiceGroupTypeEnum.LIVE_RATE +``` ## Values diff --git a/docs/models/components/servicegroupupdaterequest.md b/docs/models/components/servicegroupupdaterequest.md index 42b25663..d3c8c7b9 100644 --- a/docs/models/components/servicegroupupdaterequest.md +++ b/docs/models/components/servicegroupupdaterequest.md @@ -3,16 +3,16 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | -| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | -| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

`LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.

`FLAT_RATE` - Returns a shipping option with the specified flat rate amount.

`FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | -| `object_id` | *str* | :heavy_check_mark: | The unique identifier of the given Service Group object. | 80feb1633d4a43c898f005850 | -| `is_active` | *bool* | :heavy_check_mark: | True if the service group is enabled, false otherwise. | true | -| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | -| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | -| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | -| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | -| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *str* | :heavy_check_mark: | Description for the service group | USPS shipping options | +| `flat_rate` | *Optional[str]* | :heavy_minus_sign: | String representation of an amount to be returned as the flat rate
if 1. The service group is of type `LIVE_RATE` and no matching rates
were found; or 2. The service group is of type `FLAT_RATE`. Either
integers or decimals are accepted. Required unless type is
`FREE_SHIPPING` | 5 | +| `flat_rate_currency` | *Optional[str]* | :heavy_minus_sign: | required unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_currency` | *Optional[str]* | :heavy_minus_sign: | optional unless type is `FREE_SHIPPING`. (ISO 4217 currency) | USD | +| `free_shipping_threshold_min` | *Optional[str]* | :heavy_minus_sign: | For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum
cart total (total cost of items in the cart) for this service group to be returned for rates at
checkout. Optional unless type is `FREE_SHIPPING` | 5 | +| `name` | *str* | :heavy_check_mark: | Name for the service group that will be shown to customers in the response | USPS Shipping | +| `rate_adjustment` | *Optional[int]* | :heavy_minus_sign: | The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount. | 15 | +| `type` | [components.ServiceGroupTypeEnum](../../models/components/servicegrouptypeenum.md) | :heavy_check_mark: | The type of the service group.

- `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE`: returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` | FLAT_RATE | +| `object_id` | *str* | :heavy_check_mark: | The unique identifier of the given Service Group object. | 80feb1633d4a43c898f005850 | +| `is_active` | *bool* | :heavy_check_mark: | True if the service group is enabled, false otherwise. | true | +| `service_levels` | List[[components.ServiceGroupAccountAndServiceLevel](../../models/components/servicegroupaccountandservicelevel.md)] | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/servicelevel.md b/docs/models/components/servicelevel.md index efac81cb..50a4bdfb 100644 --- a/docs/models/components/servicelevel.md +++ b/docs/models/components/servicelevel.md @@ -12,5 +12,5 @@ structure of the servicelevel - "name", "token", "terms", and "extended_token", | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | *Optional[str]* | :heavy_minus_sign: | Name of the Rate's servicelevel, e.g. `International Priority` or `Standard Post`.
A servicelevel commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties.
These names vary depending on the provider. | Priority Mail Express | | `terms` | *Optional[str]* | :heavy_minus_sign: | Further clarification of the service. | | -| `token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See servicelevels. | usps_priority_express | +| `token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See [servicelevels](/shippoapi/public-api/service-levels). | usps_priority_express | | `extended_token` | *Optional[str]* | :heavy_minus_sign: | Unique, extended version of the Service Level "token".
Guaranteed to be unique across all Service Levels, and may help offer insight into the specific Service Level it describes. | | \ No newline at end of file diff --git a/docs/models/components/servicelevelairterraenum.md b/docs/models/components/servicelevelairterraenum.md index eedef1d8..de5957f1 100644 --- a/docs/models/components/servicelevelairterraenum.md +++ b/docs/models/components/servicelevelairterraenum.md @@ -6,6 +6,14 @@ | airterra_postal | FastPost| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAirterraEnum + +value = ServiceLevelAirterraEnum.AIRTERRA_GROUND +``` + ## Values diff --git a/docs/models/components/servicelevelapcpostalenum.md b/docs/models/components/servicelevelapcpostalenum.md index 2a2493f4..b57d2da1 100644 --- a/docs/models/components/servicelevelapcpostalenum.md +++ b/docs/models/components/servicelevelapcpostalenum.md @@ -13,6 +13,14 @@ | apc_postal_parcelconnect_epmei | parcelConnect ePMEI| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAPCPostalEnum + +value = ServiceLevelAPCPostalEnum.APC_POSTAL_PARCELCONNECT_EXPEDITED +``` + ## Values diff --git a/docs/models/components/servicelevelapgenum.md b/docs/models/components/servicelevelapgenum.md index 0b0fea95..40e87d2e 100644 --- a/docs/models/components/servicelevelapgenum.md +++ b/docs/models/components/servicelevelapgenum.md @@ -8,6 +8,14 @@ | apg_eparcel_expedited | eParcel Expedited| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAPGEnum + +value = ServiceLevelAPGEnum.EPACKET +``` + ## Values diff --git a/docs/models/components/servicelevelaramexaustraliaenum.md b/docs/models/components/servicelevelaramexaustraliaenum.md index c18e0b6d..300c91dc 100644 --- a/docs/models/components/servicelevelaramexaustraliaenum.md +++ b/docs/models/components/servicelevelaramexaustraliaenum.md @@ -9,6 +9,14 @@ | fastway_australia_box_large | Box Large| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAramexAustraliaEnum + +value = ServiceLevelAramexAustraliaEnum.FASTWAY_AUSTRALIA_PARCEL +``` + ## Values diff --git a/docs/models/components/servicelevelasendiaenum.md b/docs/models/components/servicelevelasendiaenum.md index e613c5fd..0cf56246 100644 --- a/docs/models/components/servicelevelasendiaenum.md +++ b/docs/models/components/servicelevelasendiaenum.md @@ -12,6 +12,14 @@ | asendia_us_other | Asendia USA Other Services (custom)| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAsendiaEnum + +value = ServiceLevelAsendiaEnum.ASENDIA_US_PRIORITY_TRACKED +``` + ## Values diff --git a/docs/models/components/servicelevelaustraliapostenum.md b/docs/models/components/servicelevelaustraliapostenum.md index 4369b4a5..46d48ef4 100644 --- a/docs/models/components/servicelevelaustraliapostenum.md +++ b/docs/models/components/servicelevelaustraliapostenum.md @@ -14,6 +14,14 @@ | australia_post_parcel_post_return | Parcel Post Return| +## Example Usage + +```python +from shippo.models.components import ServiceLevelAustraliaPostEnum + +value = ServiceLevelAustraliaPostEnum.AUSTRALIA_POST_EXPRESS_POST +``` + ## Values diff --git a/docs/models/components/servicelevelbettertrucksenum.md b/docs/models/components/servicelevelbettertrucksenum.md index 65153f81..7cd67004 100644 --- a/docs/models/components/servicelevelbettertrucksenum.md +++ b/docs/models/components/servicelevelbettertrucksenum.md @@ -6,6 +6,14 @@ | better_trucks_next_day | Next Day| +## Example Usage + +```python +from shippo.models.components import ServiceLevelBetterTrucksEnum + +value = ServiceLevelBetterTrucksEnum.BETTER_TRUCKS_SAME_DAY +``` + ## Values diff --git a/docs/models/components/servicelevelcanadapostenum.md b/docs/models/components/servicelevelcanadapostenum.md index 2351d0b8..3e50cfed 100644 --- a/docs/models/components/servicelevelcanadapostenum.md +++ b/docs/models/components/servicelevelcanadapostenum.md @@ -18,6 +18,14 @@ | canada_post_international_parcel_air | International Parcel Air +## Example Usage + +```python +from shippo.models.components import ServiceLevelCanadaPostEnum + +value = ServiceLevelCanadaPostEnum.CANADA_POST_REGULAR_PARCEL +``` + ## Values diff --git a/docs/models/components/servicelevelcdlenum.md b/docs/models/components/servicelevelcdlenum.md deleted file mode 100644 index 80cd0f8e..00000000 --- a/docs/models/components/servicelevelcdlenum.md +++ /dev/null @@ -1,13 +0,0 @@ -# ServiceLevelCDLEnum - -|Token | Service name| -|:---|:---| -| cdl_next_day | Next Day| - - - -## Values - -| Name | Value | -| -------------- | -------------- | -| `CDL_NEXT_DAY` | cdl_next_day | \ No newline at end of file diff --git a/docs/models/components/servicelevelchronopostenum.md b/docs/models/components/servicelevelchronopostenum.md index 1e49a581..a9da42ae 100644 --- a/docs/models/components/servicelevelchronopostenum.md +++ b/docs/models/components/servicelevelchronopostenum.md @@ -10,6 +10,14 @@ | chronopost_express | Chrono Express International| +## Example Usage + +```python +from shippo.models.components import ServiceLevelChronopostEnum + +value = ServiceLevelChronopostEnum.CHRONOPOST_13 +``` + ## Values diff --git a/docs/models/components/servicelevelcolissimoenum.md b/docs/models/components/servicelevelcolissimoenum.md index 2d4993d5..fbc9a940 100644 --- a/docs/models/components/servicelevelcolissimoenum.md +++ b/docs/models/components/servicelevelcolissimoenum.md @@ -7,6 +7,14 @@ | colissimo_return_mainland_france | Retour France| +## Example Usage + +```python +from shippo.models.components import ServiceLevelColissimoEnum + +value = ServiceLevelColissimoEnum.COLISSIMO_HOME +``` + ## Values diff --git a/docs/models/components/servicelevelcorreosespanaenum.md b/docs/models/components/servicelevelcorreosespanaenum.md index 6c4d35f1..d35716bd 100644 --- a/docs/models/components/servicelevelcorreosespanaenum.md +++ b/docs/models/components/servicelevelcorreosespanaenum.md @@ -6,6 +6,14 @@ | correos_premium_home | Paquete Premium| +## Example Usage + +```python +from shippo.models.components import ServiceLevelCorreosEspanaEnum + +value = ServiceLevelCorreosEspanaEnum.CORREOS_STANDARD_HOME +``` + ## Values diff --git a/docs/models/components/serviceleveldeutschepostenum.md b/docs/models/components/serviceleveldeutschepostenum.md index 25c8f310..d1205f03 100644 --- a/docs/models/components/serviceleveldeutschepostenum.md +++ b/docs/models/components/serviceleveldeutschepostenum.md @@ -14,6 +14,14 @@ | deutsche_post_warenpost_international_l | Warenpost International L| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDeutschePostEnum + +value = ServiceLevelDeutschePostEnum.DEUTSCHE_POST_POSTKARTE +``` + ## Values diff --git a/docs/models/components/serviceleveldhlecommerceenum.md b/docs/models/components/serviceleveldhlecommerceenum.md index 771ec3d8..377148c1 100644 --- a/docs/models/components/serviceleveldhlecommerceenum.md +++ b/docs/models/components/serviceleveldhlecommerceenum.md @@ -32,6 +32,14 @@ | dhl_ecommerce_globalmail_packet_standard | GlobalMail Business Standard| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDHLeCommerceEnum + +value = ServiceLevelDHLeCommerceEnum.DHL_ECOMMERCE_MARKETING_PARCEL_EXPEDITED +``` + ## Values diff --git a/docs/models/components/serviceleveldhlexpressenum.md b/docs/models/components/serviceleveldhlexpressenum.md index f2eac56f..567ca9c6 100644 --- a/docs/models/components/serviceleveldhlexpressenum.md +++ b/docs/models/components/serviceleveldhlexpressenum.md @@ -26,6 +26,14 @@ | dhl_express_express_easy_nondoc | Express Easy NonDoc| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDHLExpressEnum + +value = ServiceLevelDHLExpressEnum.DHL_EXPRESS_DOMESTIC_EXPRESS_DOC +``` + ## Values diff --git a/docs/models/components/serviceleveldhlgermanyenum.md b/docs/models/components/serviceleveldhlgermanyenum.md index f3fb9de0..1bc32c6f 100644 --- a/docs/models/components/serviceleveldhlgermanyenum.md +++ b/docs/models/components/serviceleveldhlgermanyenum.md @@ -10,6 +10,14 @@ | dhl_germany_paket_sameday | DHL Germany Paket Sameday| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDHLGermanyEnum + +value = ServiceLevelDHLGermanyEnum.DHL_GERMANY_EUROPAKET +``` + ## Values diff --git a/docs/models/components/serviceleveldpddeenum.md b/docs/models/components/serviceleveldpddeenum.md index 5a0f0a24..84a7f5cb 100644 --- a/docs/models/components/serviceleveldpddeenum.md +++ b/docs/models/components/serviceleveldpddeenum.md @@ -5,6 +5,14 @@ | dpd_de_classic | DPD Classic| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDPDDEEnum + +value = ServiceLevelDPDDEEnum.DPD_DE_CLASSIC +``` + ## Values diff --git a/docs/models/components/serviceleveldpdukenum.md b/docs/models/components/serviceleveldpdukenum.md index bc5e3ac6..0aee15f3 100644 --- a/docs/models/components/serviceleveldpdukenum.md +++ b/docs/models/components/serviceleveldpdukenum.md @@ -21,6 +21,14 @@ | dpd_uk_pickup_returns | Pickup Returns| +## Example Usage + +```python +from shippo.models.components import ServiceLevelDPDUKEnum + +value = ServiceLevelDPDUKEnum.DPD_UK_SHIP_TO_SHOP +``` + ## Values diff --git a/docs/models/components/servicelevelenumset.md b/docs/models/components/servicelevelenumset.md index f8a7227b..450cc4e2 100644 --- a/docs/models/components/servicelevelenumset.md +++ b/docs/models/components/servicelevelenumset.md @@ -63,12 +63,6 @@ value: components.ServiceLevelBetterTrucksEnum = /* values here */ value: components.ServiceLevelCanadaPostEnum = /* values here */ ``` -### `components.ServiceLevelCDLEnum` - -```python -value: components.ServiceLevelCDLEnum = /* values here */ -``` - ### `components.ServiceLevelChronopostEnum` ```python @@ -183,10 +177,10 @@ value: components.ServiceLevelePostGlobalEnum = /* values here */ value: components.ServiceLevelRoyalMailEnum = /* values here */ ``` -### `components.ServiceLevelSendleEnum` +### `components.ServiceLevelRoyalMailSFEnum` ```python -value: components.ServiceLevelSendleEnum = /* values here */ +value: components.ServiceLevelRoyalMailSFEnum = /* values here */ ``` ### `components.ServiceLevelOnTracEnum` diff --git a/docs/models/components/servicelevelepostglobalenum.md b/docs/models/components/servicelevelepostglobalenum.md index b8ef0179..461a3d57 100644 --- a/docs/models/components/servicelevelepostglobalenum.md +++ b/docs/models/components/servicelevelepostglobalenum.md @@ -17,6 +17,14 @@ | rr_donnelley_emi | Express Mail International| +## Example Usage + +```python +from shippo.models.components import ServiceLevelePostGlobalEnum + +value = ServiceLevelePostGlobalEnum.RR_DONNELLEY_DOMESTIC_ECONOMY_PARCEL +``` + ## Values diff --git a/docs/models/components/servicelevelevriukenum.md b/docs/models/components/servicelevelevriukenum.md index 76ab3d0a..3fbc80d5 100644 --- a/docs/models/components/servicelevelevriukenum.md +++ b/docs/models/components/servicelevelevriukenum.md @@ -9,6 +9,14 @@ | hermes_uk_postable_nextday | Postable Next Day| +## Example Usage + +```python +from shippo.models.components import ServiceLevelEvriUKEnum + +value = ServiceLevelEvriUKEnum.HERMES_UK_COURIER_SERVICE +``` + ## Values diff --git a/docs/models/components/servicelevelfedexenum.md b/docs/models/components/servicelevelfedexenum.md index 33cc0080..021ddc16 100644 --- a/docs/models/components/servicelevelfedexenum.md +++ b/docs/models/components/servicelevelfedexenum.md @@ -28,6 +28,14 @@ | fedex_standard_overnight_extra_hours | Standard Overnight® EH | +## Example Usage + +```python +from shippo.models.components import ServiceLevelFedExEnum + +value = ServiceLevelFedExEnum.FEDEX_GROUND +``` + ## Values diff --git a/docs/models/components/servicelevelglobegisticsenum.md b/docs/models/components/servicelevelglobegisticsenum.md index 980a3f13..6e7c5d0a 100644 --- a/docs/models/components/servicelevelglobegisticsenum.md +++ b/docs/models/components/servicelevelglobegisticsenum.md @@ -16,6 +16,14 @@ | globegistics_ecom_international_surface_airlift | Globegistics eCom International Surface Air Lift| +## Example Usage + +```python +from shippo.models.components import ServiceLevelGlobegisticsEnum + +value = ServiceLevelGlobegisticsEnum.GLOBEGISTICS_PRIORITY_MAIL_EXPRESS_INTERNATIONAL +``` + ## Values diff --git a/docs/models/components/servicelevelglsusenum.md b/docs/models/components/servicelevelglsusenum.md index 2d929eb6..9d2bb372 100644 --- a/docs/models/components/servicelevelglsusenum.md +++ b/docs/models/components/servicelevelglsusenum.md @@ -10,6 +10,14 @@ | gls_us_sds | Saturday Delivery| +## Example Usage + +```python +from shippo.models.components import ServiceLevelGLSUSEnum + +value = ServiceLevelGLSUSEnum.GLS_US_CPS +``` + ## Values diff --git a/docs/models/components/serviceleveljitsuenum.md b/docs/models/components/serviceleveljitsuenum.md index ede468a1..93e6d243 100644 --- a/docs/models/components/serviceleveljitsuenum.md +++ b/docs/models/components/serviceleveljitsuenum.md @@ -6,6 +6,14 @@ | axlehire_next_day | Next Day| +## Example Usage + +```python +from shippo.models.components import ServiceLevelJitsuEnum + +value = ServiceLevelJitsuEnum.AXLEHIRE_SAME_DAY +``` + ## Values diff --git a/docs/models/components/servicelevellasershipenum.md b/docs/models/components/servicelevellasershipenum.md index f1266585..74f41e75 100644 --- a/docs/models/components/servicelevellasershipenum.md +++ b/docs/models/components/servicelevellasershipenum.md @@ -5,6 +5,14 @@ | lasership_routed_delivery | Routed Delivery| +## Example Usage + +```python +from shippo.models.components import ServiceLevelLasershipEnum + +value = ServiceLevelLasershipEnum.LASERSHIP_ROUTED_DELIVERY +``` + ## Values diff --git a/docs/models/components/servicelevellsoenum.md b/docs/models/components/servicelevellsoenum.md index bc8e46e1..1df35822 100644 --- a/docs/models/components/servicelevellsoenum.md +++ b/docs/models/components/servicelevellsoenum.md @@ -10,6 +10,14 @@ | lso_early_overnight | Early Overnight| +## Example Usage + +```python +from shippo.models.components import ServiceLevelLSOEnum + +value = ServiceLevelLSOEnum.LSO_GROUND +``` + ## Values diff --git a/docs/models/components/servicelevelmondialrelayenum.md b/docs/models/components/servicelevelmondialrelayenum.md index 565151d1..679c6c2a 100644 --- a/docs/models/components/servicelevelmondialrelayenum.md +++ b/docs/models/components/servicelevelmondialrelayenum.md @@ -5,6 +5,14 @@ | mondial_relay_pointrelais | Point Relais| +## Example Usage + +```python +from shippo.models.components import ServiceLevelMondialRelayEnum + +value = ServiceLevelMondialRelayEnum.MONDIAL_RELAY_POINTRELAIS +``` + ## Values diff --git a/docs/models/components/servicelevelontracenum.md b/docs/models/components/servicelevelontracenum.md index 5671269d..40aec950 100644 --- a/docs/models/components/servicelevelontracenum.md +++ b/docs/models/components/servicelevelontracenum.md @@ -7,6 +7,14 @@ | ontrac_sunrise | Sunrise| +## Example Usage + +```python +from shippo.models.components import ServiceLevelOnTracEnum + +value = ServiceLevelOnTracEnum.ONTRAC_GROUND +``` + ## Values diff --git a/docs/models/components/servicelevelparcelforceenum.md b/docs/models/components/servicelevelparcelforceenum.md index 2ac085f1..b0e8fb78 100644 --- a/docs/models/components/servicelevelparcelforceenum.md +++ b/docs/models/components/servicelevelparcelforceenum.md @@ -7,6 +7,14 @@ | parcelforce_expressam | Express AM| +## Example Usage + +```python +from shippo.models.components import ServiceLevelParcelforceEnum + +value = ServiceLevelParcelforceEnum.PARCELFORCE_EXPRESS48 +``` + ## Values diff --git a/docs/models/components/servicelevelpostitalianeenum.md b/docs/models/components/servicelevelpostitalianeenum.md index 002d11d8..6dfa2b57 100644 --- a/docs/models/components/servicelevelpostitalianeenum.md +++ b/docs/models/components/servicelevelpostitalianeenum.md @@ -5,6 +5,14 @@ | poste_italiane_delivery_business_express | Poste Delivery Business Express| +## Example Usage + +```python +from shippo.models.components import ServiceLevelPostItalianeEnum + +value = ServiceLevelPostItalianeEnum.POSTE_ITALIANE_DELIVERY_BUSINESS_EXPRESS +``` + ## Values diff --git a/docs/models/components/servicelevelpurolatorenum.md b/docs/models/components/servicelevelpurolatorenum.md index 59384ae2..4bd5a637 100644 --- a/docs/models/components/servicelevelpurolatorenum.md +++ b/docs/models/components/servicelevelpurolatorenum.md @@ -22,6 +22,14 @@ | purolator_express_international1200 | Express International 12pm| +## Example Usage + +```python +from shippo.models.components import ServiceLevelPurolatorEnum + +value = ServiceLevelPurolatorEnum.PUROLATOR_GROUND +``` + ## Values diff --git a/docs/models/components/servicelevelroyalmailenum.md b/docs/models/components/servicelevelroyalmailenum.md index a35c83b7..539a07b1 100644 --- a/docs/models/components/servicelevelroyalmailenum.md +++ b/docs/models/components/servicelevelroyalmailenum.md @@ -15,7 +15,7 @@ | royal_mail_standard_first_class | Standard First Class | royal_mail_standard_second_class | Standard Second Class | royal_mail_tracked_24_no_signature | Royal Mail Tracked 24 No Signature -| royal_mail_tracked_48_no_signature | Royal Mail Ttacked 48 No Signature +| royal_mail_tracked_48_no_signature | Royal Mail Tracked 48 No Signature | royal_mail_intl_bus_mail_lrg_ltr_zone_sort_pri | International Business Mail Large Letter Zone Sort Priority | royal_mail_intl_bus_parcels_tracked_zone_sort | International Business Parcels Tracked Zone Sort | royal_mail_intl_bus_parcels_tracked_country_priced | International Business Parcels Tracked Country Priced @@ -24,6 +24,14 @@ | royal_mail_48_flat_rate | Royal Mail 48 Parcel Flat Rate +## Example Usage + +```python +from shippo.models.components import ServiceLevelRoyalMailEnum + +value = ServiceLevelRoyalMailEnum.ROYAL_MAIL_TRACKED_LETTER_BOXABLE_24_NO_SIGNATURE +``` + ## Values diff --git a/docs/models/components/servicelevelroyalmailsfenum.md b/docs/models/components/servicelevelroyalmailsfenum.md new file mode 100644 index 00000000..cc15ac3a --- /dev/null +++ b/docs/models/components/servicelevelroyalmailsfenum.md @@ -0,0 +1,41 @@ +# ServiceLevelRoyalMailSFEnum + +|Token | Service name| +|:---|:---| +| royal_mail_sf_tracked_48 | Royal Mail Tracked 48| +| royal_mail_sf_tracked_48_for_post_office_drop | Royal Mail Tracked 48 for Post Office Drop| +| royal_mail_sf_international_tracked | Royal Mail International Tracked | +| royal_mail_sf_tracked_48_with_signature_confirmation | Royal Mail Tracked 48 with Signature | +| royal_mail_sf_tracked_48_for_post_office_drop_with_signature_confirmation | Royal Mail Tracked 48 for Post Office Drop with Signature | +| royal_mail_sf_tracked_24 | Royal Mail Tracked 24 | +| royal_mail_sf_tracked_24_for_post_office_drop | Royal Mail Tracked 24 for Post Office Drop | +| royal_mail_sf_tracked_24_for_post_office_drop_with_signature_confirmation | Royal Mail Tracked 24 for Post Office Drop with Signature | +| royal_mail_sf_international_tracked_for_post_office_drop | Royal Mail International Tracked for Post Office Drop | +| royal_mail_sf_international_tracked_with_signature_confirmation | Royal Mail International Tracked with Signature | +| royal_mail_sf_international_tracked_for_post_office_drop_with_signature_confirmation | Royal Mail International Tracked for Post Office Drop with Signature | + + +## Example Usage + +```python +from shippo.models.components import ServiceLevelRoyalMailSFEnum + +value = ServiceLevelRoyalMailSFEnum.ROYAL_MAIL_SF_TRACKED_48 +``` + + +## Values + +| Name | Value | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `ROYAL_MAIL_SF_TRACKED_48` | royal_mail_sf_tracked_48 | +| `ROYAL_MAIL_SF_TRACKED_48_FOR_POST_OFFICE_DROP` | royal_mail_sf_tracked_48_for_post_office_drop | +| `ROYAL_MAIL_SF_INTERNATIONAL_TRACKED` | royal_mail_sf_international_tracked | +| `ROYAL_MAIL_SF_TRACKED_48_WITH_SIGNATURE_CONFIRMATION` | royal_mail_sf_tracked_48_with_signature_confirmation | +| `ROYAL_MAIL_SF_TRACKED_48_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION` | royal_mail_sf_tracked_48_for_post_office_drop_with_signature_confirmation | +| `ROYAL_MAIL_SF_TRACKED_24` | royal_mail_sf_tracked_24 | +| `ROYAL_MAIL_SF_TRACKED_24_FOR_POST_OFFICE_DROP` | royal_mail_sf_tracked_24_for_post_office_drop | +| `ROYAL_MAIL_SF_TRACKED_24_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION` | royal_mail_sf_tracked_24_for_post_office_drop_with_signature_confirmation | +| `ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_FOR_POST_OFFICE_DROP` | royal_mail_sf_international_tracked_for_post_office_drop | +| `ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_WITH_SIGNATURE_CONFIRMATION` | royal_mail_sf_international_tracked_with_signature_confirmation | +| `ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION` | royal_mail_sf_international_tracked_for_post_office_drop_with_signature_confirmation | \ No newline at end of file diff --git a/docs/models/components/servicelevelsendleenum.md b/docs/models/components/servicelevelsendleenum.md deleted file mode 100644 index d0cc2501..00000000 --- a/docs/models/components/servicelevelsendleenum.md +++ /dev/null @@ -1,15 +0,0 @@ -# ServiceLevelSendleEnum - -|Token | Service name| -|:---|:---| -| sendle_parcel | Sendle Parcel| -| sendle_standard_dropoff | Sendle Standard Dropoff| - - - -## Values - -| Name | Value | -| ------------------------- | ------------------------- | -| `SENDLE_PARCEL` | sendle_parcel | -| `SENDLE_STANDARD_DROPOFF` | sendle_standard_dropoff | \ No newline at end of file diff --git a/docs/models/components/servicelevelswyftenum.md b/docs/models/components/servicelevelswyftenum.md index 4038ef7f..ce1a366a 100644 --- a/docs/models/components/servicelevelswyftenum.md +++ b/docs/models/components/servicelevelswyftenum.md @@ -6,6 +6,14 @@ | next_day | Next Day| +## Example Usage + +```python +from shippo.models.components import ServiceLevelSwyftEnum + +value = ServiceLevelSwyftEnum.SAME_DAY +``` + ## Values diff --git a/docs/models/components/serviceleveludsenum.md b/docs/models/components/serviceleveludsenum.md index d2c5fc7c..cd31586f 100644 --- a/docs/models/components/serviceleveludsenum.md +++ b/docs/models/components/serviceleveludsenum.md @@ -5,6 +5,14 @@ | uds_next_day | Next Day| +## Example Usage + +```python +from shippo.models.components import ServiceLevelUDSEnum + +value = ServiceLevelUDSEnum.UDS_NEXT_DAY +``` + ## Values diff --git a/docs/models/components/servicelevelupsenum.md b/docs/models/components/servicelevelupsenum.md index a05d2c7a..d2f2a4f8 100644 --- a/docs/models/components/servicelevelupsenum.md +++ b/docs/models/components/servicelevelupsenum.md @@ -29,6 +29,14 @@ | ups_access_point_economy | Access Point™ Economy| +## Example Usage + +```python +from shippo.models.components import ServiceLevelUPSEnum + +value = ServiceLevelUPSEnum.UPS_STANDARD +``` + ## Values diff --git a/docs/models/components/serviceleveluspsenum.md b/docs/models/components/serviceleveluspsenum.md index ca0caae1..e79e7ac6 100644 --- a/docs/models/components/serviceleveluspsenum.md +++ b/docs/models/components/serviceleveluspsenum.md @@ -11,6 +11,14 @@ | usps_ground_advantage | Ground Advantage | +## Example Usage + +```python +from shippo.models.components import ServiceLevelUSPSEnum + +value = ServiceLevelUSPSEnum.USPS_PRIORITY +``` + ## Values diff --git a/docs/models/components/servicelevelvehoenum.md b/docs/models/components/servicelevelvehoenum.md index 65c1b2da..35fee41d 100644 --- a/docs/models/components/servicelevelvehoenum.md +++ b/docs/models/components/servicelevelvehoenum.md @@ -6,6 +6,14 @@ | veho_premium_economy | Veho Premium Economy +## Example Usage + +```python +from shippo.models.components import ServiceLevelVehoEnum + +value = ServiceLevelVehoEnum.VEHO_GROUND_PLUS +``` + ## Values diff --git a/docs/models/components/servicelevelwithparent.md b/docs/models/components/servicelevelwithparent.md index 7b652c9e..247b45d3 100644 --- a/docs/models/components/servicelevelwithparent.md +++ b/docs/models/components/servicelevelwithparent.md @@ -9,6 +9,6 @@ Contains details regarding the service level for the given rate. | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | *Optional[str]* | :heavy_minus_sign: | Name of the Rate's servicelevel, e.g. `International Priority` or `Standard Post`.
A servicelevel commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties.
These names vary depending on the provider. | Priority Mail Express | | `terms` | *Optional[str]* | :heavy_minus_sign: | Further clarification of the service. | | -| `token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See servicelevels. | usps_priority_express | +| `token` | *Optional[str]* | :heavy_minus_sign: | Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`.
See [servicelevels](/shippoapi/public-api/service-levels). | usps_priority_express | | `extended_token` | *Optional[str]* | :heavy_minus_sign: | Unique, extended version of the Service Level "token".
Guaranteed to be unique across all Service Levels, and may help offer insight into the specific Service Level it describes. | | | `parent_servicelevel` | [Optional[components.ServiceLevel]](../../models/components/servicelevel.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/shipment.md b/docs/models/components/shipment.md index 0cf43639..ab6f1ee5 100644 --- a/docs/models/components/shipment.md +++ b/docs/models/components/shipment.md @@ -7,20 +7,20 @@ Shipment represents the parcel as retrieved from the database | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `extra` | [Optional[components.ShipmentExtra]](../../models/components/shipmentextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested. | | | `metadata` | *str* | :heavy_check_mark: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Customer ID 123456 | -| `address_from` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | Address object of the sender / seller. Will be returned expanded by default. | | -| `address_to` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | Address object of the recipient / buyer. Will be returned expanded by default. | | +| `shipment_date` | *Optional[str]* | :heavy_minus_sign: | Date the shipment will be tendered to the carrier. Must be in the format `2014-01-18T00:35:03.463Z`.
Defaults to current date and time if no value is provided. Please note that some carriers require this value to
be in the future, on a working day, or similar. | 2021-03-22T12:00:00Z | +| `address_from` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | [Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default. | | +| `address_return` | [Optional[components.Address]](../../models/components/address.md) | :heavy_minus_sign: | ID of the Address object where the shipment will be sent back to if it is not delivered (Only available for UPS, USPS, and Fedex shipments).

If this field is not set, your shipments will be returned to the address_from. | | +| `address_to` | [components.Address](../../models/components/address.md) | :heavy_check_mark: | [Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default. | | | `carrier_accounts` | List[*str*] | :heavy_check_mark: | An array of object_ids of the carrier account objects to be used for getting shipping rates for this shipment.
If no carrier account object_ids are set in this field, Shippo will attempt to generate rates using all the
carrier accounts that have the `active` field set. | | +| `customs_declaration` | [Optional[components.CustomsDeclaration]](../../models/components/customsdeclaration.md) | :heavy_minus_sign: | N/A | | | `messages` | List[[components.ResponseMessage](../../models/components/responsemessage.md)] | :heavy_check_mark: | N/A | | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of Shipment creation. | | | `object_id` | *str* | :heavy_check_mark: | Unique identifier of the given Shipment object. | adcfdddf8ec64b84ad22772bce3ea37a | | `object_owner` | *str* | :heavy_check_mark: | Username of the user who created the Shipment object. | pp@gmail.com | | `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | Date and time of last Shipment update. | | | `parcels` | List[[components.Parcel](../../models/components/parcel.md)] | :heavy_check_mark: | List of Parcel objects to be shipped. | | -| `rates` | List[[components.Rate](../../models/components/rate.md)] | :heavy_check_mark: | An array with all available rates. If async has been set to false in the request,
this will be populated with all available rates in the response. Otherwise rates will be created
asynchronously and this array will initially be empty. | | +| `rates` | List[[components.Rate](../../models/components/rate.md)] | :heavy_check_mark: | An array with all available rates. If `async` has been set to `false` in the request,
this will be populated with all available rates in the response. Otherwise rates will be created
asynchronously and this array will initially be empty. | | | `status` | [components.ShipmentStatus](../../models/components/shipmentstatus.md) | :heavy_check_mark: | `Waiting` shipments have been successfully submitted but not yet been processed.
`Queued` shipments are currently being processed.
`Success` shipments have been processed successfully, meaning that rate generation has concluded.
`Error` does not occur currently and is reserved for future use. | QUEUED | -| `extra` | [Optional[components.ShipmentExtra]](../../models/components/shipmentextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested. | | -| `shipment_date` | *Optional[str]* | :heavy_minus_sign: | Date the shipment will be tendered to the carrier. Must be in the format `2014-01-18T00:35:03.463Z`.
Defaults to current date and time if no value is provided. Please note that some carriers require this value to
be in the future, on a working day, or similar. | 2021-03-22T12:00:00Z | -| `address_return` | [Optional[components.Address]](../../models/components/address.md) | :heavy_minus_sign: | ID of the Address object where the shipment will be sent back to if it is not delivered
(Only available for UPS, USPS, and Fedex shipments).

If this field is not set, your shipments will be returned to the address_from. | | -| `customs_declaration` | [Optional[components.CustomsDeclaration]](../../models/components/customsdeclaration.md) | :heavy_minus_sign: | N/A | | | `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | | \ No newline at end of file diff --git a/docs/models/components/shipmentcreaterequest.md b/docs/models/components/shipmentcreaterequest.md index 88a2a0f7..f2184d0f 100644 --- a/docs/models/components/shipmentcreaterequest.md +++ b/docs/models/components/shipmentcreaterequest.md @@ -5,13 +5,13 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `address_from` | [components.ShipmentCreateRequestAddressFrom](../../models/components/shipmentcreaterequestaddressfrom.md) | :heavy_check_mark: | N/A | | -| `address_to` | [components.ShipmentCreateRequestAddressTo](../../models/components/shipmentcreaterequestaddressto.md) | :heavy_check_mark: | N/A | | -| `parcels` | List[[components.ShipmentCreateRequestParcel](../../models/components/shipmentcreaterequestparcel.md)] | :heavy_check_mark: | N/A | | | `extra` | [Optional[components.ShipmentExtra]](../../models/components/shipmentextra.md) | :heavy_minus_sign: | An object holding optional extra services to be requested. | | | `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Customer ID 123456 | | `shipment_date` | *Optional[str]* | :heavy_minus_sign: | Date the shipment will be tendered to the carrier. Must be in the format `2014-01-18T00:35:03.463Z`.
Defaults to current date and time if no value is provided. Please note that some carriers require this value to
be in the future, on a working day, or similar. | 2021-03-22T12:00:00Z | +| `address_from` | [components.ShipmentCreateRequestAddressFrom](../../models/components/shipmentcreaterequestaddressfrom.md) | :heavy_check_mark: | N/A | | | `address_return` | [Optional[components.AddressReturn]](../../models/components/addressreturn.md) | :heavy_minus_sign: | N/A | | +| `address_to` | [components.ShipmentCreateRequestAddressTo](../../models/components/shipmentcreaterequestaddressto.md) | :heavy_check_mark: | N/A | | | `customs_declaration` | [Optional[components.CustomsDeclarationUnion]](../../models/components/customsdeclarationunion.md) | :heavy_minus_sign: | N/A | | | `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | | -| `carrier_accounts` | List[*str*] | :heavy_minus_sign: | List of Carrier Accounts `object_id`s used to filter
the returned rates. If set, only rates from these carriers will be returned. | [
"065a4a8c10d24a34ab932163a1b87f52",
"73f706f4bdb94b54a337563840ce52b0"
] | \ No newline at end of file +| `carrier_accounts` | List[*str*] | :heavy_minus_sign: | List of [Carrier Accounts](/shippoapi/public-api/carrier-accounts) `object_id`s used to filter
the returned rates. If set, only rates from these carriers will be returned. | [
"065a4a8c10d24a34ab932163a1b87f52",
"73f706f4bdb94b54a337563840ce52b0"
] | +| `parcels` | List[[components.ShipmentCreateRequestParcel](../../models/components/shipmentcreaterequestparcel.md)] | :heavy_check_mark: | List of parcels to be shipped.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 items \| | | \ No newline at end of file diff --git a/docs/models/components/shipmentextra.md b/docs/models/components/shipmentextra.md index 735a9b5b..7156a14d 100644 --- a/docs/models/components/shipmentextra.md +++ b/docs/models/components/shipmentextra.md @@ -5,55 +5,56 @@ An object holding optional extra services to be requested. ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `accounts_receivable_customer_account` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `alcohol` | [Optional[components.Alcohol]](../../models/components/alcohol.md) | :heavy_minus_sign: | Indicates that a shipment contains Alcohol (Fedex and UPS only). | -| `ancillary_endorsement` | [Optional[components.AncillaryEndorsement]](../../models/components/ancillaryendorsement.md) | :heavy_minus_sign: | Specify an ancillary service endorsement to provide the USPS with instructions on how to handle undeliverable-as-addressed pieces (DHL eCommerce only). | -| `appropriation_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `authority_to_leave` | *Optional[bool]* | :heavy_minus_sign: | Request `true` to give carrier permission to leave the parcel in a safe place if no one answers the
door (where supported). When set to `false`, if no one is available to receive the item, the parcel
will not be left (*surcharges may be applicable). | -| `bill_of_lading_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `billing` | [Optional[components.Billing]](../../models/components/billing.md) | :heavy_minus_sign: | Specify billing details (UPS, FedEx, and DHL Germany only). | -| `bypass_address_validation` | *Optional[bool]* | :heavy_minus_sign: | Bypasses address validation (USPS, UPS, & LaserShip only). | -| `carbon_neutral` | *Optional[bool]* | :heavy_minus_sign: | Request carbon offsets by passing true (UPS only). | -| `carrier_hub_id` | *Optional[str]* | :heavy_minus_sign: | Identifies the carrier injection site. | -| `carrier_hub_travel_time` | *Optional[int]* | :heavy_minus_sign: | Travel time in hours from fulfillment center to carrier injection site. | -| `cod` | [Optional[components.Cod]](../../models/components/cod.md) | :heavy_minus_sign: | Specify collection on delivery details (UPS only). | -| `cod_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `container_type` | *Optional[str]* | :heavy_minus_sign: | Specify container type. | -| `critical_pull_time` | *Optional[str]* | :heavy_minus_sign: | Carrier arrival time to pickup packages from the fulfillment center.
UTC format: `%Y-%m-%dT%H:%M:%SZ` | -| `customer_branch` | *Optional[str]* | :heavy_minus_sign: | Specify customer branch (Lasership only). | -| `customer_reference` | [Optional[components.CustomerReference]](../../models/components/customerreference.md) | :heavy_minus_sign: | Specify the reference field on the label (FedEx and UPS only). | -| `dangerous_goods` | [Optional[components.DangerousGoodsObject]](../../models/components/dangerousgoodsobject.md) | :heavy_minus_sign: | Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents
are provided, only certain USPS service levels will be eligible. For more information, see our
guide on hazardous or dangerous materials shipping. | -| `dangerous_goods_code` | [Optional[components.DangerousGoodsCode]](../../models/components/dangerousgoodscode.md) | :heavy_minus_sign: | Dangerous Goods Code (DHL eCommerce only). See Category Codes | -| `dealer_order_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `delivery_instructions` | *Optional[str]* | :heavy_minus_sign: | Specify delivery instructions. Up to 500 characters. (FedEx and OnTrac only). | -| `dept_number` | [Optional[components.DepartmentNumber]](../../models/components/departmentnumber.md) | :heavy_minus_sign: | Specify the department number field on the label (FedEx and UPS only). | -| `dry_ice` | [Optional[components.DryIce]](../../models/components/dryice.md) | :heavy_minus_sign: | Specify that the package contains Dry Ice (FedEx, Veho, and UPS only). | -| `fda_product_code` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `fulfillment_center` | *Optional[str]* | :heavy_minus_sign: | The fulfilment center where the package originates from. | -| `insurance` | [Optional[components.Insurance]](../../models/components/insurance.md) | :heavy_minus_sign: | To add 3rd party insurance powered by XCover,
specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance
by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance
to your shipment, do not set these parameters. | -| `invoice_number` | [Optional[components.InvoiceNumber]](../../models/components/invoicenumber.md) | :heavy_minus_sign: | Specify the invoice number field on the label (FedEx and UPS only). | -| `is_return` | *Optional[bool]* | :heavy_minus_sign: | This field specifies if it is a scan-based return shipment. See the Create a return shipment section for more details. | -| `lasership_attrs` | List[[components.ShipmentExtraLasershipAttributesEnum](../../models/components/shipmentextralasershipattributesenum.md)] | :heavy_minus_sign: | Specify Lasership Attributes (Lasership only). Multiple options accepted. | -| `lasership_declared_value` | *Optional[str]* | :heavy_minus_sign: | Declared value (Lasership only). Defaults to `50.00`. | -| `manifest_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `model_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `part_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `po_number` | [Optional[components.PoNumber]](../../models/components/ponumber.md) | :heavy_minus_sign: | Specify the PO number field on the label (FedEx and UPS only). | -| `preferred_delivery_timeframe` | [Optional[components.PreferredDeliveryTimeframe]](../../models/components/preferreddeliverytimeframe.md) | :heavy_minus_sign: | Required for DHL Germany Paket Sameday. Designates a desired timeframe for delivery. Format is `HHMMHHMM` | -| `premium` | *Optional[bool]* | :heavy_minus_sign: | Add premium service to a shipment (DHL Germany international shipments only). | -| `production_code` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `purchase_request_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `qr_code_requested` | *Optional[bool]* | :heavy_minus_sign: | Request a QR code for a given transaction when creating a shipping label (USPS domestic and Evri UK only). | -| `reference_1` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. | -| `reference_2` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference. | -| `request_retail_rates` | *Optional[bool]* | :heavy_minus_sign: | Returns retail rates instead of account-based rates (UPS and FedEx only). | -| `return_service_type` | [Optional[components.ReturnServiceType]](../../models/components/returnservicetype.md) | :heavy_minus_sign: | Request additional return option for return shipments (UPS and Lasership only). | -| `rma_number` | [Optional[components.RmaNumber]](../../models/components/rmanumber.md) | :heavy_minus_sign: | Specify the RMA number field on the label (FedEx and UPS only). | -| `saturday_delivery` | *Optional[bool]* | :heavy_minus_sign: | Marks shipment as to be delivered on a Saturday. | -| `salesperson_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `serial_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `signature_confirmation` | [Optional[components.SignatureConfirmation]](../../models/components/signatureconfirmation.md) | :heavy_minus_sign: | Request standard or adult signature confirmation. You can alternatively request Certified Mail (USPS only)
or Indirect signature (FedEx only) or Carrier Confirmation (Deutsche Post only). | -| `store_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | -| `transaction_reference_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `accounts_receivable_customer_account` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `alcohol` | [Optional[components.Alcohol]](../../models/components/alcohol.md) | :heavy_minus_sign: | Indicates that a shipment contains Alcohol (Fedex and UPS only). | +| `ancillary_endorsement` | [Optional[components.AncillaryEndorsement]](../../models/components/ancillaryendorsement.md) | :heavy_minus_sign: | Specify an ancillary service endorsement to provide the USPS with instructions on how to handle undeliverable-as-addressed pieces (DHL eCommerce only). | +| `appropriation_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `authority_to_leave` | *Optional[bool]* | :heavy_minus_sign: | Request `true` to give carrier permission to leave the parcel in a safe place if no one answers the
door (where supported). When set to `false`, if no one is available to receive the item, the parcel
will not be left (*surcharges may be applicable). | +| `bill_of_lading_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `billing` | [Optional[components.Billing]](../../models/components/billing.md) | :heavy_minus_sign: | Specify billing details (UPS, FedEx, and DHL Germany only). | +| `bypass_address_validation` | *Optional[bool]* | :heavy_minus_sign: | Bypasses address validation (USPS, UPS, & LaserShip only). | +| `carbon_neutral` | *Optional[bool]* | :heavy_minus_sign: | Request carbon offsets by passing true (UPS only). | +| `carrier_hub_id` | *Optional[str]* | :heavy_minus_sign: | Identifies the carrier injection site. | +| `carrier_hub_travel_time` | *Optional[int]* | :heavy_minus_sign: | Travel time in hours from fulfillment center to carrier injection site. | +| `cod` | [Optional[components.Cod]](../../models/components/cod.md) | :heavy_minus_sign: | Specify collection on delivery details (UPS only). | +| `cod_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `container_type` | *Optional[str]* | :heavy_minus_sign: | Specify container type. | +| `critical_pull_time` | *Optional[str]* | :heavy_minus_sign: | Carrier arrival time to pickup packages from the fulfillment center.
UTC format: `%Y-%m-%dT%H:%M:%SZ` | +| `customer_branch` | *Optional[str]* | :heavy_minus_sign: | Specify customer branch (Lasership only). | +| `customer_reference` | [Optional[components.CustomerReference]](../../models/components/customerreference.md) | :heavy_minus_sign: | Specify the reference field on the label (FedEx and UPS only). | +| `dangerous_goods` | [Optional[components.DangerousGoodsObject]](../../models/components/dangerousgoodsobject.md) | :heavy_minus_sign: | Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents
are provided, only certain USPS service levels will be eligible. For more information, see our
[guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). | +| `dangerous_goods_code` | [Optional[components.DangerousGoodsCode]](../../models/components/dangerousgoodscode.md) | :heavy_minus_sign: | Dangerous Goods Code (DHL eCommerce only). See [Category Codes](https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods) | +| `dealer_order_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `delivery_instructions` | *Optional[str]* | :heavy_minus_sign: | Specify delivery instructions. Up to 500 characters. (FedEx and OnTrac only). | +| `dept_number` | [Optional[components.DepartmentNumber]](../../models/components/departmentnumber.md) | :heavy_minus_sign: | Specify the department number field on the label (FedEx and UPS only). | +| `dry_ice` | [Optional[components.DryIce]](../../models/components/dryice.md) | :heavy_minus_sign: | Specify that the package contains Dry Ice (FedEx, Veho, and UPS only). | +| `fda_product_code` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `fulfillment_center` | *Optional[str]* | :heavy_minus_sign: | The fulfilment center where the package originates from. | +| `insurance` | [Optional[components.Insurance]](../../models/components/insurance.md) | :heavy_minus_sign: | To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/),
specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance
by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance
to your shipment, do not set these parameters. | +| `invoice_number` | [Optional[components.InvoiceNumber]](../../models/components/invoicenumber.md) | :heavy_minus_sign: | Specify the invoice number field on the label (FedEx and UPS only). | +| `is_return` | *Optional[bool]* | :heavy_minus_sign: | This field specifies if it is a scan-based return shipment. See the [Create a return shipment](https://docs.goshippo.com/docs/shipments/returns/) section for more details. | +| `lasership_attrs` | List[[components.ShipmentExtraLasershipAttributesEnum](../../models/components/shipmentextralasershipattributesenum.md)] | :heavy_minus_sign: | Specify Lasership Attributes (Lasership only). Multiple options accepted. | +| `lasership_declared_value` | *Optional[str]* | :heavy_minus_sign: | Declared value (Lasership only). Defaults to `50.00`. | +| `manifest_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `model_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `part_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `po_number` | [Optional[components.PoNumber]](../../models/components/ponumber.md) | :heavy_minus_sign: | Specify the PO number field on the label (FedEx and UPS only). | +| `preferred_delivery_timeframe` | [Optional[components.PreferredDeliveryTimeframe]](../../models/components/preferreddeliverytimeframe.md) | :heavy_minus_sign: | Required for DHL Germany Paket Sameday. Designates a desired timeframe for delivery. Format is `HHMMHHMM` | +| `premium` | *Optional[bool]* | :heavy_minus_sign: | Add premium service to a shipment (DHL Germany international shipments only). | +| `production_code` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `purchase_request_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `qr_code_requested` | *Optional[bool]* | :heavy_minus_sign: | Request a QR code for a given transaction when creating a shipping label (USPS domestic and Evri UK only). | +| `reference_1` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 40 characters (Express services); Max 30 characters (Ground services) \| | +| `reference_2` | *Optional[str]* | :heavy_minus_sign: | Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference.

**Carrier-Specific Constraints:**
\| Carrier \| Constraints \|
\|:---\|:---\|
\| FedEx \| Max 30 characters \| | +| `request_retail_rates` | *Optional[bool]* | :heavy_minus_sign: | Returns retail rates instead of account-based rates (UPS and FedEx only). | +| `return_service_type` | [Optional[components.ReturnServiceType]](../../models/components/returnservicetype.md) | :heavy_minus_sign: | Request additional return option for return shipments (UPS and Lasership only). | +| `rma_number` | [Optional[components.RmaNumber]](../../models/components/rmanumber.md) | :heavy_minus_sign: | Specify the RMA number field on the label (FedEx and UPS only). | +| `saturday_delivery` | *Optional[bool]* | :heavy_minus_sign: | Marks shipment as to be delivered on a Saturday. | +| `salesperson_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `serial_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `signature_confirmation` | [Optional[components.SignatureConfirmation]](../../models/components/signatureconfirmation.md) | :heavy_minus_sign: | Request standard or adult signature confirmation. You can alternatively request Certified Mail (USPS only)
or Indirect signature (FedEx only) or Carrier Confirmation (Deutsche Post only). | +| `store_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `transaction_reference_number` | [Optional[components.UPSReferenceFields]](../../models/components/upsreferencefields.md) | :heavy_minus_sign: | N/A | +| `usmca_eligible` | *Optional[bool]* | :heavy_minus_sign: | UPS only. Request USMCA (United States-Mexico-Canada Agreement) preferential tariff treatment.
When enabled, it includes the USMCA eligibility declaration in customs documentation.

Supported routes and value limits:
- USA/Canada → Mexico: ≤ $1,000 USD
- Canada/Mexico → USA: ≤ $2,500 USD
- USA/Mexico → Canada: ≤ $3,300 CAD

Only for declaration-only shipments, full USMCA - FormType 04 (Certificate of Origin) is not supported. | \ No newline at end of file diff --git a/docs/models/components/shipmentextralasershipattributesenum.md b/docs/models/components/shipmentextralasershipattributesenum.md index 754fb379..3a959fbf 100644 --- a/docs/models/components/shipmentextralasershipattributesenum.md +++ b/docs/models/components/shipmentextralasershipattributesenum.md @@ -1,5 +1,13 @@ # ShipmentExtraLasershipAttributesEnum +## Example Usage + +```python +from shippo.models.components import ShipmentExtraLasershipAttributesEnum + +value = ShipmentExtraLasershipAttributesEnum.TWO_PERSON_DELIVERY +``` + ## Values diff --git a/docs/models/components/shipmentextrareturnservicetypelasershipenum.md b/docs/models/components/shipmentextrareturnservicetypelasershipenum.md index fd202cef..032b73a7 100644 --- a/docs/models/components/shipmentextrareturnservicetypelasershipenum.md +++ b/docs/models/components/shipmentextrareturnservicetypelasershipenum.md @@ -1,5 +1,13 @@ # ShipmentExtraReturnServiceTypeLasershipEnum +## Example Usage + +```python +from shippo.models.components import ShipmentExtraReturnServiceTypeLasershipEnum + +value = ShipmentExtraReturnServiceTypeLasershipEnum.NO_RETURN +``` + ## Values diff --git a/docs/models/components/shipmentextrareturnservicetypeupsenum.md b/docs/models/components/shipmentextrareturnservicetypeupsenum.md index 89e60cab..3c939865 100644 --- a/docs/models/components/shipmentextrareturnservicetypeupsenum.md +++ b/docs/models/components/shipmentextrareturnservicetypeupsenum.md @@ -1,5 +1,13 @@ # ShipmentExtraReturnServiceTypeUPSEnum +## Example Usage + +```python +from shippo.models.components import ShipmentExtraReturnServiceTypeUPSEnum + +value = ShipmentExtraReturnServiceTypeUPSEnum.PRINT_AND_MAIL +``` + ## Values diff --git a/docs/models/components/shipmentstatus.md b/docs/models/components/shipmentstatus.md index ccb537ba..d0cf8f7a 100644 --- a/docs/models/components/shipmentstatus.md +++ b/docs/models/components/shipmentstatus.md @@ -5,6 +5,14 @@ `Success` shipments have been processed successfully, meaning that rate generation has concluded. `Error` does not occur currently and is reserved for future use. +## Example Usage + +```python +from shippo.models.components import ShipmentStatus + +value = ShipmentStatus.ERROR +``` + ## Values diff --git a/docs/models/components/signatureconfirmation.md b/docs/models/components/signatureconfirmation.md index 1f9966bc..1edfa741 100644 --- a/docs/models/components/signatureconfirmation.md +++ b/docs/models/components/signatureconfirmation.md @@ -3,6 +3,14 @@ Request standard or adult signature confirmation. You can alternatively request Certified Mail (USPS only) or Indirect signature (FedEx only) or Carrier Confirmation (Deutsche Post only). +## Example Usage + +```python +from shippo.models.components import SignatureConfirmation + +value = SignatureConfirmation.STANDARD +``` + ## Values diff --git a/docs/models/components/track.md b/docs/models/components/track.md index 8130ef30..665f10fa 100644 --- a/docs/models/components/track.md +++ b/docs/models/components/track.md @@ -1,19 +1,21 @@ # Track +Tracking status + ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `carrier` | *str* | :heavy_check_mark: | Name of the carrier of the shipment to track. See Carriers. | usps | -| `messages` | List[*str*] | :heavy_check_mark: | N/A | | -| `tracking_history` | List[[components.TrackingStatus](../../models/components/trackingstatus.md)] | :heavy_check_mark: | A list of tracking events, following the same structure as tracking_status.
It contains a full history of all tracking statuses, starting with the earlier tracking event first. | | -| `tracking_number` | *str* | :heavy_check_mark: | Tracking number to track. | 9205590164917312751089 | -| `address_from` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | The sender address with city, state, zip and country information. | | -| `address_to` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | The recipient address with city, state, zip and country information. | | -| `eta` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The estimated time of arrival according to the carrier, this might be updated by carriers during the life of the shipment. | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Order 000123 | -| `original_eta` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The estimated time of arrival according to the carrier at the time the shipment first entered the system. | 2021-07-23T00:00:00Z | -| `servicelevel` | [Optional[components.ServiceLevelWithParent]](../../models/components/servicelevelwithparent.md) | :heavy_minus_sign: | N/A | | -| `tracking_status` | [Optional[components.TrackingStatus]](../../models/components/trackingstatus.md) | :heavy_minus_sign: | The latest tracking information of this shipment. | | -| `transaction` | *Optional[str]* | :heavy_minus_sign: | The object_id of the transaction associated with this tracking object.
This field is visible only to the object owner of the transaction. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address_from` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | The sender address with city, state, zip and country information. | | +| `address_to` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | The recipient address with city, state, zip and country information. | | +| `carrier` | *str* | :heavy_check_mark: | Name of the carrier of the shipment to track. See [Carriers](/shippoapi/public-api/carriers). | usps | +| `eta` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The estimated time of arrival according to the carrier, this might be updated by carriers during the life of the shipment. | | +| `messages` | List[*str*] | :heavy_check_mark: | N/A | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Order 000123 | +| `original_eta` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | The estimated time of arrival according to the carrier at the time the shipment first entered the system. | 2021-07-23T00:00:00Z | +| `servicelevel` | [Optional[components.ServiceLevelWithParent]](../../models/components/servicelevelwithparent.md) | :heavy_minus_sign: | N/A | | +| `tracking_history` | List[[components.TrackingStatus](../../models/components/trackingstatus.md)] | :heavy_check_mark: | A list of tracking events, following the same structure as `tracking_status`.
It contains a full history of all tracking statuses, starting with the earlier tracking event first. | | +| `tracking_number` | *str* | :heavy_check_mark: | Tracking number to track. | 9205590164917312751089 | +| `tracking_status` | [Optional[components.TrackingStatus]](../../models/components/trackingstatus.md) | :heavy_minus_sign: | The latest tracking information of this shipment. | | +| `transaction` | *Optional[str]* | :heavy_minus_sign: | The `object_id` of the transaction associated with this tracking object.
This field is visible only to the object owner of the transaction. | | \ No newline at end of file diff --git a/docs/models/components/trackingstatus.md b/docs/models/components/trackingstatus.md index 8cf3b6b5..06433ae4 100644 --- a/docs/models/components/trackingstatus.md +++ b/docs/models/components/trackingstatus.md @@ -7,11 +7,11 @@ The latest tracking information of this shipment. | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `location` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | An object containing zip, city, state and country information of the tracking event. | | | `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | | `object_id` | *str* | :heavy_check_mark: | N/A | | | `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | N/A | | | `status` | [components.TrackingStatusEnum](../../models/components/trackingstatusenum.md) | :heavy_check_mark: | Indicates the high level status of the shipment. | DELIVERED | -| `status_details` | *str* | :heavy_check_mark: | The human-readable description of the status. | Your shipment has been delivered at the destination mailbox. | -| `location` | [Optional[components.TrackingStatusLocationBase]](../../models/components/trackingstatuslocationbase.md) | :heavy_minus_sign: | An object containing zip, city, state and country information of the tracking event. | | | `substatus` | [Optional[components.TrackingStatusSubstatus]](../../models/components/trackingstatussubstatus.md) | :heavy_minus_sign: | A finer-grained classification of the tracking event. | | -| `status_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time when the carrier scanned this tracking event. This is displayed in UTC. | 2016-07-23T00:00:00Z | \ No newline at end of file +| `status_date` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time when the carrier scanned this tracking event. This is displayed in UTC. | 2016-07-23T00:00:00Z | +| `status_details` | *str* | :heavy_check_mark: | The human-readable description of the status. | Your shipment has been delivered at the destination mailbox. | \ No newline at end of file diff --git a/docs/models/components/trackingstatusenum.md b/docs/models/components/trackingstatusenum.md index 335f4727..ac7e4fc1 100644 --- a/docs/models/components/trackingstatusenum.md +++ b/docs/models/components/trackingstatusenum.md @@ -2,6 +2,14 @@ Indicates the high level status of the shipment. +## Example Usage + +```python +from shippo.models.components import TrackingStatusEnum + +value = TrackingStatusEnum.UNKNOWN +``` + ## Values diff --git a/docs/models/components/trackingstatussubstatus.md b/docs/models/components/trackingstatussubstatus.md index 35378e40..c6a95e4d 100644 --- a/docs/models/components/trackingstatussubstatus.md +++ b/docs/models/components/trackingstatussubstatus.md @@ -5,8 +5,8 @@ A finer-grained classification of the tracking event. ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `code` | *str* | :heavy_check_mark: | A code that represents the substatus of the shipment. See the Event Definitions for more information. | information_received | -| `text` | *str* | :heavy_check_mark: | A human-readable description of the substatus. See the Event Definitions for more information. | Information about the package received. | -| `action_required` | *bool* | :heavy_check_mark: | Indicates whether the substatus requires action from the shipper or recipient to complete delivery. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `code` | *str* | :heavy_check_mark: | A code that represents the substatus of the shipment. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information. | information_received | +| `text` | *str* | :heavy_check_mark: | A human-readable description of the substatus. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information. | Information about the package received. | +| `action_required` | *bool* | :heavy_check_mark: | Indicates whether the substatus requires action from the shipper or recipient to complete delivery. | | \ No newline at end of file diff --git a/docs/models/components/tracksrequest.md b/docs/models/components/tracksrequest.md index 59c72d18..9ec35314 100644 --- a/docs/models/components/tracksrequest.md +++ b/docs/models/components/tracksrequest.md @@ -6,5 +6,5 @@ | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | | `carrier` | *str* | :heavy_check_mark: | Name of the carrier of the shipment to track. | usps | -| `tracking_number` | *str* | :heavy_check_mark: | Tracking number to track. | 9205590164917312751089 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Order 000123 | \ No newline at end of file +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to attach to the object. | Order 000123 | +| `tracking_number` | *str* | :heavy_check_mark: | Tracking number to track. | 9205590164917312751089 | \ No newline at end of file diff --git a/docs/models/components/transaction.md b/docs/models/components/transaction.md index 8a7dc36b..c8e824b1 100644 --- a/docs/models/components/transaction.md +++ b/docs/models/components/transaction.md @@ -3,25 +3,25 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `commercial_invoice_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing to the commercial invoice as a 8.5x11 inch PDF file.
A value will only be returned if the Transactions has been processed successfully and if the shipment is international. | | -| `created_by` | [OptionalNullable[components.CreatedBy]](../../models/components/createdby.md) | :heavy_minus_sign: | N/A | | -| `eta` | *Optional[str]* | :heavy_minus_sign: | The estimated time of arrival according to the carrier. | | -| `label_file_type` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the label. If empty, will use the default format set from
the Shippo dashboard. | PDF_4x6 | -| `label_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing directly to the label in the format you've set in your settings.
A value will only be returned if the Transactions has been processed successfully. | https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA | -| `messages` | List[[components.ResponseMessage](../../models/components/responsemessage.md)] | :heavy_minus_sign: | N/A | | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to
attach to the object. | | -| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Transaction creation. | | -| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Transaction object. | 915d94940ea54c3a80cbfa328722f5a1 | -| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the Transaction object. | shippotle@shippo.com | -| `object_state` | [Optional[components.ObjectStateEnum]](../../models/components/objectstateenum.md) | :heavy_minus_sign: | Indicates the validity of the enclosing object | | -| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last Transaction update. | | -| `parcel` | *Optional[str]* | :heavy_minus_sign: | Object ID of the Parcel object that is being shipped. | e94c7fdfdc7b495dbb390a28d929d90a | -| `qr_code_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing directly to the QR code in PNG format.
A value will only be returned if requested using qr_code_requested flag and the carrier provides such an option. | https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA | -| `rate` | [Optional[components.RateUnion]](../../models/components/rateunion.md) | :heavy_minus_sign: | ID of the Rate object for which a Label has to be obtained.
If you purchase a label by calling the transaction endpoint without a rate (instalabel),
this field will be a simplified Rate object in the Transaction model returned from the POST request.

Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. | | -| `status` | [Optional[components.TransactionStatusEnum]](../../models/components/transactionstatusenum.md) | :heavy_minus_sign: | Indicates the status of the Transaction. | SUCCESS | -| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | | -| `tracking_number` | *Optional[str]* | :heavy_minus_sign: | The carrier-specific tracking number that can be used to track the Shipment.
A value will only be returned if the Rate is for a trackable Shipment and if the Transactions has been processed successfully. | 9499907123456123456781 | -| `tracking_status` | [Optional[components.TrackingStatusEnum]](../../models/components/trackingstatusenum.md) | :heavy_minus_sign: | Indicates the high level status of the shipment. | DELIVERED | -| `tracking_url_provider` | *Optional[str]* | :heavy_minus_sign: | A link to track this item on the carrier-provided tracking website.
A value will only be returned if tracking is available and the carrier provides such a service. | https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `commercial_invoice_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing to the commercial invoice as a 8.5x11 inch PDF file.
A value will only be returned if the Transactions has been processed successfully and if the shipment is international. | | +| `created_by` | [OptionalNullable[components.CreatedBy]](../../models/components/createdby.md) | :heavy_minus_sign: | N/A | | +| `eta` | *Optional[str]* | :heavy_minus_sign: | The estimated time of arrival according to the carrier. | | +| `label_file_type` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from
[the Shippo dashboard.](https://apps.goshippo.com/settings/labels) | PDF_4x6 | +| `label_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing directly to the label in the format you've set in your settings.
A value will only be returned if the Transactions has been processed successfully. | https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA | +| `messages` | List[[components.ResponseMessage](../../models/components/responsemessage.md)] | :heavy_minus_sign: | N/A | | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | A string of up to 100 characters that can be filled with any additional information you want to
attach to the object. | | +| `object_created` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of Transaction creation. | | +| `object_id` | *Optional[str]* | :heavy_minus_sign: | Unique identifier of the given Transaction object. | 915d94940ea54c3a80cbfa328722f5a1 | +| `object_owner` | *Optional[str]* | :heavy_minus_sign: | Username of the user who created the Transaction object. | shippotle@shippo.com | +| `object_state` | [Optional[components.ObjectStateEnum]](../../models/components/objectstateenum.md) | :heavy_minus_sign: | Indicates the validity of the enclosing object | | +| `object_updated` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | Date and time of last Transaction update. | | +| `parcel` | *Optional[str]* | :heavy_minus_sign: | Object ID of the Parcel object that is being shipped. | e94c7fdfdc7b495dbb390a28d929d90a | +| `qr_code_url` | *Optional[str]* | :heavy_minus_sign: | A URL pointing directly to the QR code in PNG format.
A value will only be returned if requested using qr_code_requested flag and the carrier provides such an option. | https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA | +| `rate` | [Optional[components.RateUnion]](../../models/components/rateunion.md) | :heavy_minus_sign: | ID of the Rate object for which a Label has to be obtained.
If you purchase a label by calling the transaction endpoint without a rate (instalabel),
this field will be a simplified Rate object in the Transaction model returned from the POST request.
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. | | +| `status` | [Optional[components.TransactionStatusEnum]](../../models/components/transactionstatusenum.md) | :heavy_minus_sign: | Indicates the status of the Transaction. | SUCCESS | +| `test` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the object has been created in test mode. | | +| `tracking_number` | *Optional[str]* | :heavy_minus_sign: | The carrier-specific tracking number that can be used to track the Shipment.
A value will only be returned if the Rate is for a trackable Shipment and if the Transactions has been processed successfully. | 9499907123456123456781 | +| `tracking_status` | [Optional[components.TrackingStatusEnum]](../../models/components/trackingstatusenum.md) | :heavy_minus_sign: | Indicates the high level status of the shipment. | DELIVERED | +| `tracking_url_provider` | *Optional[str]* | :heavy_minus_sign: | A link to track this item on the carrier-provided tracking website.
A value will only be returned if tracking is available and the carrier provides such a service. | https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781 | \ No newline at end of file diff --git a/docs/models/components/transactioncreaterequest.md b/docs/models/components/transactioncreaterequest.md index c692a868..9862e688 100644 --- a/docs/models/components/transactioncreaterequest.md +++ b/docs/models/components/transactioncreaterequest.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rate` | *str* | :heavy_check_mark: | N/A | ec9f0d3adc9441449c85d315f0997fd5 | -| `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | -| `label_file_type` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the label. If empty, will use the default format set from
the Shippo dashboard. | PDF_4x6 | -| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Order ID #12345 | -| `order` | *Optional[str]* | :heavy_minus_sign: | N/A | adcfdddf8ec64b84ad22772bce3ea37a | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `async_` | *Optional[bool]* | :heavy_minus_sign: | N/A | false | +| `label_file_type` | [Optional[components.LabelFileTypeEnum]](../../models/components/labelfiletypeenum.md) | :heavy_minus_sign: | Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from
[the Shippo dashboard.](https://apps.goshippo.com/settings/labels) | PDF_4x6 | +| `metadata` | *Optional[str]* | :heavy_minus_sign: | N/A | Order ID #12345 | +| `rate` | *str* | :heavy_check_mark: | N/A | ec9f0d3adc9441449c85d315f0997fd5 | +| `order` | *Optional[str]* | :heavy_minus_sign: | N/A | adcfdddf8ec64b84ad22772bce3ea37a | \ No newline at end of file diff --git a/docs/models/components/transactionstatusenum.md b/docs/models/components/transactionstatusenum.md index 527845ce..dc2d5999 100644 --- a/docs/models/components/transactionstatusenum.md +++ b/docs/models/components/transactionstatusenum.md @@ -2,6 +2,14 @@ Indicates the status of the Transaction. +## Example Usage + +```python +from shippo.models.components import TransactionStatusEnum + +value = TransactionStatusEnum.WAITING +``` + ## Values diff --git a/docs/models/components/upsconnectexistingownaccountparameters.md b/docs/models/components/upsconnectexistingownaccountparameters.md index 7761365f..0311e58d 100644 --- a/docs/models/components/upsconnectexistingownaccountparameters.md +++ b/docs/models/components/upsconnectexistingownaccountparameters.md @@ -1,8 +1,15 @@ # UPSConnectExistingOwnAccountParameters An array of additional parameters for the account, such as e.g. password or token. -Please check the carrier accounts tutorial page for the parameters per carrier.
+Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the parameters per carrier. To protect account information, this field will be masked in any API response. +In the case of masked fields, they should be handled carefully. + +Fields also must consider: +- Not providing a *fields* in parameters will not result in a change to any configured value +- Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value +- Providing *field* with null will clear the configured value +- Providing *field* with any other value will change the configured value and may affect the behavior of the account. ## Fields @@ -10,24 +17,24 @@ To protect account information, this field will be masked in any API response. | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `account_number` | *str* | :heavy_check_mark: | The UPS account number | 94567e | +| `aia_country_iso2` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. Country associated with the account that issued the invoice | US | | `billing_address_city` | *str* | :heavy_check_mark: | N/A | San Francisco | | `billing_address_country_iso2` | *str* | :heavy_check_mark: | N/A | US | | `billing_address_state` | *str* | :heavy_check_mark: | N/A | CA | | `billing_address_street1` | *str* | :heavy_check_mark: | N/A | 731 Market St | +| `billing_address_street2` | *Optional[str]* | :heavy_minus_sign: | Empty string acceptable for billing_address_street2 | STE 200 | | `billing_address_zip` | *str* | :heavy_check_mark: | N/A | 94103 | | `collec_country_iso2` | *str* | :heavy_check_mark: | N/A | US | | `collec_zip` | *str* | :heavy_check_mark: | Zip code of the collection/pickup address | 94103 | | `company` | *str* | :heavy_check_mark: | Company name. Full name is acceptable in this field if the user has no company name | Shippo | +| `currency_code` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. 3-letter currency code associated with invoice_value | USD | | `email` | *str* | :heavy_check_mark: | N/A | hippo@shippo.com | | `full_name` | *str* | :heavy_check_mark: | N/A | Shippo Meister | | `has_invoice` | *bool* | :heavy_check_mark: | true if user has been issued a UPS invoice within the past 90 days for the US or Canada; and 45 days for any other countries. User can use data from any of the last 3 invoices | | -| `phone` | *str* | :heavy_check_mark: | N/A | 1112223333 | -| `title` | *str* | :heavy_check_mark: | User's title, e.g. including but not limited to Manager, Doctor, Artist, Engineer, Mr, Ms, Mrs, Mx | Manager | -| `ups_agreements` | *bool* | :heavy_check_mark: | Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false | | -| `aia_country_iso2` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. Country associated with the account that issued the invoice | US | -| `billing_address_street2` | *Optional[str]* | :heavy_minus_sign: | Empty string acceptable for billing_address_street2 | STE 200 | -| `currency_code` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. 3-letter currency code associated with invoice_value | USD | | `invoice_controlid` | *Optional[str]* | :heavy_minus_sign: | Only required if aia_country_iso2 is US and has_invoice is true. | 1234 | | `invoice_date` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. Date the invoice was issued. yyyymmdd format | 20210529 | | `invoice_number` | *Optional[str]* | :heavy_minus_sign: | N/A | 1112234 | -| `invoice_value` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal | 11.23 | \ No newline at end of file +| `invoice_value` | *Optional[str]* | :heavy_minus_sign: | Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal | 11.23 | +| `phone` | *str* | :heavy_check_mark: | N/A | 1112223333 | +| `title` | *str* | :heavy_check_mark: | User's title, e.g. including but not limited to Manager, Doctor, Artist, Engineer, Mr, Ms, Mrs, Mx | Manager | +| `ups_agreements` | *bool* | :heavy_check_mark: | Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false | | \ No newline at end of file diff --git a/docs/models/components/userparceltemplatelist.md b/docs/models/components/userparceltemplatelist.md index d0b79f72..fd779761 100644 --- a/docs/models/components/userparceltemplatelist.md +++ b/docs/models/components/userparceltemplatelist.md @@ -1,5 +1,7 @@ # UserParcelTemplateList +List of user parcel templates + ## Fields diff --git a/docs/models/components/userparceltemplateupdaterequest.md b/docs/models/components/userparceltemplateupdaterequest.md index 7f476901..e8d9e851 100644 --- a/docs/models/components/userparceltemplateupdaterequest.md +++ b/docs/models/components/userparceltemplateupdaterequest.md @@ -9,6 +9,6 @@ | `height` | *str* | :heavy_check_mark: | The height of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 6 | | `length` | *str* | :heavy_check_mark: | The length of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 10 | | `name` | *str* | :heavy_check_mark: | The name of the User Parcel Template | My Custom Template | -| `width` | *str* | :heavy_check_mark: | The width of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 8 | | `weight` | *Optional[str]* | :heavy_minus_sign: | The weight of the package, in units specified by the weight_unit attribute. | 12 | -| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | \ No newline at end of file +| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | +| `width` | *str* | :heavy_check_mark: | The width of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 8 | \ No newline at end of file diff --git a/docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md b/docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md index 13628788..9826f7b7 100644 --- a/docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md +++ b/docs/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.md @@ -9,6 +9,6 @@ | `height` | *str* | :heavy_check_mark: | The height of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 6 | | `length` | *str* | :heavy_check_mark: | The length of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 10 | | `name` | *str* | :heavy_check_mark: | The name of the User Parcel Template | My Custom Template | -| `width` | *str* | :heavy_check_mark: | The width of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 8 | | `weight` | *Optional[str]* | :heavy_minus_sign: | The weight of the package, in units specified by the weight_unit attribute. | 12 | -| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | \ No newline at end of file +| `weight_unit` | [Optional[components.WeightUnitEnum]](../../models/components/weightunitenum.md) | :heavy_minus_sign: | The unit used for weight. | lb | +| `width` | *str* | :heavy_check_mark: | The width of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty. | 8 | \ No newline at end of file diff --git a/docs/models/components/verification.md b/docs/models/components/verification.md new file mode 100644 index 00000000..d4697e32 --- /dev/null +++ b/docs/models/components/verification.md @@ -0,0 +1,8 @@ +# Verification + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `policy` | [Optional[components.Policy]](../../models/components/policy.md) | :heavy_minus_sign: | Policy to indicate if the Account needs multi-factor verification. | \ No newline at end of file diff --git a/docs/models/components/verificationoption.md b/docs/models/components/verificationoption.md new file mode 100644 index 00000000..5bb6aae0 --- /dev/null +++ b/docs/models/components/verificationoption.md @@ -0,0 +1,21 @@ +# VerificationOption + +Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE). + +## Example Usage + +```python +from shippo.models.components import VerificationOption + +value = VerificationOption.SMS +``` + + +## Values + +| Name | Value | +| --------- | --------- | +| `SMS` | SMS | +| `EMAIL` | EMAIL | +| `CALL` | CALL | +| `INVOICE` | INVOICE | \ No newline at end of file diff --git a/docs/models/components/webhookeventtypeenum.md b/docs/models/components/webhookeventtypeenum.md index f127c914..14886c7c 100644 --- a/docs/models/components/webhookeventtypeenum.md +++ b/docs/models/components/webhookeventtypeenum.md @@ -2,6 +2,14 @@ Type of event that triggered the webhook. +## Example Usage + +```python +from shippo.models.components import WebhookEventTypeEnum + +value = WebhookEventTypeEnum.TRANSACTION_CREATED +``` + ## Values diff --git a/docs/models/components/webhookpayload.md b/docs/models/components/webhookpayload.md index 8d3a9c83..68ad329f 100644 --- a/docs/models/components/webhookpayload.md +++ b/docs/models/components/webhookpayload.md @@ -1,5 +1,7 @@ # WebhookPayload +The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration. + ## Supported Types diff --git a/docs/models/components/weightunitenum.md b/docs/models/components/weightunitenum.md index 2c5ec9fb..662cd383 100644 --- a/docs/models/components/weightunitenum.md +++ b/docs/models/components/weightunitenum.md @@ -2,6 +2,14 @@ The unit used for weight. +## Example Usage + +```python +from shippo.models.components import WeightUnitEnum + +value = WeightUnitEnum.G +``` + ## Values diff --git a/docs/models/internal/globals.md b/docs/models/internal/globals.md index d9886574..f2cd344a 100644 --- a/docs/models/internal/globals.md +++ b/docs/models/internal/globals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/addshipmentstobatchglobals.md b/docs/models/operations/addshipmentstobatchglobals.md index 716b4714..8fb1fb16 100644 --- a/docs/models/operations/addshipmentstobatchglobals.md +++ b/docs/models/operations/addshipmentstobatchglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/carrier.md b/docs/models/operations/carrier.md index ea7c8c9a..050ff277 100644 --- a/docs/models/operations/carrier.md +++ b/docs/models/operations/carrier.md @@ -2,6 +2,14 @@ filter by specific carrier +## Example Usage + +```python +from shippo.models.operations import Carrier + +value = Carrier.UPS +``` + ## Values diff --git a/docs/models/operations/createaddressglobals.md b/docs/models/operations/createaddressglobals.md index 6f219653..dbf870f9 100644 --- a/docs/models/operations/createaddressglobals.md +++ b/docs/models/operations/createaddressglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createbatchglobals.md b/docs/models/operations/createbatchglobals.md index 1f9d5b41..797424ce 100644 --- a/docs/models/operations/createbatchglobals.md +++ b/docs/models/operations/createbatchglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createcarrieraccountglobals.md b/docs/models/operations/createcarrieraccountglobals.md index 6a184378..e4156ebc 100644 --- a/docs/models/operations/createcarrieraccountglobals.md +++ b/docs/models/operations/createcarrieraccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createcustomsdeclarationglobals.md b/docs/models/operations/createcustomsdeclarationglobals.md index c553e295..5a0dc97a 100644 --- a/docs/models/operations/createcustomsdeclarationglobals.md +++ b/docs/models/operations/createcustomsdeclarationglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createcustomsitemglobals.md b/docs/models/operations/createcustomsitemglobals.md index a57ecac0..b14176c6 100644 --- a/docs/models/operations/createcustomsitemglobals.md +++ b/docs/models/operations/createcustomsitemglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createliverateglobals.md b/docs/models/operations/createliverateglobals.md index 6e05940c..768ba393 100644 --- a/docs/models/operations/createliverateglobals.md +++ b/docs/models/operations/createliverateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createmanifestglobals.md b/docs/models/operations/createmanifestglobals.md index dd896e00..c5acfb80 100644 --- a/docs/models/operations/createmanifestglobals.md +++ b/docs/models/operations/createmanifestglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createorderglobals.md b/docs/models/operations/createorderglobals.md index 8073d558..7861ee97 100644 --- a/docs/models/operations/createorderglobals.md +++ b/docs/models/operations/createorderglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createparcelglobals.md b/docs/models/operations/createparcelglobals.md index 9a2f6d79..f08bb434 100644 --- a/docs/models/operations/createparcelglobals.md +++ b/docs/models/operations/createparcelglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createpickupglobals.md b/docs/models/operations/createpickupglobals.md index a787299d..7616d5eb 100644 --- a/docs/models/operations/createpickupglobals.md +++ b/docs/models/operations/createpickupglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createrefundglobals.md b/docs/models/operations/createrefundglobals.md index e6696f19..e25d0674 100644 --- a/docs/models/operations/createrefundglobals.md +++ b/docs/models/operations/createrefundglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createservicegroupglobals.md b/docs/models/operations/createservicegroupglobals.md index 769933c9..3decd52d 100644 --- a/docs/models/operations/createservicegroupglobals.md +++ b/docs/models/operations/createservicegroupglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createshipmentglobals.md b/docs/models/operations/createshipmentglobals.md index ac929f5a..f3d2861e 100644 --- a/docs/models/operations/createshipmentglobals.md +++ b/docs/models/operations/createshipmentglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createshippoaccountglobals.md b/docs/models/operations/createshippoaccountglobals.md index 09990bb6..a2f7ad8f 100644 --- a/docs/models/operations/createshippoaccountglobals.md +++ b/docs/models/operations/createshippoaccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createtrackglobals.md b/docs/models/operations/createtrackglobals.md index a0c92a2d..61427dba 100644 --- a/docs/models/operations/createtrackglobals.md +++ b/docs/models/operations/createtrackglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createtransactionglobals.md b/docs/models/operations/createtransactionglobals.md index 9fa94631..f0384b11 100644 --- a/docs/models/operations/createtransactionglobals.md +++ b/docs/models/operations/createtransactionglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/createuserparceltemplateglobals.md b/docs/models/operations/createuserparceltemplateglobals.md index 8aec1dfd..2a3bc96e 100644 --- a/docs/models/operations/createuserparceltemplateglobals.md +++ b/docs/models/operations/createuserparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/deletedefaultparceltemplateglobals.md b/docs/models/operations/deletedefaultparceltemplateglobals.md index ce917f8d..bac829e0 100644 --- a/docs/models/operations/deletedefaultparceltemplateglobals.md +++ b/docs/models/operations/deletedefaultparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/deleteservicegroupglobals.md b/docs/models/operations/deleteservicegroupglobals.md index 0838045d..99f654bb 100644 --- a/docs/models/operations/deleteservicegroupglobals.md +++ b/docs/models/operations/deleteservicegroupglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/deleteuserparceltemplateglobals.md b/docs/models/operations/deleteuserparceltemplateglobals.md index 7ea46ad4..ce0dae71 100644 --- a/docs/models/operations/deleteuserparceltemplateglobals.md +++ b/docs/models/operations/deleteuserparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getaddressglobals.md b/docs/models/operations/getaddressglobals.md index 386979a0..0be26b09 100644 --- a/docs/models/operations/getaddressglobals.md +++ b/docs/models/operations/getaddressglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getbatchglobals.md b/docs/models/operations/getbatchglobals.md index 2fd1921f..d01e0f8b 100644 --- a/docs/models/operations/getbatchglobals.md +++ b/docs/models/operations/getbatchglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getcarrieraccountglobals.md b/docs/models/operations/getcarrieraccountglobals.md index 30c68536..66cef9d2 100644 --- a/docs/models/operations/getcarrieraccountglobals.md +++ b/docs/models/operations/getcarrieraccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getcarrierparceltemplateglobals.md b/docs/models/operations/getcarrierparceltemplateglobals.md index 91c43622..f6bee32b 100644 --- a/docs/models/operations/getcarrierparceltemplateglobals.md +++ b/docs/models/operations/getcarrierparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getcarrierregistrationstatusglobals.md b/docs/models/operations/getcarrierregistrationstatusglobals.md index 1593e20d..1a97a0b0 100644 --- a/docs/models/operations/getcarrierregistrationstatusglobals.md +++ b/docs/models/operations/getcarrierregistrationstatusglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getcustomsdeclarationglobals.md b/docs/models/operations/getcustomsdeclarationglobals.md index f50fbdd3..530b9150 100644 --- a/docs/models/operations/getcustomsdeclarationglobals.md +++ b/docs/models/operations/getcustomsdeclarationglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getcustomsitemglobals.md b/docs/models/operations/getcustomsitemglobals.md index f4251186..642a1785 100644 --- a/docs/models/operations/getcustomsitemglobals.md +++ b/docs/models/operations/getcustomsitemglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getdefaultparceltemplateglobals.md b/docs/models/operations/getdefaultparceltemplateglobals.md index 104c8fae..010265ef 100644 --- a/docs/models/operations/getdefaultparceltemplateglobals.md +++ b/docs/models/operations/getdefaultparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getmanifestglobals.md b/docs/models/operations/getmanifestglobals.md index ba2810f4..513fef21 100644 --- a/docs/models/operations/getmanifestglobals.md +++ b/docs/models/operations/getmanifestglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getorderglobals.md b/docs/models/operations/getorderglobals.md index 61b06d74..002599f8 100644 --- a/docs/models/operations/getorderglobals.md +++ b/docs/models/operations/getorderglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getparcelglobals.md b/docs/models/operations/getparcelglobals.md index 0e29f5f5..d3744ae8 100644 --- a/docs/models/operations/getparcelglobals.md +++ b/docs/models/operations/getparcelglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getrateglobals.md b/docs/models/operations/getrateglobals.md index bfb1a13b..41ad097c 100644 --- a/docs/models/operations/getrateglobals.md +++ b/docs/models/operations/getrateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getrefundglobals.md b/docs/models/operations/getrefundglobals.md index b1f2afe6..f5e12fb9 100644 --- a/docs/models/operations/getrefundglobals.md +++ b/docs/models/operations/getrefundglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getshipmentglobals.md b/docs/models/operations/getshipmentglobals.md index b3b9937a..5452dfd4 100644 --- a/docs/models/operations/getshipmentglobals.md +++ b/docs/models/operations/getshipmentglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getshippoaccountglobals.md b/docs/models/operations/getshippoaccountglobals.md index d591ffaa..ab702494 100644 --- a/docs/models/operations/getshippoaccountglobals.md +++ b/docs/models/operations/getshippoaccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/gettrackglobals.md b/docs/models/operations/gettrackglobals.md index ac866aca..e6fb93be 100644 --- a/docs/models/operations/gettrackglobals.md +++ b/docs/models/operations/gettrackglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/gettransactionglobals.md b/docs/models/operations/gettransactionglobals.md index d138a4ea..aa36922a 100644 --- a/docs/models/operations/gettransactionglobals.md +++ b/docs/models/operations/gettransactionglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/getuserparceltemplateglobals.md b/docs/models/operations/getuserparceltemplateglobals.md index 3c0b515d..18583821 100644 --- a/docs/models/operations/getuserparceltemplateglobals.md +++ b/docs/models/operations/getuserparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/include.md b/docs/models/operations/include.md index 4ce1dc50..e416c71a 100644 --- a/docs/models/operations/include.md +++ b/docs/models/operations/include.md @@ -2,6 +2,14 @@ filter by user or enabled +## Example Usage + +```python +from shippo.models.operations import Include + +value = Include.ALL +``` + ## Values diff --git a/docs/models/operations/initiateoauth2signinglobals.md b/docs/models/operations/initiateoauth2signinglobals.md index d5818775..0d4b2ebc 100644 --- a/docs/models/operations/initiateoauth2signinglobals.md +++ b/docs/models/operations/initiateoauth2signinglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listaddressesglobals.md b/docs/models/operations/listaddressesglobals.md index 40d7dfae..77500669 100644 --- a/docs/models/operations/listaddressesglobals.md +++ b/docs/models/operations/listaddressesglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listcarrieraccountsglobals.md b/docs/models/operations/listcarrieraccountsglobals.md index 71e58a3f..d07da4c0 100644 --- a/docs/models/operations/listcarrieraccountsglobals.md +++ b/docs/models/operations/listcarrieraccountsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listcarrierparceltemplatesglobals.md b/docs/models/operations/listcarrierparceltemplatesglobals.md index ab5d1e15..6cf92d47 100644 --- a/docs/models/operations/listcarrierparceltemplatesglobals.md +++ b/docs/models/operations/listcarrierparceltemplatesglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listcustomsdeclarationsglobals.md b/docs/models/operations/listcustomsdeclarationsglobals.md index 0b8b57d1..d4b11342 100644 --- a/docs/models/operations/listcustomsdeclarationsglobals.md +++ b/docs/models/operations/listcustomsdeclarationsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listcustomsitemsglobals.md b/docs/models/operations/listcustomsitemsglobals.md index 77bdb83b..56dabb6c 100644 --- a/docs/models/operations/listcustomsitemsglobals.md +++ b/docs/models/operations/listcustomsitemsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listmanifestsglobals.md b/docs/models/operations/listmanifestsglobals.md index b150485e..91e1d7b0 100644 --- a/docs/models/operations/listmanifestsglobals.md +++ b/docs/models/operations/listmanifestsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listordersglobals.md b/docs/models/operations/listordersglobals.md index b8f4b5cc..d5294e12 100644 --- a/docs/models/operations/listordersglobals.md +++ b/docs/models/operations/listordersglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listparcelsglobals.md b/docs/models/operations/listparcelsglobals.md index 46e0e11f..99cb7b00 100644 --- a/docs/models/operations/listparcelsglobals.md +++ b/docs/models/operations/listparcelsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listrefundsglobals.md b/docs/models/operations/listrefundsglobals.md index 21ff3f3b..fe8aedc5 100644 --- a/docs/models/operations/listrefundsglobals.md +++ b/docs/models/operations/listrefundsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listservicegroupsglobals.md b/docs/models/operations/listservicegroupsglobals.md index 3f76a78f..9cba86b4 100644 --- a/docs/models/operations/listservicegroupsglobals.md +++ b/docs/models/operations/listservicegroupsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listshipmentratesbycurrencycodeglobals.md b/docs/models/operations/listshipmentratesbycurrencycodeglobals.md index 5184b8cb..2b11a971 100644 --- a/docs/models/operations/listshipmentratesbycurrencycodeglobals.md +++ b/docs/models/operations/listshipmentratesbycurrencycodeglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listshipmentratesglobals.md b/docs/models/operations/listshipmentratesglobals.md index cd054cb1..23d8dda8 100644 --- a/docs/models/operations/listshipmentratesglobals.md +++ b/docs/models/operations/listshipmentratesglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listshipmentsglobals.md b/docs/models/operations/listshipmentsglobals.md index 201a32e8..1acae1bf 100644 --- a/docs/models/operations/listshipmentsglobals.md +++ b/docs/models/operations/listshipmentsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listshippoaccountsglobals.md b/docs/models/operations/listshippoaccountsglobals.md index a8816d03..2f0e105c 100644 --- a/docs/models/operations/listshippoaccountsglobals.md +++ b/docs/models/operations/listshippoaccountsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listtransactionsglobals.md b/docs/models/operations/listtransactionsglobals.md index 3fc9ae8a..b4196cc2 100644 --- a/docs/models/operations/listtransactionsglobals.md +++ b/docs/models/operations/listtransactionsglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/listuserparceltemplatesglobals.md b/docs/models/operations/listuserparceltemplatesglobals.md index 0625a671..42bbb88c 100644 --- a/docs/models/operations/listuserparceltemplatesglobals.md +++ b/docs/models/operations/listuserparceltemplatesglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/purchasebatchglobals.md b/docs/models/operations/purchasebatchglobals.md index b4414ba1..c6011916 100644 --- a/docs/models/operations/purchasebatchglobals.md +++ b/docs/models/operations/purchasebatchglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/registercarrieraccountglobals.md b/docs/models/operations/registercarrieraccountglobals.md index 93100f3f..d049dde5 100644 --- a/docs/models/operations/registercarrieraccountglobals.md +++ b/docs/models/operations/registercarrieraccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/registercarrieraccountrequest.md b/docs/models/operations/registercarrieraccountrequest.md index f88e0b5f..0c284ac4 100644 --- a/docs/models/operations/registercarrieraccountrequest.md +++ b/docs/models/operations/registercarrieraccountrequest.md @@ -89,9 +89,15 @@ value: components.CarrierAccountUPSCreateRequest = /* values here */ value: components.CarrierAccountUSPSCreateRequest = /* values here */ ``` -### `components.CarrierAccountSendleCreateRequest` +### `components.CarrierAccountRoyalMailCreateRequest` ```python -value: components.CarrierAccountSendleCreateRequest = /* values here */ +value: components.CarrierAccountRoyalMailCreateRequest = /* values here */ +``` + +### `components.CarrierAccountRoyalMailSfCreateRequest` + +```python +value: components.CarrierAccountRoyalMailSfCreateRequest = /* values here */ ``` diff --git a/docs/models/operations/removeshipmentsfrombatchglobals.md b/docs/models/operations/removeshipmentsfrombatchglobals.md index 60f199b1..be62a18e 100644 --- a/docs/models/operations/removeshipmentsfrombatchglobals.md +++ b/docs/models/operations/removeshipmentsfrombatchglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/updatecarrieraccountglobals.md b/docs/models/operations/updatecarrieraccountglobals.md index 92ae375c..dcea997a 100644 --- a/docs/models/operations/updatecarrieraccountglobals.md +++ b/docs/models/operations/updatecarrieraccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/updatedefaultparceltemplateglobals.md b/docs/models/operations/updatedefaultparceltemplateglobals.md index f88a60b8..3c9be9ab 100644 --- a/docs/models/operations/updatedefaultparceltemplateglobals.md +++ b/docs/models/operations/updatedefaultparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/updateservicegroupglobals.md b/docs/models/operations/updateservicegroupglobals.md index a416d8aa..1622576b 100644 --- a/docs/models/operations/updateservicegroupglobals.md +++ b/docs/models/operations/updateservicegroupglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/updateshippoaccountglobals.md b/docs/models/operations/updateshippoaccountglobals.md index 3358b977..63160302 100644 --- a/docs/models/operations/updateshippoaccountglobals.md +++ b/docs/models/operations/updateshippoaccountglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/updateuserparceltemplateglobals.md b/docs/models/operations/updateuserparceltemplateglobals.md index eb01d576..3fbdee9f 100644 --- a/docs/models/operations/updateuserparceltemplateglobals.md +++ b/docs/models/operations/updateuserparceltemplateglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/models/operations/validateaddressglobals.md b/docs/models/operations/validateaddressglobals.md index d79d74f1..16bcc8fe 100644 --- a/docs/models/operations/validateaddressglobals.md +++ b/docs/models/operations/validateaddressglobals.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our API version guide. | 2018-02-08 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `shippo_api_version` | *Optional[str]* | :heavy_minus_sign: | Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide. | 2018-02-08 | \ No newline at end of file diff --git a/docs/sdks/addresses/README.md b/docs/sdks/addresses/README.md index fd05075f..9e2912aa 100644 --- a/docs/sdks/addresses/README.md +++ b/docs/sdks/addresses/README.md @@ -1,10 +1,8 @@ # Addresses -(*addresses*) ## Overview Addresses are the locations a parcel is being shipped **from** and **to**. They represent company and residential places. Among other things, you can use address objects to create shipments, calculate shipping rates, and purchase shipping labels. - ### Available Operations @@ -19,18 +17,17 @@ Returns a list of all address objects that have been created in this account. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.addresses.list() - - assert res is not None + res = s_client.addresses.list(page=1, results=5) # Handle response print(res) @@ -61,17 +58,17 @@ Creates a new address object. You can use address objects to create new shipment ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.addresses.create(request={ - "country": "US", "name": "Shwan Ippotle", "company": "Shippo", "street1": "215 Clayton St.", @@ -80,6 +77,7 @@ with Shippo( "city": "San Francisco", "state": "CA", "zip": "94117", + "country": "US", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": True, @@ -87,8 +85,6 @@ with Shippo( "validate_": True, }) - assert res is not None - # Handle response print(res) @@ -117,19 +113,18 @@ Returns an existing address using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.addresses.get(address_id="") - assert res is not None - # Handle response print(res) @@ -158,19 +153,18 @@ Validates an existing address using an object ID ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.addresses.validate(address_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/batches/README.md b/docs/sdks/batches/README.md index e885985e..e122e3ff 100644 --- a/docs/sdks/batches/README.md +++ b/docs/sdks/batches/README.md @@ -1,18 +1,8 @@ # Batches -(*batches*) ## Overview A batch is a technique for creating multiple labels at once. Use the batch object to create and purchase many shipments in two API calls. After creating the batch, retrieve the batch to verify that all shipments are valid. You can add and remove shipments after you have created the batch. When all shipments are valid you can purchase the batch and retrieve all the shipping labels. - - -# Batch Shipment -The batch shipment object is a wrapper around a shipment object, which include shipment-specific information -for batch processing. - -Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through -the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint - ### Available Operations @@ -28,323 +18,25 @@ Creates a new batch object for purchasing shipping labels for many shipments at ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.batches.create(request={ "default_carrier_account": "078870331023437cb917f5187429b093", "default_servicelevel_token": "usps_priority", - "batch_shipments": [ - components.BatchShipmentCreateRequest( - shipment=components.ShipmentCreateRequest( - address_from="d799c2679e644279b59fe661ac8fa488", - address_to=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - parcels=[ - components.ParcelCreateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - distance_unit=components.DistanceUnitEnum.IN, - height="1", - length="1", - width="1", - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - components.ParcelCreateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - distance_unit=components.DistanceUnitEnum.IN, - height="1", - length="1", - width="1", - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - components.ParcelCreateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - distance_unit=components.DistanceUnitEnum.IN, - height="1", - length="1", - width="1", - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - ], - extra=components.ShipmentExtra( - accounts_receivable_customer_account=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - appropriation_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - bill_of_lading_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - cod_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - customer_reference=components.CustomerReference( - ref_sort=1, - ), - dealer_order_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - dept_number=components.DepartmentNumber( - ref_sort=3, - ), - fda_product_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - insurance=components.Insurance( - amount="5.5", - currency="USD", - ), - invoice_number=components.InvoiceNumber( - ref_sort=2, - ), - manifest_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - model_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - part_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - po_number=components.PoNumber( - ref_sort=2, - ), - production_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - purchase_request_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - rma_number=components.RmaNumber( - ref_sort=1, - ), - salesperson_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - serial_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - store_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - transaction_reference_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - ), - metadata="Customer ID 123456", - shipment_date="2021-03-22T12:00:00Z", - address_return=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - customs_declaration=components.CustomsDeclarationCreateRequest( - certify=True, - certify_signer="Shawn Ippotle", - contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE, - items=[ - components.CustomsItemCreateRequest( - description="T-Shirt", - mass_unit=components.WeightUnitEnum.LB, - net_weight="5", - origin_country="", - quantity=20, - value_amount="200", - value_currency="USD", - metadata="Order ID \"123454\"", - sku_code="HM-123", - hs_code="0901.21", - ), - components.CustomsItemCreateRequest( - description="T-Shirt", - mass_unit=components.WeightUnitEnum.LB, - net_weight="5", - origin_country="", - quantity=20, - value_amount="200", - value_currency="USD", - metadata="Order ID \"123454\"", - sku_code="HM-123", - hs_code="0901.21", - ), - components.CustomsItemCreateRequest( - description="T-Shirt", - mass_unit=components.WeightUnitEnum.LB, - net_weight="5", - origin_country="", - quantity=20, - value_amount="200", - value_currency="USD", - metadata="Order ID \"123454\"", - sku_code="HM-123", - hs_code="0901.21", - ), - ], - non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN, - b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY, - contents_explanation="T-Shirt purchase", - duties_payor=components.CustomsDeclarationCreateRequestDutiesPayor( - account="2323434543", - type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY, - address=components.CustomsDeclarationCreateRequestAddress( - name="Patrick Kavanagh", - zip="80331", - country="DE", - ), - ), - exporter_identification=components.CustomsExporterIdentification( - eori_number="PL123456790ABCDE", - tax_id=components.CustomsTaxIdentification( - number="123456789", - type=components.CustomsTaxIdentificationType.EIN, - ), - ), - invoice="#123123", - metadata="Order ID #123123", - address_importer=components.AddressImporter( - name="Shwan Ippotle", - company="Shippo", - street1="Blumenstraße", - street3="", - street_no="22", - city="München", - state="CA", - zip="80331", - country="DE", - phone="80331", - email="shippotle@shippo.com", - is_residential=True, - ), - eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A, - incoterm=components.CustomsDeclarationIncotermEnum.DDP, - test=True, - ), - carrier_accounts=[ - "065a4a8c10d24a34ab932163a1b87f52", - "73f706f4bdb94b54a337563840ce52b0", - ], - ), - carrier_account="a4391cd4ab974f478f55dc08b5c8e3b3", - metadata="SHIPMENT #1", - servicelevel_token="fedex_ground", - ), - ], "label_filetype": components.LabelFileTypeEnum.PDF_4X6, "metadata": "BATCH #1", + "batch_shipments": [], }) - assert res is not None - # Handle response print(res) @@ -369,25 +61,25 @@ with Shippo( ## get -Returns a batch using an object ID.
Batch shipments are displayed 100 at a time. You can iterate -through each `page` using the `?page= query` parameter. You can also filter based on batch shipment -status, for example, by passing a query param like `?object_results=creation_failed`.
-For more details on filtering results, see our guide on filtering. +Returns a batch using an object ID. + +Batch shipments are displayed 100 at a time. You can iterate through each page using the `?page=` query parameter. You can also filter based on batch shipment status, for example, by passing a query param like `?object_results=creation_failed`. + +For more details on filtering results, see our guide on [filtering](https://docs.goshippo.com/docs/api_concepts/filtering/). ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.batches.get(batch_id="") - - assert res is not None + res = s_client.batches.get(batch_id="", page=1, results=5) # Handle response print(res) @@ -419,262 +111,23 @@ Adds batch shipments to an existing batch. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.batches.add_shipments(batch_id="", request_body=[ components.BatchShipmentCreateRequest( - shipment=components.ShipmentCreateRequest( - address_from=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - address_to="d799c2679e644279b59fe661ac8fa489", - parcels=[ - "", - "", - components.ParcelCreateFromTemplateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - template=components.ParcelTemplateUSPSEnum.USPS_SMALL_FLAT_RATE_ENVELOPE, - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - ], - extra=components.ShipmentExtra( - accounts_receivable_customer_account=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - appropriation_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - bill_of_lading_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - cod_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - customer_reference=components.CustomerReference( - ref_sort=1, - ), - dealer_order_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - dept_number=components.DepartmentNumber( - ref_sort=3, - ), - fda_product_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - insurance=components.Insurance( - amount="5.5", - currency="USD", - ), - invoice_number=components.InvoiceNumber( - ref_sort=2, - ), - manifest_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - model_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - part_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - po_number=components.PoNumber( - ref_sort=2, - ), - production_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - purchase_request_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - rma_number=components.RmaNumber( - ref_sort=1, - ), - salesperson_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - serial_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - store_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - transaction_reference_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - ), - metadata="Customer ID 123456", - shipment_date="2021-03-22T12:00:00Z", - address_return=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - customs_declaration="adcfdddf8ec64b84ad22772bce3ea37a", - carrier_accounts=[ - "065a4a8c10d24a34ab932163a1b87f52", - "73f706f4bdb94b54a337563840ce52b0", - ], - ), carrier_account="a4391cd4ab974f478f55dc08b5c8e3b3", metadata="SHIPMENT #1", servicelevel_token="fedex_ground", - ), - components.BatchShipmentCreateRequest( shipment=components.ShipmentCreateRequest( - address_from=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - address_to=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - parcels=[ - components.ParcelCreateFromTemplateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - template=components.ParcelTemplateDPDUKEnum.DPD_UK_EXPRESS_PAK, - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - components.ParcelCreateFromTemplateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - template=components.ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR, - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - ], extra=components.ShipmentExtra( accounts_receivable_customer_account=components.UPSReferenceFields( prefix="ABC", @@ -778,217 +231,21 @@ with Shippo( ), metadata="Customer ID 123456", shipment_date="2021-03-22T12:00:00Z", - address_return=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - customs_declaration=components.CustomsDeclarationCreateRequest( - certify=True, - certify_signer="Shawn Ippotle", - contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE, - items=[ - - ], - non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN, - b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY, - contents_explanation="T-Shirt purchase", - duties_payor=components.CustomsDeclarationCreateRequestDutiesPayor( - account="2323434543", - type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY, - address=components.CustomsDeclarationCreateRequestAddress( - name="Patrick Kavanagh", - zip="80331", - country="DE", - ), - ), - exporter_identification=components.CustomsExporterIdentification( - eori_number="PL123456790ABCDE", - tax_id=components.CustomsTaxIdentification( - number="123456789", - type=components.CustomsTaxIdentificationType.EIN, - ), - ), - invoice="#123123", - metadata="Order ID #123123", - address_importer=components.AddressImporter( - name="Shwan Ippotle", - company="Shippo", - street1="Blumenstraße", - street3="", - street_no="22", - city="München", - state="CA", - zip="80331", - country="DE", - phone="80331", - email="shippotle@shippo.com", - is_residential=True, - ), - eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A, - incoterm=components.CustomsDeclarationIncotermEnum.DDP, - test=True, - ), - carrier_accounts=[ - "065a4a8c10d24a34ab932163a1b87f52", - "73f706f4bdb94b54a337563840ce52b0", - ], - ), - carrier_account="a4391cd4ab974f478f55dc08b5c8e3b3", - metadata="SHIPMENT #1", - servicelevel_token="fedex_ground", - ), - components.BatchShipmentCreateRequest( - shipment=components.ShipmentCreateRequest( address_from="d799c2679e644279b59fe661ac8fa488", - address_to=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - parcels=[ - - ], - extra=components.ShipmentExtra( - accounts_receivable_customer_account=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - appropriation_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - bill_of_lading_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - cod_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - customer_reference=components.CustomerReference( - ref_sort=1, - ), - dealer_order_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - dept_number=components.DepartmentNumber( - ref_sort=3, - ), - fda_product_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - insurance=components.Insurance( - amount="5.5", - currency="USD", - ), - invoice_number=components.InvoiceNumber( - ref_sort=2, - ), - manifest_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - model_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - part_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - po_number=components.PoNumber( - ref_sort=2, - ), - production_code=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - purchase_request_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - rma_number=components.RmaNumber( - ref_sort=1, - ), - salesperson_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - serial_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - store_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - transaction_reference_number=components.UPSReferenceFields( - prefix="ABC", - value="value", - ref_sort=1, - ), - ), - metadata="Customer ID 123456", - shipment_date="2021-03-22T12:00:00Z", address_return="d799c2679e644279b59fe661ac8fa488", + address_to="d799c2679e644279b59fe661ac8fa489", customs_declaration="adcfdddf8ec64b84ad22772bce3ea37a", carrier_accounts=[ "065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0", ], + parcels=[ + "", + ], ), - carrier_account="a4391cd4ab974f478f55dc08b5c8e3b3", - metadata="SHIPMENT #1", - servicelevel_token="fedex_ground", ), ]) - assert res is not None - # Handle response print(res) @@ -1021,19 +278,18 @@ When all the shipments are purchased, the status will change to `PURCHASED` and ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.batches.purchase(batch_id="") - assert res is not None - # Handle response print(res) @@ -1062,23 +318,20 @@ Removes shipments from an existing batch shipment. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.batches.remove_shipments(batch_id="", request_body=[ - "", - "", - "", + "", ]) - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/carrieraccounts/README.md b/docs/sdks/carrieraccounts/README.md index f55d5ce2..40306a54 100644 --- a/docs/sdks/carrieraccounts/README.md +++ b/docs/sdks/carrieraccounts/README.md @@ -1,12 +1,9 @@ # CarrierAccounts -(*carrier_accounts*) ## Overview Carriers are the companies who deliver your package. Shippo uses Carrier account objects as credentials to retrieve shipping rates and purchase labels from shipping Carriers. - - ### Available Operations * [list](#list) - List all carrier accounts @@ -21,25 +18,24 @@ Carriers are the companies who deliver your package. Shippo uses Carrier account Returns a list of all carrier accounts connected to your Shippo account. These carrier accounts include both Shippo carrier accounts and your own carrier accounts that you have connected to your Shippo account. -Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter.
-Using it appends the property `service_levels` to each carrier account.
+Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter. +Using it appends the property `service_levels` to each carrier account. By default, if the query parameter is omitted, the `service_levels` property will not be included in the response. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_accounts.list(request={}) - assert res is not None - # Handle response print(res) @@ -68,34 +64,38 @@ Creates a new carrier account or connects an existing carrier account to the Shi ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_accounts.create(request={ "account_id": "321123", "carrier": "fedex", + "metadata": "FEDEX Account", "parameters": { - "first_name": "Loyal", - "last_name": "Collier", - "phone_number": "(890) 307-8579", + "first_name": "Abdullah", + "last_name": "Ward", + "phone_number": "915-577-4415 x207", "from_address_st": "", "from_address_city": "", "from_address_state": "", "from_address_zip": "", "from_address_country_iso2": "", + "use_multi_factor_registration": False, + "verification_option": "SMS", + "verification_invoice_amount": "340", + "verification_invoice_date": "2024-03-09", + "verification_invoice_currency": "USD", }, - "metadata": "FEDEX Account", "test": False, }) - assert res is not None - # Handle response print(res) @@ -124,19 +124,18 @@ Returns an existing carrier account using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_accounts.get(carrier_account_id="") - assert res is not None - # Handle response print(res) @@ -165,46 +164,36 @@ Updates an existing carrier account object. The account_id and carrier can't be ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_accounts.update(carrier_account_id="", carrier_account_base={ "account_id": "****", "carrier": "usps", "parameters": { - "account_number": "94567e", - "aia_country_iso2": "US", - "billing_address_city": "San Francisco", - "billing_address_country_iso2": "US", - "billing_address_state": "CA", - "billing_address_street1": "731 Market St", - "billing_address_street2": "STE 200", - "billing_address_zip": "94103", - "collec_country_iso2": "US", - "collec_zip": "94103", - "company": "Shippo", - "currency_code": "USD", - "email": "hippo@shippo.com", - "full_name": "Shippo Meister", - "has_invoice": False, - "invoice_controlid": "1234", - "invoice_date": "20210529", - "invoice_number": "1112234", - "invoice_value": "11.23", - "phone": "1112223333", - "title": "Manager", - "ups_agreements": True, + "first_name": "Eldora", + "last_name": "Weber", + "phone_number": "1-505-428-6798", + "from_address_st": "", + "from_address_city": "", + "from_address_state": "", + "from_address_zip": "", + "from_address_country_iso2": "", + "use_multi_factor_registration": False, + "verification_option": "EMAIL", + "verification_invoice_amount": "340", + "verification_invoice_date": "2024-03-09", + "verification_invoice_currency": "USD", }, }) - assert res is not None - # Handle response print(res) @@ -234,16 +223,17 @@ Used by client applications to setup or reconnect an existing carrier account wi ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.carrier_accounts.initiate_oauth2_signin(carrier_account_object_id="", redirect_uri="https://enlightened-mortise.com/") + res = s_client.carrier_accounts.initiate_oauth2_signin(carrier_account_object_id="", redirect_uri="https://ashamed-reporter.biz") # Handle response print(res) @@ -278,22 +268,21 @@ Adds a Shippo carrier account ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_accounts.register(request={ + "carrier": "deutsche_post", "parameters": {}, - "carrier": "correos", }) - assert res is not None - # Handle response print(res) @@ -322,19 +311,18 @@ Returns the registration status for the given account for the given carrier ### Example Usage + ```python from shippo import Shippo from shippo.models import operations with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.carrier_accounts.get_registration_status(carrier=operations.Carrier.USPS) - - assert res is not None + res = s_client.carrier_accounts.get_registration_status(carrier=operations.Carrier.UPS) # Handle response print(res) diff --git a/docs/sdks/carrierparceltemplates/README.md b/docs/sdks/carrierparceltemplates/README.md index 63f62ebf..fb4ee236 100644 --- a/docs/sdks/carrierparceltemplates/README.md +++ b/docs/sdks/carrierparceltemplates/README.md @@ -1,12 +1,9 @@ # CarrierParcelTemplates -(*carrier_parcel_templates*) ## Overview A carrier parcel template represents a package used for shipping that has preset dimensions defined by a carrier. Some examples of a carrier parcel template include USPS Flat Rate Box and Fedex Small Pak. When using a carrier parcel template, the rates returned may be limited to the carrier that provides the box. You can create user parcel templates using a carrier parcel template. Shippo takes the dimensions of the carrier parcel template but you must configure the weight. - - ### Available Operations * [list](#list) - List all carrier parcel templates @@ -14,29 +11,29 @@ A carrier parcel template represents a package used for shipping that has preset ## list -List all carrier parcel template objects.
Use the following query string params to filter the results as needed.
-
    -
  • `include=all` (the default). Includes templates from all carriers
  • -
  • `include=user`. Includes templates only from carriers which the user has added (whether or not they're currently enabled)
  • -
  • `include=enabled`. includes templates only for carriers which the user has added and enabled
  • -
  • `carrier=*token*`. filter by specific carrier, e.g. fedex, usps
  • -
+List all carrier parcel template objects. + +Use the following query string params to filter the results as needed: + +- `include=all` (the default): includes templates from all carriers +- `include=user`: includes templates only from carriers which the user has added (whether or not they're currently enabled) +- `include=enabled`: includes templates only for carriers which the user has added and enabled +- `carrier=`: filter by specific carrier, e.g. `fedex`, `usps` ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_parcel_templates.list(carrier="fedex") - assert res is not None - # Handle response print(res) @@ -66,19 +63,18 @@ Fetches the parcel template information for a specific carrier parcel template, ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.carrier_parcel_templates.get(carrier_parcel_template_token="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/customsdeclarations/README.md b/docs/sdks/customsdeclarations/README.md index aa6598af..2d01c28c 100644 --- a/docs/sdks/customsdeclarations/README.md +++ b/docs/sdks/customsdeclarations/README.md @@ -1,11 +1,9 @@ # CustomsDeclarations -(*customs_declarations*) ## Overview Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - ### Available Operations @@ -15,22 +13,21 @@ customs clearance for your international shipments. ## list -Returns a a list of all customs declaration objects +Returns a list of all customs declaration objects ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.customs_declarations.list() - - assert res is not None + res = s_client.customs_declarations.list(page=1, results=5) # Handle response print(res) @@ -61,36 +58,21 @@ Creates a new customs declaration object ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.customs_declarations.create(request={ + "b13a_filing_option": components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY, "certify": True, "certify_signer": "Shawn Ippotle", - "contents_type": components.CustomsDeclarationContentsTypeEnum.MERCHANDISE, - "items": [ - { - "description": "T-Shirt", - "mass_unit": components.WeightUnitEnum.LB, - "net_weight": "5", - "origin_country": "", - "quantity": 20, - "value_amount": "200", - "value_currency": "USD", - "metadata": "Order ID \"123454\"", - "sku_code": "HM-123", - "hs_code": "0901.21", - }, - ], - "non_delivery_option": components.CustomsDeclarationNonDeliveryOptionEnum.RETURN, - "b13a_filing_option": components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY, "contents_explanation": "T-Shirt purchase", "duties_payor": { "account": "2323434543", @@ -124,13 +106,14 @@ with Shippo( "email": "shippotle@shippo.com", "is_residential": True, }, + "contents_type": components.CustomsDeclarationContentsTypeEnum.MERCHANDISE, "eel_pfc": components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A, "incoterm": components.CustomsDeclarationIncotermEnum.DDP, + "items": [], + "non_delivery_option": components.CustomsDeclarationNonDeliveryOptionEnum.RETURN, "test": True, }) - assert res is not None - # Handle response print(res) @@ -159,18 +142,17 @@ Returns an existing customs declaration using an object ID ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.customs_declarations.get(customs_declaration_id="") - - assert res is not None + res = s_client.customs_declarations.get(customs_declaration_id="", page=1) # Handle response print(res) diff --git a/docs/sdks/customsitems/README.md b/docs/sdks/customsitems/README.md index 827e62d6..746fdb76 100644 --- a/docs/sdks/customsitems/README.md +++ b/docs/sdks/customsitems/README.md @@ -1,10 +1,8 @@ # CustomsItems -(*customs_items*) ## Overview Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - ### Available Operations @@ -18,18 +16,17 @@ Returns a list all customs items objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.customs_items.list() - - assert res is not None + res = s_client.customs_items.list(page=1, results=25) # Handle response print(res) @@ -60,31 +57,30 @@ Creates a new customs item object. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.customs_items.create(request={ "description": "T-Shirt", "mass_unit": components.WeightUnitEnum.LB, + "metadata": "Order ID \"123454\"", "net_weight": "5", "origin_country": "", "quantity": 20, - "value_amount": "200", - "value_currency": "USD", - "metadata": "Order ID \"123454\"", "sku_code": "HM-123", "hs_code": "0901.21", + "value_amount": "200", + "value_currency": "USD", }) - assert res is not None - # Handle response print(res) @@ -113,18 +109,17 @@ Returns an existing customs item using an object ID ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.customs_items.get(customs_item_id="") - - assert res is not None + res = s_client.customs_items.get(customs_item_id="", page=1) # Handle response print(res) diff --git a/docs/sdks/manifests/README.md b/docs/sdks/manifests/README.md index c261340c..7b8a20f4 100644 --- a/docs/sdks/manifests/README.md +++ b/docs/sdks/manifests/README.md @@ -1,17 +1,10 @@ # Manifests -(*manifests*) ## Overview -A manifest is a single-page document with a barcode that carriers can scan to accept all packages into transit without the need to scan each item individually. +A manifest is a single-page document with a barcode that carriers can scan to accept all packages into transit without the need to scan each item individually. They are close-outs of shipping labels of a certain day. Some carriers require manifests to process the shipments. - - -# Manifest Errors -The following codes and messages are the possible errors that may occur when creating Manifests. - - ### Available Operations * [list](#list) - List all manifests @@ -24,18 +17,17 @@ Returns a list of all manifest objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.manifests.list() - - assert res is not None + res = s_client.manifests.list(page=1, results=5) # Handle response print(res) @@ -66,41 +58,25 @@ Creates a new manifest object. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.manifests.create(request={ "carrier_account": "adcfdddf8ec64b84ad22772bce3ea37a", "shipment_date": "2014-05-16T23:59:59Z", - "address_from": { - "country": "US", - "name": "Shwan Ippotle", - "company": "Shippo", - "street1": "215 Clayton St.", - "street3": "", - "street_no": "", - "city": "San Francisco", - "state": "CA", - "zip": "94117", - "phone": "+1 555 341 9393", - "email": "shippotle@shippo.com", - "is_residential": True, - "metadata": "Customer ID 123456", - "validate_": True, - }, "transactions": [ "adcfdddf8ec64b84ad22772bce3ea37a", ], + "address_from": "", }) - assert res is not None - # Handle response print(res) @@ -129,19 +105,18 @@ Returns an existing manifest using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.manifests.get(manifest_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/orders/README.md b/docs/sdks/orders/README.md index d683caf9..5605cd96 100644 --- a/docs/sdks/orders/README.md +++ b/docs/sdks/orders/README.md @@ -1,21 +1,11 @@ # Orders -(*orders*) ## Overview -An order is a request from a customer to purchase goods from a merchant. +An order is a request from a customer to purchase goods from a merchant. Use the orders object to load orders from your system to the Shippo dashboard. -You can use the orders object to create, retrieve, list, and manage orders programmatically. +You can use the orders object to create, retrieve, list, and manage orders programmatically. You can also retrieve shipping rates, purchase labels, and track shipments for each order. - - -# Line Item -

-
Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource - in the future. Currently it's a nested object within the order resource.

-

- A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. - ### Available Operations @@ -29,14 +19,15 @@ Returns a list of all order objects. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.orders.list(request={ @@ -46,8 +37,6 @@ with Shippo( "shop_app": components.OrderShopAppEnum.SHIPPO, }) - assert res is not None - # Handle response print(res) @@ -76,21 +65,33 @@ Creates a new order object. ### Example Usage + ```python -import dateutil.parser from shippo import Shippo from shippo.models import components +from shippo.utils import parse_datetime with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.orders.create(request=components.OrderCreateRequest( + currency="USD", + notes="This customer is a VIP", + order_number="#1068", + order_status=components.OrderStatusEnum.PAID, placed_at="2016-09-23T01:28:12Z", - to_address=components.AddressCreateRequest( - country="US", + shipping_cost="12.83", + shipping_cost_currency="USD", + shipping_method="USPS First Class Package", + subtotal_price="12.1", + total_price="24.93", + total_tax="0.0", + weight="0.4", + weight_unit=components.WeightUnitEnum.LB, + from_address=components.AddressCreateRequest( name="Shwan Ippotle", company="Shippo", street1="215 Clayton St.", @@ -99,26 +100,14 @@ with Shippo( city="San Francisco", state="CA", zip="94117", + country="US", phone="+1 555 341 9393", email="shippotle@shippo.com", is_residential=True, metadata="Customer ID 123456", validate_=True, ), - currency="USD", - notes="This customer is a VIP", - order_number="#1068", - order_status=components.OrderStatusEnum.PAID, - shipping_cost="12.83", - shipping_cost_currency="USD", - shipping_method="USPS First Class Package", - subtotal_price="12.1", - total_price="24.93", - total_tax="0.0", - weight="0.4", - weight_unit=components.WeightUnitEnum.LB, - from_address=components.AddressCreateRequest( - country="US", + to_address=components.AddressCreateRequest( name="Shwan Ippotle", company="Shippo", street1="215 Clayton St.", @@ -127,6 +116,7 @@ with Shippo( city="San Francisco", state="CA", zip="94117", + country="US", phone="+1 555 341 9393", email="shippotle@shippo.com", is_residential=True, @@ -137,21 +127,8 @@ with Shippo( components.LineItemBase( currency="USD", manufacture_country="US", - max_delivery_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), - max_ship_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), - quantity=20, - sku="HM-123", - title="Hippo Magazines", - total_price="12.1", - variant_title="June Edition", - weight="0.4", - weight_unit=components.WeightUnitEnum.LB, - ), - components.LineItemBase( - currency="USD", - manufacture_country="US", - max_delivery_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), - max_ship_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), + max_delivery_time=parse_datetime("2016-07-23T00:00:00Z"), + max_ship_time=parse_datetime("2016-07-23T00:00:00Z"), quantity=20, sku="HM-123", title="Hippo Magazines", @@ -163,8 +140,6 @@ with Shippo( ], )) - assert res is not None - # Handle response print(res) @@ -193,19 +168,18 @@ Retrieves an existing order using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.orders.get(order_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/parcels/README.md b/docs/sdks/parcels/README.md index f9115b95..52fdd681 100644 --- a/docs/sdks/parcels/README.md +++ b/docs/sdks/parcels/README.md @@ -1,14 +1,8 @@ # Parcels -(*parcels*) ## Overview -A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates. - - -# Parcel Extras -The following values are supported for the `extra` field of the parcel object. - +A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates. ### Available Operations @@ -22,18 +16,17 @@ Returns a list of all parcel objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.parcels.list() - - assert res is not None + res = s_client.parcels.list(page=1, results=25) # Handle response print(res) @@ -64,23 +57,18 @@ Creates a new parcel object. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.parcels.create(request={ - "mass_unit": components.WeightUnitEnum.LB, - "weight": "1", - "distance_unit": components.DistanceUnitEnum.IN, - "height": "1", - "length": "1", - "width": "1", "extra": { "cod": { "amount": "5.5", @@ -95,10 +83,14 @@ with Shippo( }, }, "metadata": "Customer ID 123456", + "mass_unit": components.WeightUnitEnum.LB, + "weight": "1", + "distance_unit": components.DistanceUnitEnum.IN, + "height": "1", + "length": "1", + "width": "1", }) - assert res is not None - # Handle response print(res) @@ -127,19 +119,18 @@ Returns parcel details using an existing parcel object ID (this will not return ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.parcels.get(parcel_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/pickups/README.md b/docs/sdks/pickups/README.md index d32d398d..216a2e4c 100644 --- a/docs/sdks/pickups/README.md +++ b/docs/sdks/pickups/README.md @@ -1,11 +1,9 @@ # Pickups -(*pickups*) ## Overview A pickup is when you schedule a carrier to collect a package for delivery. Use Shippo’s pickups endpoint to schedule pickups with USPS and DHL Express for eligible shipments that you have already created. - ### Available Operations @@ -17,15 +15,16 @@ Creates a pickup object. This request is for a carrier to come to a specified lo ### Example Usage + ```python -import dateutil.parser from shippo import Shippo from shippo.models import components +from shippo.utils import parse_datetime with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.pickups.create(request={ @@ -33,14 +32,14 @@ with Shippo( "location": { "address": { "name": "Shwan Ippotle", + "company": "Shippo", "street1": "215 Clayton St.", + "street3": "", + "street_no": "", "city": "San Francisco", "state": "CA", "zip": "94117", "country": "US", - "company": "Shippo", - "street3": "", - "street_no": "", "phone": "+1 555 341 9393", "email": "shippotle@shippo.com", "is_residential": True, @@ -51,15 +50,13 @@ with Shippo( "building_type": components.BuildingType.APARTMENT, "instructions": "Behind screen door", }, - "requested_end_time": dateutil.parser.isoparse("2024-06-17T07:14:55.338Z"), - "requested_start_time": dateutil.parser.isoparse("2024-11-30T17:06:07.804Z"), + "requested_end_time": parse_datetime("2025-03-28T03:12:16.314Z"), + "requested_start_time": parse_datetime("2024-05-20T03:35:43.192Z"), "transactions": [ "adcfdddf8ec64b84ad22772bce3ea37a", ], }) - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/rates/README.md b/docs/sdks/rates/README.md index cd548c50..bfb63062 100644 --- a/docs/sdks/rates/README.md +++ b/docs/sdks/rates/README.md @@ -1,10 +1,8 @@ # Rates -(*rates*) ## Overview A rate is the cost to ship a parcel from a carrier. The rate object details the service level including the cost and transit time. - ### Available Operations @@ -14,23 +12,22 @@ A rate is the cost to ship a parcel from a carrier. The rate object details the ## get -Returns an existing rate using a rate object ID. +Returns an existing rate using a rate object ID. Rates older than 390 days are not returned. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.rates.get(rate_id="") - assert res is not None - # Handle response print(res) @@ -55,22 +52,21 @@ with Shippo( ## list_shipment_rates -Returns a paginated list of rates associated with a shipment +Returns a paginated list of rates associated with a shipment. Rates for shipments older than 390 days are not returned. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.rates.list_shipment_rates(shipment_id="") - - assert res is not None + res = s_client.rates.list_shipment_rates(shipment_id="", page=1, results=25) # Handle response print(res) @@ -102,28 +98,28 @@ Returns all available shipping rates for a shipment object. When you create a new valid shipment object, Shippo automatically calculates all available rates. Depending on your shipment data, there may be none, one or multiple rates. -By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on open exchange rates. +By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on [open exchange rates](http://openexchangerates.org/api/currencies.json). Note: re-requesting the rates with a different currency code will re-queue the shipment (i.e. set the Shipment's `status` to `QUEUED`) and the converted currency rates will only be available when the Shipment's `status` is set to `SUCCESS`. +Rates for shipments older than 390 days are not returned. + ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.rates.list_shipment_rates_by_currency_code(request={ "shipment_id": "", - "currency_code": "USD", }) - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/ratesatcheckout/README.md b/docs/sdks/ratesatcheckout/README.md index 98efa421..e296bbeb 100644 --- a/docs/sdks/ratesatcheckout/README.md +++ b/docs/sdks/ratesatcheckout/README.md @@ -1,17 +1,15 @@ # RatesAtCheckout -(*rates_at_checkout*) ## Overview Rates at checkout is a tool for merchants to display up-to-date shipping estimates based on what's in their customers cart and where they’re shipping to. Merchants set up curated shipping options for customers in the checkout flow based on data in the shopping cart. The request must include the **to** address and item information. Optional fields are the **from** address and package information. If the optional fields are not included, the service will use the default address and/or package configured for rates at checkout. The response is a list of shipping options based on the Service Group configuration. -(see Service Group configuration for details). - +(see [Service Group configuration](/shippoapi/public-api/service-groups) for details). + # Default Parcel Template Assign one of your user parcel templates to be the default used when generating Live Rates. This template will be used by default when generating Live Rates, unless you explicitly provide a parcel in the Live Rates request. - ### Available Operations @@ -29,56 +27,24 @@ template or a fully formed user parcel template object as the parcel value. ### Example Usage + ```python -import dateutil.parser from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.rates_at_checkout.create(request=components.LiveRateCreateRequest( - address_to=components.AddressCompleteCreateRequest( - name="Shwan Ippotle", - street1="215 Clayton St.", - city="San Francisco", - state="CA", - zip="94117", - country="US", - company="Shippo", - street3="", - street_no="", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - line_items=[ - components.LineItem( - currency="USD", - manufacture_country="US", - max_delivery_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), - max_ship_time=dateutil.parser.isoparse("2016-07-23T00:00:00Z"), - quantity=20, - sku="HM-123", - title="Hippo Magazines", - total_price="12.1", - variant_title="June Edition", - weight="0.4", - weight_unit=components.WeightUnitEnum.LB, - object_id="abf7d5675d744b6ea9fdb6f796b28f28", - ), - ], address_from="", + address_to="", + line_items=[], parcel="5df144dca289442cv7a06", )) - assert res is not None - # Handle response print(res) @@ -107,19 +73,18 @@ Retrieve and display the currently configured default parcel template for live r ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.rates_at_checkout.get_default_parcel_template(request={}) - assert res is not None - # Handle response print(res) @@ -148,21 +113,20 @@ Update the currently configured default parcel template for live rates. The obje ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.rates_at_checkout.update_default_parcel_template(request={ "object_id": "b958d3690bb04bb8b2986724872750f5", }) - assert res is not None - # Handle response print(res) @@ -191,13 +155,14 @@ Clears the currently configured default parcel template for live rates. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: s_client.rates_at_checkout.delete_default_parcel_template(request={}) diff --git a/docs/sdks/refunds/README.md b/docs/sdks/refunds/README.md index da4c0115..df739ffb 100644 --- a/docs/sdks/refunds/README.md +++ b/docs/sdks/refunds/README.md @@ -1,10 +1,8 @@ # Refunds -(*refunds*) ## Overview Refunds are reimbursements for successfully created but unused shipping labels or other charges. - ### Available Operations @@ -18,22 +16,21 @@ Creates a new refund object. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.refunds.create(request={ - "transaction": "915d94940ea54c3a80cbfa328722f5a1", "async_": False, + "transaction": "915d94940ea54c3a80cbfa328722f5a1", }) - assert res is not None - # Handle response print(res) @@ -62,19 +59,18 @@ Returns a list all refund objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.refunds.list(request={}) - assert res is not None - # Handle response print(res) @@ -103,19 +99,18 @@ Returns an existing rate using a rate object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.refunds.get(refund_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/servicegroups/README.md b/docs/sdks/servicegroups/README.md index 06f2955a..500b29f1 100644 --- a/docs/sdks/servicegroups/README.md +++ b/docs/sdks/servicegroups/README.md @@ -1,11 +1,9 @@ # ServiceGroups -(*service_groups*) ## Overview A service group is a set of service levels grouped together. Rates at checkout uses services groups to present available shipping options to customers in their shopping basket. - ### Available Operations @@ -20,19 +18,18 @@ Returns a list of service group objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.service_groups.list(request={}) - assert res is not None - # Handle response print(res) @@ -61,35 +58,29 @@ Creates a new service group. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.service_groups.create(request={ "description": "USPS shipping options", - "name": "USPS Shipping", - "type": components.ServiceGroupTypeEnum.FLAT_RATE, - "service_levels": [ - { - "account_object_id": "80feb1633d4a43c898f0058506cfd82d", - "service_level_token": "ups_next_day_air_saver", - }, - ], "flat_rate": "5", "flat_rate_currency": "USD", "free_shipping_threshold_currency": "USD", "free_shipping_threshold_min": "5", + "name": "USPS Shipping", "rate_adjustment": 15, + "type": components.ServiceGroupTypeEnum.FLAT_RATE, + "service_levels": [], }) - assert res is not None - # Handle response print(res) @@ -114,23 +105,29 @@ with Shippo( ## update -Updates an existing service group object.
The object_id cannot be updated as it is the unique identifier for the object. +Updates an existing service group object. The object_id cannot be updated as it is the unique identifier for the object. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.service_groups.update(request={ "description": "USPS shipping options", + "flat_rate": "5", + "flat_rate_currency": "USD", + "free_shipping_threshold_currency": "USD", + "free_shipping_threshold_min": "5", "name": "USPS Shipping", + "rate_adjustment": 15, "type": components.ServiceGroupTypeEnum.FLAT_RATE, "object_id": "80feb1633d4a43c898f005850", "is_active": True, @@ -139,24 +136,9 @@ with Shippo( "account_object_id": "80feb1633d4a43c898f0058506cfd82d", "service_level_token": "ups_next_day_air_saver", }, - { - "account_object_id": "80feb1633d4a43c898f0058506cfd82d", - "service_level_token": "ups_next_day_air_saver", - }, - { - "account_object_id": "80feb1633d4a43c898f0058506cfd82d", - "service_level_token": "ups_next_day_air_saver", - }, ], - "flat_rate": "5", - "flat_rate_currency": "USD", - "free_shipping_threshold_currency": "USD", - "free_shipping_threshold_min": "5", - "rate_adjustment": 15, }) - assert res is not None - # Handle response print(res) @@ -185,13 +167,14 @@ Deletes an existing service group using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: s_client.service_groups.delete(service_group_id="") diff --git a/docs/sdks/shipments/README.md b/docs/sdks/shipments/README.md index 28fced5e..323a9df9 100644 --- a/docs/sdks/shipments/README.md +++ b/docs/sdks/shipments/README.md @@ -1,14 +1,8 @@ # Shipments -(*shipments*) ## Overview A shipment is the act of transporting goods. A shipment object contains **to** and **from** addresses, and the parcel details that you are shipping. You can use the shipment object to retrieve shipping rates and purchase a shipping label. - - -# Shipment Extras -The following values are supported for the `extra` field of the shipment object. - ### Available Operations @@ -18,40 +12,35 @@ The following values are supported for the `extra` field of the shipment object. ## list -Returns a list of all shipment objects.

-In order to filter results, you must use the below path parameters. -A maximum date range of 90 days is permitted. -Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported).

+Returns a list of all shipment objects. -Optional path parameters:
- `object_created_gt`- object(s) created greater than a provided date time
- `object_created_gte` - object(s) created greater than or equal to a provided date time
- `object_created_lt` - object(s) created less than a provided date time
- `object_created_lte` - object(s) created less than or equal to a provided date time
+To filter results, use the optional query parameters below. Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported). - Date format examples:
- `2017-01-01`
- `2017-01-01T03:30:30` or `2017-01-01T03:30:30.5`
- `2017-01-01T03:30:30Z`

+- `object_created_gt`: object(s) created after the provided date time +- `object_created_gte`: object(s) created at or after the provided date time +- `object_created_lt`: object(s) created before the provided date time +- `object_created_lte`: object(s) created at or before the provided date time - Example URL:
- `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` +Date format examples: `2017-01-01`, `2017-01-01T03:30:30` (or `2017-01-01T03:30:30.5`), `2017-01-01T03:30:30Z` + +Example URL: `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` + +Note: Shipment objects older than 390 days are not returned. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shipments.list(request={}) - assert res is not None - # Handle response print(res) @@ -80,96 +69,18 @@ Creates a new shipment object. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shipments.create(request=components.ShipmentCreateRequest( - address_from=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - address_to=components.AddressCreateRequest( - country="US", - name="Shwan Ippotle", - company="Shippo", - street1="215 Clayton St.", - street3="", - street_no="", - city="San Francisco", - state="CA", - zip="94117", - phone="+1 555 341 9393", - email="shippotle@shippo.com", - is_residential=True, - metadata="Customer ID 123456", - validate_=True, - ), - parcels=[ - "", - components.ParcelCreateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - distance_unit=components.DistanceUnitEnum.IN, - height="1", - length="1", - width="1", - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - components.ParcelCreateRequest( - mass_unit=components.WeightUnitEnum.LB, - weight="1", - distance_unit=components.DistanceUnitEnum.IN, - height="1", - length="1", - width="1", - extra=components.ParcelExtra( - cod=components.Cod( - amount="5.5", - currency="USD", - payment_method=components.PaymentMethod.CASH, - ), - insurance=components.ParcelInsurance( - amount="5.5", - content="Laptop", - currency="USD", - provider=components.ParcelInsuranceProvider.UPS, - ), - ), - metadata="Customer ID 123456", - ), - ], extra=components.ShipmentExtra( accounts_receivable_customer_account=components.UPSReferenceFields( prefix="ABC", @@ -273,61 +184,19 @@ with Shippo( ), metadata="Customer ID 123456", shipment_date="2021-03-22T12:00:00Z", + address_from="d799c2679e644279b59fe661ac8fa488", address_return="d799c2679e644279b59fe661ac8fa488", - customs_declaration=components.CustomsDeclarationCreateRequest( - certify=True, - certify_signer="Shawn Ippotle", - contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE, - items=[ - - ], - non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN, - b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY, - contents_explanation="T-Shirt purchase", - duties_payor=components.CustomsDeclarationCreateRequestDutiesPayor( - account="2323434543", - type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY, - address=components.CustomsDeclarationCreateRequestAddress( - name="Patrick Kavanagh", - zip="80331", - country="DE", - ), - ), - exporter_identification=components.CustomsExporterIdentification( - eori_number="PL123456790ABCDE", - tax_id=components.CustomsTaxIdentification( - number="123456789", - type=components.CustomsTaxIdentificationType.EIN, - ), - ), - invoice="#123123", - metadata="Order ID #123123", - address_importer=components.AddressImporter( - name="Shwan Ippotle", - company="Shippo", - street1="Blumenstraße", - street3="", - street_no="22", - city="München", - state="CA", - zip="80331", - country="DE", - phone="80331", - email="shippotle@shippo.com", - is_residential=True, - ), - eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A, - incoterm=components.CustomsDeclarationIncotermEnum.DDP, - test=True, - ), + address_to="d799c2679e644279b59fe661ac8fa489", + customs_declaration="adcfdddf8ec64b84ad22772bce3ea37a", carrier_accounts=[ "065a4a8c10d24a34ab932163a1b87f52", "73f706f4bdb94b54a337563840ce52b0", ], + parcels=[ + "", + ], )) - assert res is not None - # Handle response print(res) @@ -352,23 +221,22 @@ with Shippo( ## get -Returns an existing shipment using an object ID +Returns an existing shipment using an object ID. Shipment objects older than 390 days are not returned. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shipments.get(shipment_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/shippo/README.md b/docs/sdks/shippo/README.md deleted file mode 100644 index 1ed996ba..00000000 --- a/docs/sdks/shippo/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Shippo SDK - -## Overview - -Shippo external API.: Use this API to integrate with the Shippo service - -### Available Operations diff --git a/docs/sdks/shippoaccounts/README.md b/docs/sdks/shippoaccounts/README.md index 8be27627..ff391591 100644 --- a/docs/sdks/shippoaccounts/README.md +++ b/docs/sdks/shippoaccounts/README.md @@ -1,12 +1,10 @@ # ShippoAccounts -(*shippo_accounts*) ## Overview Shippo Accounts are used by Shippo Platform Accounts to create and manage Managed Shippo Accounts. Managed Shippo Accounts are headless accounts that represent your customers. They are opaque to your end customers, meaning customers do not need to create their own Shippo login or have a billing relationship with Shippo. -They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our guide for more details. - +They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our [guide](https://docs.goshippo.com/docs/platformaccounts/platform_accounts/) for more details. ### Available Operations @@ -21,18 +19,17 @@ Returns a list of Shippo Managed Accounts objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: - res = s_client.shippo_accounts.list() - - assert res is not None + res = s_client.shippo_accounts.list(page=1, results=25) # Handle response print(res) @@ -59,17 +56,18 @@ with Shippo( ## create -Creates a new Shippo Managed Account. +Creates a new [Shippo Managed Account](https://docs.goshippo.com/docs/platformaccounts/platform_using_accounts/). ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shippo_accounts.create(request={ @@ -79,8 +77,6 @@ with Shippo( "company_name": "Acme", }) - assert res is not None - # Handle response print(res) @@ -109,19 +105,18 @@ Returns a Shippo Managed Account using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shippo_accounts.get(shippo_account_id="") - assert res is not None - # Handle response print(res) @@ -150,13 +145,14 @@ Updates a Shippo Managed Account using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.shippo_accounts.update(shippo_account_id="", shippo_account_update_request={ @@ -166,8 +162,6 @@ with Shippo( "company_name": "Acme", }) - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/trackingstatus/README.md b/docs/sdks/trackingstatus/README.md index 4a686a8c..292dabe7 100644 --- a/docs/sdks/trackingstatus/README.md +++ b/docs/sdks/trackingstatus/README.md @@ -1,19 +1,17 @@ # TrackingStatus -(*tracking_status*) ## Overview -


+


If you purchased your shipping label through Shippo, you can also get all the tracking details of your Shipment -from the Transaction object. -

+from the [Transaction](/shippoapi/public-api/transactions) object. +

A tracking status of a package is an indication of current location of a package in the supply chain. For example, sorting, warehousing, or out for delivery. Use the tracking status object to track the location of your shipments. -When using your Test token for tracking, you need to use Shippo's +When using your [Test](https://docs.goshippo.com/docs/guides_general/authentication/) token for tracking, you need to use Shippo's predefined tokens for testing different tracking statuses. You can find more information in our -Tracking tutorial on how to do this, and what the +[Tracking tutorial](https://docs.goshippo.com/docs/tracking/tracking/) on how to do this, and what the payloads look like. - ### Available Operations @@ -22,27 +20,26 @@ payloads look like. ## create -Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on Webhooks and Tracking. +Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on [Webhooks](https://docs.goshippo.com/docs/tracking/webhooks/) and [Tracking](https://docs.goshippo.com/docs/tracking/tracking/). ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.tracking_status.create(request={ "carrier": "usps", - "tracking_number": "9205590164917312751089", "metadata": "Order 000123", + "tracking_number": "9205590164917312751089", }) - assert res is not None - # Handle response print(res) @@ -71,19 +68,18 @@ Returns the tracking status of a shipment using a carrier name and a tracking nu ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.tracking_status.get(tracking_number="", carrier="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/transactions/README.md b/docs/sdks/transactions/README.md index 92c1b72e..20fa888b 100644 --- a/docs/sdks/transactions/README.md +++ b/docs/sdks/transactions/README.md @@ -1,10 +1,8 @@ # Transactions -(*transactions*) ## Overview A transaction is the purchase of a shipping label from a shipping provider for a specific service. You can print purchased labels and used them to ship a parcel with a carrier, such as USPS or FedEx. - ### Available Operations @@ -18,14 +16,15 @@ Returns a list of all transaction objects. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.transactions.list(request={ @@ -33,8 +32,6 @@ with Shippo( "tracking_status": components.TrackingStatusEnum.DELIVERED, }) - assert res is not None - # Handle response print(res) @@ -59,30 +56,31 @@ with Shippo( ## create -Creates a new transaction object and purchases the shipping label using a rate object that has previously been created.
OR
Creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. +Creates a new transaction object and purchases the shipping label using a rate object that has previously been created. + +Alternatively, creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.transactions.create(request={ - "rate": "ec9f0d3adc9441449c85d315f0997fd5", "async_": False, "label_file_type": components.LabelFileTypeEnum.PDF_4X6, "metadata": "Order ID #12345", + "rate": "ec9f0d3adc9441449c85d315f0997fd5", "order": "adcfdddf8ec64b84ad22772bce3ea37a", }) - assert res is not None - # Handle response print(res) @@ -111,19 +109,18 @@ Returns an existing transaction using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.transactions.get(transaction_id="") - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/userparceltemplates/README.md b/docs/sdks/userparceltemplates/README.md index 245e9013..471068c8 100644 --- a/docs/sdks/userparceltemplates/README.md +++ b/docs/sdks/userparceltemplates/README.md @@ -1,5 +1,4 @@ # UserParcelTemplates -(*user_parcel_templates*) ## Overview @@ -9,7 +8,6 @@ them to be defined once and then used for many shipments. These parcel templates User parcel templates can also be created using a carrier parcel template, where the dimensions will be copied from the carrier presets, but the weight can be configured by you. - ### Available Operations @@ -25,19 +23,18 @@ Returns a list all of all user parcel template objects. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.user_parcel_templates.list(request={}) - assert res is not None - # Handle response print(res) @@ -62,33 +59,39 @@ with Shippo( ## create -Creates a new user parcel template.
You can choose to create a +Creates a new user parcel template. + +You can choose to create a parcel template using a preset carrier template as a starting point, or you can create an entirely custom one. To use a preset carrier template, -pass in a unique template token from this list +pass in a unique template token from [this list](/shippoapi/public-api/parcel-templates) plus the weight fields (**weight** and **weight_unit**). Otherwise, omit the template field and pass the other fields, for the weight, length, height, and depth, as well as their units." ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.user_parcel_templates.create(request={ + "distance_unit": components.DistanceUnitEnum.IN, + "height": "6", + "length": "10", + "name": "My Custom Template", "weight": "12", "weight_unit": components.WeightUnitEnum.LB, + "width": "8", }) - assert res is not None - # Handle response print(res) @@ -117,13 +120,14 @@ Deletes a user parcel template using an object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: s_client.user_parcel_templates.delete(user_parcel_template_object_id="") @@ -152,19 +156,18 @@ template, identified by the object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.user_parcel_templates.get(user_parcel_template_object_id="") - assert res is not None - # Handle response print(res) @@ -193,14 +196,15 @@ Updates an existing user parcel template. ### Example Usage + ```python from shippo import Shippo from shippo.models import components with Shippo( - api_key_header="", shippo_api_version="2018-02-08", + api_key_header="", ) as s_client: res = s_client.user_parcel_templates.update(user_parcel_template_object_id="", user_parcel_template_update_request={ @@ -208,13 +212,11 @@ with Shippo( "height": "6", "length": "10", "name": "My Custom Template", - "width": "8", "weight": "12", "weight_unit": components.WeightUnitEnum.LB, + "width": "8", }) - assert res is not None - # Handle response print(res) diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/webhooks/README.md index 5e7bb08a..3eaa829d 100644 --- a/docs/sdks/webhooks/README.md +++ b/docs/sdks/webhooks/README.md @@ -1,14 +1,8 @@ # Webhooks -(*webhooks*) ## Overview Webhooks are a way for Shippo to notify your application when a specific event occurs. For example, when a label is purchased or when a shipment tracking status has changed. You can use webhooks to trigger actions in your application, such as sending an email or updating a database. - - -# Webhook Payload -The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration. - ### Available Operations @@ -24,6 +18,7 @@ Creates a new webhook to send notifications to a URL when a specific event occur ### Example Usage + ```python from shippo import Shippo from shippo.models import components @@ -31,18 +26,15 @@ from shippo.models import components with Shippo( api_key_header="", - shippo_api_version="2018-02-08", ) as s_client: res = s_client.webhooks.create_webhook(request={ - "event": components.WebhookEventTypeEnum.BATCH_CREATED, + "event": components.WebhookEventTypeEnum.TRANSACTION_UPDATED, "url": "https://example.com/shippo-webhook", "active": True, "is_test": False, }) - assert res is not None - # Handle response print(res) @@ -71,19 +63,17 @@ Returns a list of all webhooks you have created. ### Example Usage + ```python from shippo import Shippo with Shippo( api_key_header="", - shippo_api_version="2018-02-08", ) as s_client: res = s_client.webhooks.list_webhooks() - assert res is not None - # Handle response print(res) @@ -111,19 +101,17 @@ Returns the details of a specific webhook using the webhook object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( api_key_header="", - shippo_api_version="2018-02-08", ) as s_client: res = s_client.webhooks.get_webhook(webhook_id="") - assert res is not None - # Handle response print(res) @@ -152,6 +140,7 @@ Updates an existing webhook using the webhook object ID. ### Example Usage + ```python from shippo import Shippo from shippo.models import components @@ -159,18 +148,15 @@ from shippo.models import components with Shippo( api_key_header="", - shippo_api_version="2018-02-08", ) as s_client: res = s_client.webhooks.update_webhook(webhook_id="", webhook_update_request={ - "event": components.WebhookEventTypeEnum.BATCH_CREATED, + "event": components.WebhookEventTypeEnum.ALL, "url": "https://example.com/shippo-webhook", "active": True, "is_test": False, }) - assert res is not None - # Handle response print(res) @@ -200,13 +186,13 @@ Deletes a specific webhook using the webhook object ID. ### Example Usage + ```python from shippo import Shippo with Shippo( api_key_header="", - shippo_api_version="2018-02-08", ) as s_client: s_client.webhooks.delete_webhook(webhook_id="") diff --git a/poetry.lock b/poetry.lock index 8a4e1b7d..b3e5badd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.0.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "annotated-types" @@ -32,7 +32,7 @@ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] trio = ["trio (>=0.26.1)"] [[package]] @@ -91,21 +91,6 @@ files = [ graph = ["objgraph (>=1.7.2)"] profile = ["gprof2dot (>=2022.7.29)"] -[[package]] -name = "eval-type-backport" -version = "0.2.2" -description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, - {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, -] - -[package.extras] -tests = ["pytest"] - [[package]] name = "exceptiongroup" version = "1.2.2" @@ -113,7 +98,7 @@ description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["main", "dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -124,31 +109,31 @@ test = ["pytest (>=6)"] [[package]] name = "h11" -version = "0.14.0" +version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] [[package]] name = "httpcore" -version = "1.0.7" +version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, - {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, + {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, + {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] [package.dependencies] certifi = "*" -h11 = ">=0.13,<0.15" +h11 = ">=0.16" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] @@ -186,7 +171,7 @@ httpcore = "==1.*" idna = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -268,50 +253,44 @@ files = [ [[package]] name = "mypy" -version = "1.14.1" +version = "1.15.0" description = "Optional static typing for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "mypy-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:52686e37cf13d559f668aa398dd7ddf1f92c5d613e4f8cb262be2fb4fedb0fcb"}, - {file = "mypy-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fb545ca340537d4b45d3eecdb3def05e913299ca72c290326be19b3804b39c0"}, - {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90716d8b2d1f4cd503309788e51366f07c56635a3309b0f6a32547eaaa36a64d"}, - {file = "mypy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae753f5c9fef278bcf12e1a564351764f2a6da579d4a81347e1d5a15819997b"}, - {file = "mypy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0fe0f5feaafcb04505bcf439e991c6d8f1bf8b15f12b05feeed96e9e7bf1427"}, - {file = "mypy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:7d54bd85b925e501c555a3227f3ec0cfc54ee8b6930bd6141ec872d1c572f81f"}, - {file = "mypy-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f995e511de847791c3b11ed90084a7a0aafdc074ab88c5a9711622fe4751138c"}, - {file = "mypy-1.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d64169ec3b8461311f8ce2fd2eb5d33e2d0f2c7b49116259c51d0d96edee48d1"}, - {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba24549de7b89b6381b91fbc068d798192b1b5201987070319889e93038967a8"}, - {file = "mypy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:183cf0a45457d28ff9d758730cd0210419ac27d4d3f285beda038c9083363b1f"}, - {file = "mypy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f2a0ecc86378f45347f586e4163d1769dd81c5a223d577fe351f26b179e148b1"}, - {file = "mypy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:ad3301ebebec9e8ee7135d8e3109ca76c23752bac1e717bc84cd3836b4bf3eae"}, - {file = "mypy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30ff5ef8519bbc2e18b3b54521ec319513a26f1bba19a7582e7b1f58a6e69f14"}, - {file = "mypy-1.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb9f255c18052343c70234907e2e532bc7e55a62565d64536dbc7706a20b78b9"}, - {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b4e3413e0bddea671012b063e27591b953d653209e7a4fa5e48759cda77ca11"}, - {file = "mypy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:553c293b1fbdebb6c3c4030589dab9fafb6dfa768995a453d8a5d3b23784af2e"}, - {file = "mypy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fad79bfe3b65fe6a1efaed97b445c3d37f7be9fdc348bdb2d7cac75579607c89"}, - {file = "mypy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:8fa2220e54d2946e94ab6dbb3ba0a992795bd68b16dc852db33028df2b00191b"}, - {file = "mypy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:92c3ed5afb06c3a8e188cb5da4984cab9ec9a77ba956ee419c68a388b4595255"}, - {file = "mypy-1.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dbec574648b3e25f43d23577309b16534431db4ddc09fda50841f1e34e64ed34"}, - {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c6d94b16d62eb3e947281aa7347d78236688e21081f11de976376cf010eb31a"}, - {file = "mypy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4b19b03fdf54f3c5b2fa474c56b4c13c9dbfb9a2db4370ede7ec11a2c5927d9"}, - {file = "mypy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c911fde686394753fff899c409fd4e16e9b294c24bfd5e1ea4675deae1ac6fd"}, - {file = "mypy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8b21525cb51671219f5307be85f7e646a153e5acc656e5cebf64bfa076c50107"}, - {file = "mypy-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7084fb8f1128c76cd9cf68fe5971b37072598e7c31b2f9f95586b65c741a9d31"}, - {file = "mypy-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8f845a00b4f420f693f870eaee5f3e2692fa84cc8514496114649cfa8fd5e2c6"}, - {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44bf464499f0e3a2d14d58b54674dee25c031703b2ffc35064bd0df2e0fac319"}, - {file = "mypy-1.14.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c99f27732c0b7dc847adb21c9d47ce57eb48fa33a17bc6d7d5c5e9f9e7ae5bac"}, - {file = "mypy-1.14.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:bce23c7377b43602baa0bd22ea3265c49b9ff0b76eb315d6c34721af4cdf1d9b"}, - {file = "mypy-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:8edc07eeade7ebc771ff9cf6b211b9a7d93687ff892150cb5692e4f4272b0837"}, - {file = "mypy-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3888a1816d69f7ab92092f785a462944b3ca16d7c470d564165fe703b0970c35"}, - {file = "mypy-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46c756a444117c43ee984bd055db99e498bc613a70bbbc120272bd13ca579fbc"}, - {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27fc248022907e72abfd8e22ab1f10e903915ff69961174784a3900a8cba9ad9"}, - {file = "mypy-1.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:499d6a72fb7e5de92218db961f1a66d5f11783f9ae549d214617edab5d4dbdbb"}, - {file = "mypy-1.14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:57961db9795eb566dc1d1b4e9139ebc4c6b0cb6e7254ecde69d1552bf7613f60"}, - {file = "mypy-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:07ba89fdcc9451f2ebb02853deb6aaaa3d2239a236669a63ab3801bbf923ef5c"}, - {file = "mypy-1.14.1-py3-none-any.whl", hash = "sha256:b66a60cc4073aeb8ae00057f9c1f64d49e90f918fbcef9a977eb121da8b8f1d1"}, - {file = "mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6"}, + {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, + {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, + {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, + {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, + {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, + {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, + {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, + {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, + {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, + {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, + {file = "mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078"}, + {file = "mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba"}, + {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5"}, + {file = "mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b"}, + {file = "mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2"}, + {file = "mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980"}, + {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, + {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, ] [package.dependencies] @@ -338,6 +317,18 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "nodeenv" +version = "1.10.0" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +files = [ + {file = "nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827"}, + {file = "nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb"}, +] + [[package]] name = "packaging" version = "24.2" @@ -385,133 +376,133 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pydantic" -version = "2.10.6" +version = "2.11.10" description = "Data validation using Python type hints" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, - {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, + {file = "pydantic-2.11.10-py3-none-any.whl", hash = "sha256:802a655709d49bd004c31e865ef37da30b540786a46bfce02333e0e24b5fe29a"}, + {file = "pydantic-2.11.10.tar.gz", hash = "sha256:dc280f0982fbda6c38fada4e476dc0a4f3aeaf9c6ad4c28df68a666ec3c61423"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.27.2" +pydantic-core = "2.33.2" typing-extensions = ">=4.12.2" +typing-inspection = ">=0.4.0" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-core" -version = "2.27.2" +version = "2.33.2" description = "Core functionality for Pydantic validation and serialization" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, - {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, - {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, - {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, - {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, - {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, - {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, - {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, - {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, - {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, - {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, - {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, - {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, - {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, - {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, - {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, - {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, - {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, - {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, - {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, - {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, - {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, - {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, - {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, - {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, - {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"}, + {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"}, ] [package.dependencies] @@ -535,19 +526,39 @@ colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, + {version = ">=0.3.6", markers = "python_version == \"3.11\""}, ] isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] spelling = ["pyenchant (>=3.2,<4.0)"] testutils = ["gitpython (>3)"] +[[package]] +name = "pyright" +version = "1.1.398" +description = "Command line wrapper for pyright" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pyright-1.1.398-py3-none-any.whl", hash = "sha256:0a70bfd007d9ea7de1cf9740e1ad1a40a122592cfe22a3f6791b06162ad08753"}, + {file = "pyright-1.1.398.tar.gz", hash = "sha256:357a13edd9be8082dc73be51190913e475fa41a6efb6ec0d4b7aab3bc11638d8"}, +] + +[package.dependencies] +nodeenv = ">=1.6.0" +typing-extensions = ">=4.1" + +[package.extras] +all = ["nodejs-wheel-binaries", "twine (>=3.4.1)"] +dev = ["twine (>=3.4.1)"] +nodejs = ["nodejs-wheel-binaries"] + [[package]] name = "pytest" version = "8.3.3" @@ -590,33 +601,6 @@ pytest = ">=8.2,<9" docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main"] -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "six" -version = "1.17.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main"] -files = [ - {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, - {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, -] - [[package]] name = "sniffio" version = "1.3.1" @@ -636,7 +620,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -684,18 +668,6 @@ files = [ {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] -[[package]] -name = "types-python-dateutil" -version = "2.9.0.20241206" -description = "Typing stubs for python-dateutil" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, - {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, -] - [[package]] name = "typing-extensions" version = "4.12.2" @@ -725,5 +697,5 @@ typing-extensions = ">=4.12.0" [metadata] lock-version = "2.1" -python-versions = ">=3.9" -content-hash = "107e18e59791e3fa2de5598653e9ad9e6613216805fff3fafa76268523615aae" +python-versions = ">=3.10" +content-hash = "27cdecc0197f97d313f8881aec5af0a47a82f2917b70210e060bc3c85c30c143" diff --git a/poetry.toml b/poetry.toml index ab1033bd..cd3492ac 100644 --- a/poetry.toml +++ b/poetry.toml @@ -1,2 +1,3 @@ + [virtualenvs] in-project = true diff --git a/pylintrc b/pylintrc index 7f1dd32e..18f8c357 100644 --- a/pylintrc +++ b/pylintrc @@ -89,7 +89,7 @@ persistent=yes # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. -py-version=3.9 +py-version=3.10 # Discover python modules and packages in the file system subtree. recursive=no @@ -457,7 +457,8 @@ disable=raw-checker-failed, consider-using-with, wildcard-import, unused-wildcard-import, - too-many-return-statements + too-many-return-statements, + redefined-builtin # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option @@ -639,7 +640,7 @@ additional-builtins= allow-global-unused-variables=yes # List of names allowed to shadow builtins -allowed-redefined-builtins=id,object +allowed-redefined-builtins=id,object,dir # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. diff --git a/pyproject.toml b/pyproject.toml index fbbabdc8..d39700fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,21 +1,20 @@ + [project] name = "shippo" -version = "4.0.0" +version = "5.0.0" description = "Shipping API Python library (USPS, FedEx, UPS and more)" authors = [{ name = "Shippo" },] readme = "README-PYPI.md" -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [ - "eval-type-backport >=0.2.0", + "httpcore >=1.0.9", "httpx >=0.28.1", - "pydantic >=2.10.3", - "python-dateutil >=2.8.2", - "typing-inspection >=0.4.0", + "pydantic >=2.11.2,<2.13", ] +license = { text = "MIT License" } [tool.poetry] repository = "https://github.com/goshippo/shippo-python-sdk.git" -license = "MIT License" packages = [ { include = "shippo", from = "src" } ] @@ -30,11 +29,11 @@ in-project = true [tool.poetry.group.dev.dependencies] httpretty = "==1.1.4" marshmallow = "==3.23.1" -mypy = "==1.14.1" +mypy = "==1.15.0" pylint = "==3.2.3" +pyright = "==1.1.398" pytest = "==8.3.3" pytest-asyncio = "==0.25.3" -types-python-dateutil = "^2.9.0.20240316" [build-system] requires = ["poetry-core"] @@ -46,6 +45,8 @@ pythonpath = ["src"] [tool.mypy] disable_error_code = "misc" +explicit_package_bases = true +mypy_path = "src" [[tool.mypy.overrides]] module = "typing_inspect" diff --git a/scripts/prepare_readme.py b/scripts/prepare_readme.py index 16553725..38b9b0c0 100644 --- a/scripts/prepare_readme.py +++ b/scripts/prepare_readme.py @@ -10,12 +10,14 @@ GITHUB_URL = ( GITHUB_URL[: -len(".git")] if GITHUB_URL.endswith(".git") else GITHUB_URL ) + REPO_SUBDIR = "" # links on PyPI should have absolute URLs readme_contents = re.sub( r"(\[[^\]]+\]\()((?!https?:)[^\)]+)(\))", lambda m: m.group(1) + GITHUB_URL + "/blob/master/" + + REPO_SUBDIR + m.group(2) + m.group(3), readme_contents, diff --git a/scripts/publish.sh b/scripts/publish.sh index f2f2cf2c..2a3ead70 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -1,5 +1,4 @@ #!/usr/bin/env bash - export POETRY_PYPI_TOKEN_PYPI=${PYPI_TOKEN} poetry run python scripts/prepare_readme.py diff --git a/src/shippo/_hooks/types.py b/src/shippo/_hooks/types.py index 10b732cc..edfd54a9 100644 --- a/src/shippo/_hooks/types.py +++ b/src/shippo/_hooks/types.py @@ -3,55 +3,74 @@ from abc import ABC, abstractmethod import httpx from shippo.httpclient import HttpClient -from typing import Any, Callable, List, Optional, Tuple, Union +from shippo.sdkconfiguration import SDKConfiguration +from typing import Any, Callable, Dict, List, Optional, Tuple, Union class HookContext: + config: SDKConfiguration base_url: str operation_id: str oauth2_scopes: Optional[List[str]] = None security_source: Optional[Union[Any, Callable[[], Any]]] = None + tags: Optional[List[str]] = None + extensions: Optional[Dict[str, Any]] = None def __init__( self, + config: SDKConfiguration, base_url: str, operation_id: str, oauth2_scopes: Optional[List[str]], security_source: Optional[Union[Any, Callable[[], Any]]], + tags: Optional[List[str]], + extensions: Optional[Dict[str, Any]], ): + self.config = config self.base_url = base_url self.operation_id = operation_id self.oauth2_scopes = oauth2_scopes self.security_source = security_source + self.tags = tags + self.extensions = extensions class BeforeRequestContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) class AfterSuccessContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) class AfterErrorContext(HookContext): def __init__(self, hook_ctx: HookContext): super().__init__( + hook_ctx.config, hook_ctx.base_url, hook_ctx.operation_id, hook_ctx.oauth2_scopes, hook_ctx.security_source, + hook_ctx.tags, + hook_ctx.extensions, ) diff --git a/src/shippo/_version.py b/src/shippo/_version.py index f88e48c8..0659c7f8 100644 --- a/src/shippo/_version.py +++ b/src/shippo/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "shippo" -__version__: str = "4.0.0" +__version__: str = "5.0.0" __openapi_doc_version__: str = "2018-02-08" -__gen_version__: str = "2.558.5" -__user_agent__: str = "speakeasy-sdk/python 4.0.0 2.558.5 2018-02-08 shippo" +__gen_version__: str = "2.924.0" +__user_agent__: str = "speakeasy-sdk/python 5.0.0 2.924.0 2018-02-08 shippo" try: if __package__ is not None: diff --git a/src/shippo/addresses.py b/src/shippo/addresses.py index aff53028..dddd7bd9 100644 --- a/src/shippo/addresses.py +++ b/src/shippo/addresses.py @@ -5,13 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Addresses(BaseSDK): - r"""Addresses are the locations a parcel is being shipped **from** and **to**. They represent company and residential places. Among other things, you can use address objects to create shipments, calculate shipping rates, and purchase shipping labels. - - """ + r"""Addresses are the locations a parcel is being shipped **from** and **to**. They represent company and residential places. Among other things, you can use address objects to create shipments, calculate shipping rates, and purchase shipping labels.""" def list( self, @@ -22,7 +21,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.AddressPaginatedList]: + ) -> components.AddressPaginatedList: r"""List all addresses Returns a list of all address objects that have been created in this account. @@ -65,6 +64,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -78,39 +78,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListAddresses", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.list(page=1, results=5)\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.list(1, 5);\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->addressPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListAddressesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListAddressesResponse res = sdk.addresses().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.addressPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.AddressPaginatedList] - ) + return unmarshal_json_response(components.AddressPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -121,7 +144,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.AddressPaginatedList]: + ) -> components.AddressPaginatedList: r"""List all addresses Returns a list of all address objects that have been created in this account. @@ -164,6 +187,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -177,39 +201,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListAddresses", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.list(page=1, results=5)\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.list(1, 5);\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->addressPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListAddressesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListAddressesResponse res = sdk.addresses().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.addressPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.AddressPaginatedList] - ) + return unmarshal_json_response(components.AddressPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -221,7 +268,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Create a new address Creates a new address object. You can use address objects to create new shipments, calculate rates, and to create orders. @@ -265,6 +312,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.AddressCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -278,37 +326,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/ \\\n -H "Authorization: ShippoToken " \\\n -d name="Shawn Ippotle" \\\n -d company="Shippo" \\\n -d street1="215 Clayton St." \\\n -d street2="" \\\n -d city="San Francisco" \\\n -d state="CA" \\\n -d zip=94117 \\\n -d country="US" \\\n -d phone="+1 555 341 9393" \\\n -d email="shippotle@shippo.com"\\\n -d is_residential=True\\\n -d metadata="Customer ID 123456"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.create(request=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.create({\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$addressCreateRequest = new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n);\n\n$response = $sdk->addresses->create(\n addressCreateRequest: $addressCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.CreateAsync(\n addressCreateRequest: new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateAddressResponse res = sdk.addresses().create()\n .shippoApiVersion("2018-02-08")\n .addressCreateRequest(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -320,7 +393,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Create a new address Creates a new address object. You can use address objects to create new shipments, calculate rates, and to create orders. @@ -364,6 +437,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.AddressCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -377,37 +451,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/ \\\n -H "Authorization: ShippoToken " \\\n -d name="Shawn Ippotle" \\\n -d company="Shippo" \\\n -d street1="215 Clayton St." \\\n -d street2="" \\\n -d city="San Francisco" \\\n -d state="CA" \\\n -d zip=94117 \\\n -d country="US" \\\n -d phone="+1 555 341 9393" \\\n -d email="shippotle@shippo.com"\\\n -d is_residential=True\\\n -d metadata="Customer ID 123456"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.create(request=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.create({\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$addressCreateRequest = new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n);\n\n$response = $sdk->addresses->create(\n addressCreateRequest: $addressCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.CreateAsync(\n addressCreateRequest: new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateAddressResponse res = sdk.addresses().create()\n .shippoApiVersion("2018-02-08")\n .addressCreateRequest(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -417,7 +516,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Retrieve an address Returns an existing address using an object ID. @@ -458,6 +557,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -471,37 +571,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/d799c2679e644279b59fe661ac8fa488/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.get(address_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->get(\n addressId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.GetAsync(\n addressId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetAddressResponse res = sdk.addresses().get()\n .addressId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -511,7 +636,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Retrieve an address Returns an existing address using an object ID. @@ -552,6 +677,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -565,37 +691,62 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/d799c2679e644279b59fe661ac8fa488/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.get(address_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->get(\n addressId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.GetAsync(\n addressId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetAddressResponse res = sdk.addresses().get()\n .addressId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def validate( self, @@ -605,7 +756,7 @@ def validate( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Validate an address Validates an existing address using an object ID @@ -646,6 +797,7 @@ def validate( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -659,37 +811,62 @@ def validate( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ValidateAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/d799c2679e644279b59fe661ac8fa488/validate/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.validate(address_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.validate("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->validate(\n addressId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.ValidateAsync(\n addressId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ValidateAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ValidateAddressResponse res = sdk.addresses().validate()\n .addressId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def validate_async( self, @@ -699,7 +876,7 @@ async def validate_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Address]: + ) -> components.Address: r"""Validate an address Validates an existing address using an object ID @@ -740,6 +917,7 @@ async def validate_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -753,34 +931,59 @@ async def validate_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ValidateAddress", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Addresses"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/addresses/d799c2679e644279b59fe661ac8fa488/validate/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.addresses.validate(address_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.addresses.validate("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->addresses->validate(\n addressId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->address !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Addresses.ValidateAsync(\n addressId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ValidateAddressResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ValidateAddressResponse res = sdk.addresses().validate()\n .addressId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.address().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Address]) + return unmarshal_json_response(components.Address, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/basesdk.py b/src/shippo/basesdk.py index f884014e..ec67adb7 100644 --- a/src/shippo/basesdk.py +++ b/src/shippo/basesdk.py @@ -3,18 +3,38 @@ from .sdkconfiguration import SDKConfiguration import httpx from shippo import utils -from shippo._hooks import AfterErrorContext, AfterSuccessContext, BeforeRequestContext +from shippo._hooks import ( + AfterErrorContext, + AfterSuccessContext, + BeforeRequestContext, + HookContext, +) from shippo.models import errors -from shippo.utils import RetryConfig, SerializedRequestBody, get_body_content +from shippo.utils import ( + RetryConfig, + SerializedRequestBody, + get_body_content, + run_sync_in_thread, +) from typing import Callable, List, Mapping, Optional, Tuple from urllib.parse import parse_qs, urlparse class BaseSDK: sdk_configuration: SDKConfiguration + parent_ref: Optional[object] = None + """ + Reference to the root SDK instance, if any. This will prevent it from + being garbage collected while there are active streams. + """ - def __init__(self, sdk_config: SDKConfiguration) -> None: + def __init__( + self, + sdk_config: SDKConfiguration, + parent_ref: Optional[object] = None, + ) -> None: self.sdk_configuration = sdk_config + self.parent_ref = parent_ref def _get_url(self, base_url, url_variables): sdk_url, sdk_variables = self.sdk_configuration.get_server_details() @@ -47,6 +67,8 @@ def _build_request_async( ] = None, url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, + allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: client = self.sdk_configuration.async_client return self._build_request_with_client( @@ -67,6 +89,8 @@ def _build_request_async( get_serialized_body, url_override, http_headers, + allow_empty_value, + allowed_fields, ) def _build_request( @@ -89,6 +113,8 @@ def _build_request( ] = None, url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, + allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: client = self.sdk_configuration.client return self._build_request_with_client( @@ -109,6 +135,8 @@ def _build_request( get_serialized_body, url_override, http_headers, + allow_empty_value, + allowed_fields, ) def _build_request_with_client( @@ -132,6 +160,8 @@ def _build_request_with_client( ] = None, url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, + allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: query_params = {} @@ -147,6 +177,7 @@ def _build_request_with_client( query_params = utils.get_query_params( request if request_has_query_params else None, _globals if request_has_query_params else None, + allow_empty_value, ) else: # Pick up the query parameter from the override so they can be @@ -164,7 +195,9 @@ def _build_request_with_client( security = security() if security is not None: - security_headers, security_query_params = utils.get_security(security) + security_headers, security_query_params = utils.get_security( + security, allowed_fields + ) headers = {**headers, **security_headers} query_params = {**query_params, **security_query_params} @@ -201,26 +234,28 @@ def _build_request_with_client( data=serialized_request_body.data, files=serialized_request_body.files, headers=headers, - timeout=timeout, + timeout=timeout if timeout is not None else httpx.USE_CLIENT_DEFAULT, ) def do_request( self, - hook_ctx, - request, - error_status_codes, - stream=False, + hook_ctx: HookContext, + request: httpx.Request, + is_error_status_code: Callable[[int], bool], + stream: bool = False, retry_config: Optional[Tuple[RetryConfig, List[str]]] = None, ) -> httpx.Response: client = self.sdk_configuration.client logger = self.sdk_configuration.debug_logger + hooks = self.sdk_configuration.__dict__["_hooks"] + def do(): http_res = None try: - req = self.sdk_configuration.get_hooks().before_request( - BeforeRequestContext(hook_ctx), request - ) + req = hooks.before_request(BeforeRequestContext(hook_ctx), request) + if "timeout" in request.extensions and "timeout" not in req.extensions: + req.extensions["timeout"] = request.extensions["timeout"] logger.debug( "Request:\nMethod: %s\nURL: %s\nHeaders: %s\nBody: %s", req.method, @@ -234,16 +269,14 @@ def do(): http_res = client.send(req, stream=stream) except Exception as e: - _, e = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), None, e - ) + _, e = hooks.after_error(AfterErrorContext(hook_ctx), None, e) if e is not None: logger.debug("Request Exception", exc_info=True) raise e if http_res is None: logger.debug("Raising no response SDK error") - raise errors.SDKError("No response received") + raise errors.NoResponseError("No response received") logger.debug( "Response:\nStatus Code: %s\nURL: %s\nHeaders: %s\nBody: %s", @@ -253,19 +286,6 @@ def do(): "" if stream else http_res.text, ) - if utils.match_status_codes(error_status_codes, http_res.status_code): - result, err = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), http_res, None - ) - if err is not None: - logger.debug("Request Exception", exc_info=True) - raise err - if result is not None: - http_res = result - else: - logger.debug("Raising unexpected SDK error") - raise errors.SDKError("Unexpected error occurred") - return http_res if retry_config is not None: @@ -273,30 +293,43 @@ def do(): else: http_res = do() - if not utils.match_status_codes(error_status_codes, http_res.status_code): - http_res = self.sdk_configuration.get_hooks().after_success( - AfterSuccessContext(hook_ctx), http_res - ) + if is_error_status_code(http_res.status_code): + result, err = hooks.after_error(AfterErrorContext(hook_ctx), http_res, None) + if err is not None: + logger.debug("Request Exception", exc_info=True) + raise err + if result is not None: + http_res = result + else: + logger.debug("Raising unexpected SDK error") + raise errors.SDKError("Unexpected error occurred", http_res) + else: + http_res = hooks.after_success(AfterSuccessContext(hook_ctx), http_res) return http_res async def do_request_async( self, - hook_ctx, - request, - error_status_codes, - stream=False, + hook_ctx: HookContext, + request: httpx.Request, + is_error_status_code: Callable[[int], bool], + stream: bool = False, retry_config: Optional[Tuple[RetryConfig, List[str]]] = None, ) -> httpx.Response: client = self.sdk_configuration.async_client logger = self.sdk_configuration.debug_logger + hooks = self.sdk_configuration.__dict__["_hooks"] + async def do(): http_res = None try: - req = self.sdk_configuration.get_hooks().before_request( - BeforeRequestContext(hook_ctx), request + req = await run_sync_in_thread( + hooks.before_request, BeforeRequestContext(hook_ctx), request ) + + if "timeout" in request.extensions and "timeout" not in req.extensions: + req.extensions["timeout"] = request.extensions["timeout"] logger.debug( "Request:\nMethod: %s\nURL: %s\nHeaders: %s\nBody: %s", req.method, @@ -310,16 +343,17 @@ async def do(): http_res = await client.send(req, stream=stream) except Exception as e: - _, e = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), None, e + _, e = await run_sync_in_thread( + hooks.after_error, AfterErrorContext(hook_ctx), None, e ) + if e is not None: logger.debug("Request Exception", exc_info=True) raise e if http_res is None: logger.debug("Raising no response SDK error") - raise errors.SDKError("No response received") + raise errors.NoResponseError("No response received") logger.debug( "Response:\nStatus Code: %s\nURL: %s\nHeaders: %s\nBody: %s", @@ -329,19 +363,6 @@ async def do(): "" if stream else http_res.text, ) - if utils.match_status_codes(error_status_codes, http_res.status_code): - result, err = self.sdk_configuration.get_hooks().after_error( - AfterErrorContext(hook_ctx), http_res, None - ) - if err is not None: - logger.debug("Request Exception", exc_info=True) - raise err - if result is not None: - http_res = result - else: - logger.debug("Raising unexpected SDK error") - raise errors.SDKError("Unexpected error occurred") - return http_res if retry_config is not None: @@ -351,9 +372,22 @@ async def do(): else: http_res = await do() - if not utils.match_status_codes(error_status_codes, http_res.status_code): - http_res = self.sdk_configuration.get_hooks().after_success( - AfterSuccessContext(hook_ctx), http_res + if is_error_status_code(http_res.status_code): + result, err = await run_sync_in_thread( + hooks.after_error, AfterErrorContext(hook_ctx), http_res, None + ) + + if err is not None: + logger.debug("Request Exception", exc_info=True) + raise err + if result is not None: + http_res = result + else: + logger.debug("Raising unexpected SDK error") + raise errors.SDKError("Unexpected error occurred", http_res) + else: + http_res = await run_sync_in_thread( + hooks.after_success, AfterSuccessContext(hook_ctx), http_res ) return http_res diff --git a/src/shippo/batches.py b/src/shippo/batches.py index 1474de65..633917a7 100644 --- a/src/shippo/batches.py +++ b/src/shippo/batches.py @@ -5,21 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET -from typing import List, Mapping, Optional, Union, cast +from shippo.utils.unmarshal_json_response import unmarshal_json_response +from typing import Iterable, List, Mapping, Optional, Union, cast class Batches(BaseSDK): - r"""A batch is a technique for creating multiple labels at once. Use the batch object to create and purchase many shipments in two API calls. After creating the batch, retrieve the batch to verify that all shipments are valid. You can add and remove shipments after you have created the batch. When all shipments are valid you can purchase the batch and retrieve all the shipping labels. - - - # Batch Shipment - The batch shipment object is a wrapper around a shipment object, which include shipment-specific information - for batch processing. - - Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through - the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint - - """ + r"""A batch is a technique for creating multiple labels at once. Use the batch object to create and purchase many shipments in two API calls. After creating the batch, retrieve the batch to verify that all shipments are valid. You can add and remove shipments after you have created the batch. When all shipments are valid you can purchase the batch and retrieve all the shipping labels.""" def create( self, @@ -31,7 +22,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Create a batch Creates a new batch object for purchasing shipping labels for many shipments at once. Batches are created asynchronously. This means that the API response won't include your batch shipments yet. You need to retrieve the batch later to verify that all batch shipments are valid. @@ -75,6 +66,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.BatchCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -88,37 +80,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/batches/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "default_carrier_account": "078870331023437cb917f5187429b093",\n "default_servicelevel_token": "usps_priority",\n "label_filetype": "PDF_4x6",\n "metadata": "BATCH #170",\n "batch_shipments": [\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_to": {\n "name": "Mrs Hippo",\n "company": "",\n "street1": "Broadway 1",\n "street2": "",\n "city": "New York",\n "state": "NY",\n "zip": "10007",\n "country": "US",\n "phone": "4151234567",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "2",\n "mass_unit": "oz"\n }]\n }\n },\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_to": {\n "name": "Mrs Hippo",\n "company": "",\n "street1": "Broadway 1",\n "street2": "",\n "city": "New York",\n "state": "NY",\n "zip": "10007",\n "country": "US",\n "phone": "4151234567",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "20",\n "mass_unit": "lb"\n }]\n },\n "carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3",\n "servicelevel_token": "fedex_2_day"\n }\n ]\n }\' ', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.create(request=components.BatchCreateRequest(\n default_carrier_account='078870331023437cb917f5187429b093',\n default_servicelevel_token='usps_priority',\n label_filetype=components.LabelFileTypeEnum.PDF_4X6,\n metadata='BATCH #1',\n batch_shipments=[\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from='d799c2679e644279b59fe661ac8fa488',\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n ],\n ),\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.create({\n defaultCarrierAccount: "078870331023437cb917f5187429b093",\n defaultServicelevelToken: "usps_priority",\n labelFiletype: "PDF_4x6",\n metadata: "BATCH #1",\n batchShipments: [\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: "d799c2679e644279b59fe661ac8fa488",\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n ],\n },\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$batchCreateRequest = new Components\\BatchCreateRequest(\n defaultCarrierAccount: '078870331023437cb917f5187429b093',\n defaultServicelevelToken: 'usps_priority',\n labelFiletype: Components\\LabelFileTypeEnum::PDF4x6,\n metadata: 'BATCH #1',\n batchShipments: [\n new Components\\BatchShipmentCreateRequest(\n carrierAccount: 'a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata: 'SHIPMENT #1',\n servicelevelToken: 'fedex_ground',\n shipment: new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressReturn: 'd799c2679e644279b59fe661ac8fa488',\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n ),\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n ],\n ),\n ),\n ],\n);\n\n$response = $sdk->batches->create(\n batchCreateRequest: $batchCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.CreateAsync(\n batchCreateRequest: new BatchCreateRequest() {\n DefaultCarrierAccount = "078870331023437cb917f5187429b093",\n DefaultServicelevelToken = "usps_priority",\n LabelFiletype = LabelFileTypeEnum.Pdf4x6,\n Metadata = "BATCH #1",\n BatchShipments = new List() {\n new BatchShipmentCreateRequest() {\n CarrierAccount = "a4391cd4ab974f478f55dc08b5c8e3b3",\n Metadata = "SHIPMENT #1",\n ServicelevelToken = "fedex_ground",\n Shipment = new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressReturn = AddressReturn.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateCustomsDeclarationCreateRequest(\n new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n }\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n },\n },\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.BatchCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.BatchShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.LabelFileTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateBatchResponse res = sdk.batches().create()\n .shippoApiVersion("2018-02-08")\n .batchCreateRequest(BatchCreateRequest.builder()\n .defaultCarrierAccount("078870331023437cb917f5187429b093")\n .defaultServicelevelToken("usps_priority")\n .batchShipments(List.of(\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of("d799c2679e644279b59fe661ac8fa488"))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build(),\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build(),\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build()))\n .labelFiletype(LabelFileTypeEnum.PDF4X6)\n .metadata("BATCH #1")\n .build())\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -130,7 +147,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Create a batch Creates a new batch object for purchasing shipping labels for many shipments at once. Batches are created asynchronously. This means that the API response won't include your batch shipments yet. You need to retrieve the batch later to verify that all batch shipments are valid. @@ -174,6 +191,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.BatchCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -187,37 +205,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/batches/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "default_carrier_account": "078870331023437cb917f5187429b093",\n "default_servicelevel_token": "usps_priority",\n "label_filetype": "PDF_4x6",\n "metadata": "BATCH #170",\n "batch_shipments": [\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_to": {\n "name": "Mrs Hippo",\n "company": "",\n "street1": "Broadway 1",\n "street2": "",\n "city": "New York",\n "state": "NY",\n "zip": "10007",\n "country": "US",\n "phone": "4151234567",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "2",\n "mass_unit": "oz"\n }]\n }\n },\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_to": {\n "name": "Mrs Hippo",\n "company": "",\n "street1": "Broadway 1",\n "street2": "",\n "city": "New York",\n "state": "NY",\n "zip": "10007",\n "country": "US",\n "phone": "4151234567",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "20",\n "mass_unit": "lb"\n }]\n },\n "carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3",\n "servicelevel_token": "fedex_2_day"\n }\n ]\n }\' ', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.create(request=components.BatchCreateRequest(\n default_carrier_account='078870331023437cb917f5187429b093',\n default_servicelevel_token='usps_priority',\n label_filetype=components.LabelFileTypeEnum.PDF_4X6,\n metadata='BATCH #1',\n batch_shipments=[\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from='d799c2679e644279b59fe661ac8fa488',\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n ],\n ),\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.create({\n defaultCarrierAccount: "078870331023437cb917f5187429b093",\n defaultServicelevelToken: "usps_priority",\n labelFiletype: "PDF_4x6",\n metadata: "BATCH #1",\n batchShipments: [\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: "d799c2679e644279b59fe661ac8fa488",\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n ],\n },\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$batchCreateRequest = new Components\\BatchCreateRequest(\n defaultCarrierAccount: '078870331023437cb917f5187429b093',\n defaultServicelevelToken: 'usps_priority',\n labelFiletype: Components\\LabelFileTypeEnum::PDF4x6,\n metadata: 'BATCH #1',\n batchShipments: [\n new Components\\BatchShipmentCreateRequest(\n carrierAccount: 'a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata: 'SHIPMENT #1',\n servicelevelToken: 'fedex_ground',\n shipment: new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressReturn: 'd799c2679e644279b59fe661ac8fa488',\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n ),\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n ],\n ),\n ),\n ],\n);\n\n$response = $sdk->batches->create(\n batchCreateRequest: $batchCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.CreateAsync(\n batchCreateRequest: new BatchCreateRequest() {\n DefaultCarrierAccount = "078870331023437cb917f5187429b093",\n DefaultServicelevelToken = "usps_priority",\n LabelFiletype = LabelFileTypeEnum.Pdf4x6,\n Metadata = "BATCH #1",\n BatchShipments = new List() {\n new BatchShipmentCreateRequest() {\n CarrierAccount = "a4391cd4ab974f478f55dc08b5c8e3b3",\n Metadata = "SHIPMENT #1",\n ServicelevelToken = "fedex_ground",\n Shipment = new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressReturn = AddressReturn.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateCustomsDeclarationCreateRequest(\n new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n }\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n },\n },\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.BatchCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.BatchShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.LabelFileTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateBatchResponse res = sdk.batches().create()\n .shippoApiVersion("2018-02-08")\n .batchCreateRequest(BatchCreateRequest.builder()\n .defaultCarrierAccount("078870331023437cb917f5187429b093")\n .defaultServicelevelToken("usps_priority")\n .batchShipments(List.of(\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of("d799c2679e644279b59fe661ac8fa488"))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build(),\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build(),\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build()))\n .labelFiletype(LabelFileTypeEnum.PDF4X6)\n .metadata("BATCH #1")\n .build())\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -229,13 +272,14 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Retrieve a batch - Returns a batch using an object ID.
Batch shipments are displayed 100 at a time. You can iterate - through each `page` using the `?page= query` parameter. You can also filter based on batch shipment - status, for example, by passing a query param like `?object_results=creation_failed`.
- For more details on filtering results, see our guide on filtering. + Returns a batch using an object ID. + + Batch shipments are displayed 100 at a time. You can iterate through each page using the `?page=` query parameter. You can also filter based on batch shipment status, for example, by passing a query param like `?object_results=creation_failed`. + + For more details on filtering results, see our guide on [filtering](https://docs.goshippo.com/docs/api_concepts/filtering/). :param batch_id: Object ID of the batch :param page: The page number you want to select @@ -277,6 +321,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -290,37 +335,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/batches/?page=2&object_results=creation_failed \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.get(batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\GetBatchRequest(\n batchId: '',\n);\n\n$response = $sdk->batches->get(\n request: $request\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nGetBatchRequest req = new GetBatchRequest() {\n BatchId = "",\n};\n\nvar res = await sdk.Batches.GetAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetBatchResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetBatchResponse res = sdk.batches().get()\n .batchId("")\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -332,13 +402,14 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Retrieve a batch - Returns a batch using an object ID.
Batch shipments are displayed 100 at a time. You can iterate - through each `page` using the `?page= query` parameter. You can also filter based on batch shipment - status, for example, by passing a query param like `?object_results=creation_failed`.
- For more details on filtering results, see our guide on filtering. + Returns a batch using an object ID. + + Batch shipments are displayed 100 at a time. You can iterate through each page using the `?page=` query parameter. You can also filter based on batch shipment status, for example, by passing a query param like `?object_results=creation_failed`. + + For more details on filtering results, see our guide on [filtering](https://docs.goshippo.com/docs/api_concepts/filtering/). :param batch_id: Object ID of the batch :param page: The page number you want to select @@ -380,6 +451,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -393,51 +465,76 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/batches/?page=2&object_results=creation_failed \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.get(batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\GetBatchRequest(\n batchId: '',\n);\n\n$response = $sdk->batches->get(\n request: $request\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nGetBatchRequest req = new GetBatchRequest() {\n BatchId = "",\n};\n\nvar res = await sdk.Batches.GetAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetBatchResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetBatchResponse res = sdk.batches().get()\n .batchId("")\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def add_shipments( self, *, batch_id: str, request_body: Union[ - List[components.BatchShipmentCreateRequest], - List[components.BatchShipmentCreateRequestTypedDict], + Iterable[components.BatchShipmentCreateRequest], + Iterable[components.BatchShipmentCreateRequestTypedDict], ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Add shipments to a batch Adds batch shipments to an existing batch. @@ -489,6 +586,7 @@ def add_shipments( "json", List[components.BatchShipmentCreateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -502,51 +600,76 @@ def add_shipments( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="AddShipmentsToBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//add_shipments \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'[\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n },\n "address_to": {\n "name": "Hippo Jr",\n "street1": "915 Broadway",\n "street2": "19th Floor",\n "city": "New York",\n "state": "NY",\n "zip": "10010",\n "country": "US",\n "phone": "2129947880",\n },\n "parcels": [{\n "length": "12",\n "width": "12",\n "height": "12",\n "distance_unit": "in",\n "weight": "12",\n "mass_unit": "oz"\n }]\n }\n },\n {\n "shipment": { \n "address_from": {\n "name": "Ms Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4151234567",\n },\n "address_to": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "2",\n "mass_unit": "lb"\n }]\n },\n "carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3",\n "servicelevel_token": "fedex_2_day"\n }\n ]\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.add_shipments(request_body=[\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to='d799c2679e644279b59fe661ac8fa489',\n customs_declaration='adcfdddf8ec64b84ad22772bce3ea37a',\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n '',\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateUSPSEnum.USPS_SMALL_FLAT_RATE_ENVELOPE,\n ),\n ],\n ),\n ),\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateDPDUKEnum.DPD_UK_EXPRESS_PAK,\n ),\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR,\n ),\n ],\n ),\n ),\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from='d799c2679e644279b59fe661ac8fa488',\n address_return='d799c2679e644279b59fe661ac8fa488',\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration='adcfdddf8ec64b84ad22772bce3ea37a',\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n ],\n ),\n ),\n], batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.addShipments([\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: "d799c2679e644279b59fe661ac8fa489",\n customsDeclaration: "adcfdddf8ec64b84ad22772bce3ea37a",\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n "",\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "USPS_SmallFlatRateEnvelope",\n },\n ],\n },\n },\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "DPD_UK_Express_Pak",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "DHLeC_Irregular",\n },\n ],\n },\n },\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: "d799c2679e644279b59fe661ac8fa488",\n addressReturn: "d799c2679e644279b59fe661ac8fa488",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: "adcfdddf8ec64b84ad22772bce3ea37a",\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n ],\n },\n },\n ], "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.AddShipmentsAsync(\n batchId: "",\n requestBody: new List() {\n new BatchShipmentCreateRequest() {\n CarrierAccount = "a4391cd4ab974f478f55dc08b5c8e3b3",\n Metadata = "SHIPMENT #1",\n ServicelevelToken = "fedex_ground",\n Shipment = new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressReturn = AddressReturn.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateStr(\n "adcfdddf8ec64b84ad22772bce3ea37a"\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateStr(\n ""\n ),\n },\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->addShipments(\n batchId: '',\n requestBody: [\n new Components\\BatchShipmentCreateRequest(\n carrierAccount: 'a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata: 'SHIPMENT #1',\n servicelevelToken: 'fedex_ground',\n shipment: new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: 'd799c2679e644279b59fe661ac8fa488',\n addressReturn: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: 'adcfdddf8ec64b84ad22772bce3ea37a',\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n '',\n ],\n ),\n ),\n ],\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.BatchShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateFromTemplateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateDHLeCommerceEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateDPDUKEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateEnumSet;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateUSPSEnum;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.AddShipmentsToBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n AddShipmentsToBatchResponse res = sdk.batches().addShipments()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .requestBody(List.of(\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of("d799c2679e644279b59fe661ac8fa489"))\n .parcels(List.of(\n Parcels.of(""),\n Parcels.of(""),\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateUSPSEnum.USPS_SMALL_FLAT_RATE_ENVELOPE))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of("adcfdddf8ec64b84ad22772bce3ea37a"))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build(),\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateDPDUKEnum.DPDUK_EXPRESS_PAK))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build(),\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of("d799c2679e644279b59fe661ac8fa488"))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of("")))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of("d799c2679e644279b59fe661ac8fa488"))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of("adcfdddf8ec64b84ad22772bce3ea37a"))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build()))\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def add_shipments_async( self, *, batch_id: str, request_body: Union[ - List[components.BatchShipmentCreateRequest], - List[components.BatchShipmentCreateRequestTypedDict], + Iterable[components.BatchShipmentCreateRequest], + Iterable[components.BatchShipmentCreateRequestTypedDict], ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Add shipments to a batch Adds batch shipments to an existing batch. @@ -598,6 +721,7 @@ async def add_shipments_async( "json", List[components.BatchShipmentCreateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -611,37 +735,62 @@ async def add_shipments_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="AddShipmentsToBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//add_shipments \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'[\n {\n "shipment": { \n "address_from": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n },\n "address_to": {\n "name": "Hippo Jr",\n "street1": "915 Broadway",\n "street2": "19th Floor",\n "city": "New York",\n "state": "NY",\n "zip": "10010",\n "country": "US",\n "phone": "2129947880",\n },\n "parcels": [{\n "length": "12",\n "width": "12",\n "height": "12",\n "distance_unit": "in",\n "weight": "12",\n "mass_unit": "oz"\n }]\n }\n },\n {\n "shipment": { \n "address_from": {\n "name": "Ms Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4151234567",\n },\n "address_to": {\n "name": "Mr Hippo",\n "street1": "965 Mission St",\n "street2": "Ste 201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n },\n "parcels": [{\n "length": "5",\n "width": "5",\n "height": "5",\n "distance_unit": "in",\n "weight": "2",\n "mass_unit": "lb"\n }]\n },\n "carrier_account": "a4391cd4ab974f478f55dc08b5c8e3b3",\n "servicelevel_token": "fedex_2_day"\n }\n ]\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.add_shipments(request_body=[\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to='d799c2679e644279b59fe661ac8fa489',\n customs_declaration='adcfdddf8ec64b84ad22772bce3ea37a',\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n '',\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateUSPSEnum.USPS_SMALL_FLAT_RATE_ENVELOPE,\n ),\n ],\n ),\n ),\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateDPDUKEnum.DPD_UK_EXPRESS_PAK,\n ),\n components.ParcelCreateFromTemplateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n template=components.ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR,\n ),\n ],\n ),\n ),\n components.BatchShipmentCreateRequest(\n carrier_account='a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata='SHIPMENT #1',\n servicelevel_token='fedex_ground',\n shipment=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from='d799c2679e644279b59fe661ac8fa488',\n address_return='d799c2679e644279b59fe661ac8fa488',\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration='adcfdddf8ec64b84ad22772bce3ea37a',\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n ],\n ),\n ),\n], batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.addShipments([\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: "d799c2679e644279b59fe661ac8fa489",\n customsDeclaration: "adcfdddf8ec64b84ad22772bce3ea37a",\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n "",\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "USPS_SmallFlatRateEnvelope",\n },\n ],\n },\n },\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "DPD_UK_Express_Pak",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n template: "DHLeC_Irregular",\n },\n ],\n },\n },\n {\n carrierAccount: "a4391cd4ab974f478f55dc08b5c8e3b3",\n metadata: "SHIPMENT #1",\n servicelevelToken: "fedex_ground",\n shipment: {\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: "d799c2679e644279b59fe661ac8fa488",\n addressReturn: "d799c2679e644279b59fe661ac8fa488",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: "adcfdddf8ec64b84ad22772bce3ea37a",\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n ],\n },\n },\n ], "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.AddShipmentsAsync(\n batchId: "",\n requestBody: new List() {\n new BatchShipmentCreateRequest() {\n CarrierAccount = "a4391cd4ab974f478f55dc08b5c8e3b3",\n Metadata = "SHIPMENT #1",\n ServicelevelToken = "fedex_ground",\n Shipment = new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressReturn = AddressReturn.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateStr(\n "adcfdddf8ec64b84ad22772bce3ea37a"\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateStr(\n ""\n ),\n },\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->addShipments(\n batchId: '',\n requestBody: [\n new Components\\BatchShipmentCreateRequest(\n carrierAccount: 'a4391cd4ab974f478f55dc08b5c8e3b3',\n metadata: 'SHIPMENT #1',\n servicelevelToken: 'fedex_ground',\n shipment: new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: 'd799c2679e644279b59fe661ac8fa488',\n addressReturn: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: 'adcfdddf8ec64b84ad22772bce3ea37a',\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n '',\n ],\n ),\n ),\n ],\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.BatchShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateFromTemplateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateDHLeCommerceEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateDPDUKEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateEnumSet;\nimport com.goshippo.shippo_sdk.models.components.ParcelTemplateUSPSEnum;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.AddShipmentsToBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n AddShipmentsToBatchResponse res = sdk.batches().addShipments()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .requestBody(List.of(\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of("d799c2679e644279b59fe661ac8fa489"))\n .parcels(List.of(\n Parcels.of(""),\n Parcels.of(""),\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateUSPSEnum.USPS_SMALL_FLAT_RATE_ENVELOPE))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of("adcfdddf8ec64b84ad22772bce3ea37a"))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build(),\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateDPDUKEnum.DPDUK_EXPRESS_PAK))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateFromTemplateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .template(ParcelTemplateEnumSet.of(ParcelTemplateDHLeCommerceEnum.DH_LE_C_IRREGULAR))\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build(),\n BatchShipmentCreateRequest.builder()\n .shipment(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of("d799c2679e644279b59fe661ac8fa488"))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of("")))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of("d799c2679e644279b59fe661ac8fa488"))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of("adcfdddf8ec64b84ad22772bce3ea37a"))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .carrierAccount("a4391cd4ab974f478f55dc08b5c8e3b3")\n .metadata("SHIPMENT #1")\n .servicelevelToken("fedex_ground")\n .build()))\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def purchase( self, @@ -651,7 +800,7 @@ def purchase( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Purchase a batch Purchases an existing batch with a status of `VALID`. @@ -695,6 +844,7 @@ def purchase( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -708,37 +858,62 @@ def purchase( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="PurchaseBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//purchase \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.purchase(batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.purchase("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.PurchaseAsync(\n batchId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->purchase(\n batchId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.PurchaseBatchResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n PurchaseBatchResponse res = sdk.batches().purchase()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "202", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def purchase_async( self, @@ -748,7 +923,7 @@ async def purchase_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Purchase a batch Purchases an existing batch with a status of `VALID`. @@ -792,6 +967,7 @@ async def purchase_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -805,48 +981,73 @@ async def purchase_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="PurchaseBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//purchase \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.purchase(batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.purchase("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.PurchaseAsync(\n batchId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->purchase(\n batchId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.PurchaseBatchResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n PurchaseBatchResponse res = sdk.batches().purchase()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "202", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def remove_shipments( self, *, batch_id: str, - request_body: List[str], + request_body: Iterable[str], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Remove shipments from a batch Removes shipments from an existing batch shipment. @@ -870,7 +1071,7 @@ def remove_shipments( request = operations.RemoveShipmentsFromBatchRequest( batch_id=batch_id, - request_body=request_body, + request_body=utils.unmarshal(request_body, List[str]), ) req = self._build_request( @@ -892,6 +1093,7 @@ def remove_shipments( get_serialized_body=lambda: utils.serialize_request_body( request.request_body, False, False, "json", List[str] ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -905,48 +1107,73 @@ def remove_shipments( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="RemoveShipmentsFromBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//remove_shipments \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'[\n "aa7dea463a5a48b0b8fb21f90e72d779",\n "f11b46440c144ce3b97fb5ddf02b8c71",\n "5400f9078f764b1bbb121bcd08de127f",\n "2ab2b452392545908d2cef8861a39c35"\n ]\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.remove_shipments(request_body=[\n '',\n '',\n '',\n], batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.removeShipments([\n "",\n "",\n "",\n ], "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.RemoveShipmentsAsync(\n batchId: "",\n requestBody: new List() {\n "",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->removeShipments(\n batchId: '',\n requestBody: [\n '',\n ],\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.RemoveShipmentsFromBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n RemoveShipmentsFromBatchResponse res = sdk.batches().removeShipments()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .requestBody(List.of(\n "",\n "",\n ""))\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def remove_shipments_async( self, *, batch_id: str, - request_body: List[str], + request_body: Iterable[str], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Batch]: + ) -> components.Batch: r"""Remove shipments from a batch Removes shipments from an existing batch shipment. @@ -970,7 +1197,7 @@ async def remove_shipments_async( request = operations.RemoveShipmentsFromBatchRequest( batch_id=batch_id, - request_body=request_body, + request_body=utils.unmarshal(request_body, List[str]), ) req = self._build_request_async( @@ -992,6 +1219,7 @@ async def remove_shipments_async( get_serialized_body=lambda: utils.serialize_request_body( request.request_body, False, False, "json", List[str] ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1005,34 +1233,59 @@ async def remove_shipments_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="RemoveShipmentsFromBatch", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Batches"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/batches//remove_shipments \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'[\n "aa7dea463a5a48b0b8fb21f90e72d779",\n "f11b46440c144ce3b97fb5ddf02b8c71",\n "5400f9078f764b1bbb121bcd08de127f",\n "2ab2b452392545908d2cef8861a39c35"\n ]\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.batches.remove_shipments(request_body=[\n '',\n '',\n '',\n], batch_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.batches.removeShipments([\n "",\n "",\n "",\n ], "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Batches.RemoveShipmentsAsync(\n batchId: "",\n requestBody: new List() {\n "",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->batches->removeShipments(\n batchId: '',\n requestBody: [\n '',\n ],\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->batch !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.RemoveShipmentsFromBatchResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n RemoveShipmentsFromBatchResponse res = sdk.batches().removeShipments()\n .batchId("")\n .shippoApiVersion("2018-02-08")\n .requestBody(List.of(\n "",\n "",\n ""))\n .call();\n\n if (res.batch().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Batch]) + return unmarshal_json_response(components.Batch, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/carrier_accounts.py b/src/shippo/carrier_accounts.py index f8f6d001..6f30f91e 100644 --- a/src/shippo/carrier_accounts.py +++ b/src/shippo/carrier_accounts.py @@ -5,14 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, Mapping, Optional, Union, cast class CarrierAccounts(BaseSDK): - r"""Carriers are the companies who deliver your package. Shippo uses Carrier account objects as credentials to retrieve shipping rates and purchase labels from shipping Carriers. - - - """ + r"""Carriers are the companies who deliver your package. Shippo uses Carrier account objects as credentials to retrieve shipping rates and purchase labels from shipping Carriers.""" def list( self, @@ -25,13 +23,13 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccountPaginatedList]: + ) -> components.CarrierAccountPaginatedList: r"""List all carrier accounts Returns a list of all carrier accounts connected to your Shippo account. These carrier accounts include both Shippo carrier accounts and your own carrier accounts that you have connected to your Shippo account. - Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter.
- Using it appends the property `service_levels` to each carrier account.
+ Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter. + Using it appends the property `service_levels` to each carrier account. By default, if the query parameter is omitted, the `service_levels` property will not be included in the response. :param request: The request object to send. @@ -70,6 +68,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -83,39 +82,64 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCarrierAccounts", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts?service_levels=true \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.list(request=operations.ListCarrierAccountsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListCarrierAccountsRequest();\n\n$response = $sdk->carrierAccounts->list(\n request: $request\n);\n\nif ($response->carrierAccountPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListCarrierAccountsRequest req = new ListCarrierAccountsRequest() {};\n\nvar res = await sdk.CarrierAccounts.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierAccountsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierAccountsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCarrierAccountsRequest req = ListCarrierAccountsRequest.builder()\n .build();\n\n ListCarrierAccountsResponse res = sdk.carrierAccounts().list()\n .request(req)\n .call();\n\n if (res.carrierAccountPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccountPaginatedList] + return unmarshal_json_response( + components.CarrierAccountPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -128,13 +152,13 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccountPaginatedList]: + ) -> components.CarrierAccountPaginatedList: r"""List all carrier accounts Returns a list of all carrier accounts connected to your Shippo account. These carrier accounts include both Shippo carrier accounts and your own carrier accounts that you have connected to your Shippo account. - Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter.
- Using it appends the property `service_levels` to each carrier account.
+ Additionally, you can get information about the service levels associated with each carrier account by passing in the `?service_levels=true` query parameter. + Using it appends the property `service_levels` to each carrier account. By default, if the query parameter is omitted, the `service_levels` property will not be included in the response. :param request: The request object to send. @@ -173,6 +197,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -186,39 +211,64 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCarrierAccounts", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts?service_levels=true \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.list(request=operations.ListCarrierAccountsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListCarrierAccountsRequest();\n\n$response = $sdk->carrierAccounts->list(\n request: $request\n);\n\nif ($response->carrierAccountPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListCarrierAccountsRequest req = new ListCarrierAccountsRequest() {};\n\nvar res = await sdk.CarrierAccounts.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierAccountsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierAccountsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCarrierAccountsRequest req = ListCarrierAccountsRequest.builder()\n .build();\n\n ListCarrierAccountsResponse res = sdk.carrierAccounts().list()\n .request(req)\n .call();\n\n if (res.carrierAccountPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccountPaginatedList] + return unmarshal_json_response( + components.CarrierAccountPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -231,7 +281,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Create a new carrier account Creates a new carrier account or connects an existing carrier account to the Shippo account. @@ -281,6 +331,7 @@ def create( "json", components.ConnectExistingOwnAccountRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -294,39 +345,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl --location --request POST \'https://api.goshippo.com/carrier_accounts/\' \\\n--header \'Authorization: ShippoToken {{token}}\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "account_id": "string",\n "active": true,\n "carrier": "ups",\n "metadata": "UPS Account",\n "parameters": {\n "billing_address_city": "San Francisco",\n "billing_address_country_iso2": "US",\n "billing_address_state": "CA",\n "billing_address_street1": "731 Market St",\n "billing_address_street2": "STE 200",\n "billing_address_zip": "94103",\n "company": "Shippo",\n "email": "hippo@shippo.com",\n "full_name": "Thorn Hall",\n "phone": "1112223333",\n "pickup_address_city": "San Francisco",\n "pickup_address_country_iso2": "US",\n "pickup_address_same_as_billing_address": false,\n "pickup_address_state": "CA",\n "pickup_address_street1": "731 Market St",\n "pickup_address_street2": "STE 200",\n "pickup_address_zip": "94103",\n "ups_agreements": true\n },\n "test": false\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.create(request=components.ConnectExistingOwnAccountRequest(\n account_id='321123',\n carrier='fedex',\n metadata='FEDEX Account',\n parameters=components.FedExConnectExistingOwnAccountParameters(\n first_name='Loyal',\n last_name='Collier',\n phone_number='(890) 307-8579',\n from_address_st='',\n from_address_city='',\n from_address_state='',\n from_address_zip='',\n from_address_country_iso2='',\n use_multi_factor_registration=True,\n verification_option='SMS',\n ),\n test=False,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.create({\n accountId: "321123",\n carrier: "fedex",\n metadata: "FEDEX Account",\n parameters: {\n firstName: "Loyal",\n lastName: "Collier",\n phoneNumber: "(890) 307-8579",\n fromAddressSt: "",\n fromAddressCity: "",\n fromAddressState: "",\n fromAddressZip: "",\n fromAddressCountryIso2: "",\n useMultiFactorRegistration: true,\n verificationOption: "SMS",\n },\n test: false,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$connectExistingOwnAccountRequest = new Components\\ConnectExistingOwnAccountRequest(\n accountId: '321123',\n carrier: 'fedex',\n metadata: 'FEDEX Account',\n parameters: new Components\\FedExConnectExistingOwnAccountParameters(\n firstName: 'Loyal',\n lastName: 'Collier',\n phoneNumber: '(890) 307-8579',\n fromAddressSt: '',\n fromAddressCity: '',\n fromAddressState: '',\n fromAddressZip: '',\n fromAddressCountryIso2: '',\n useMultiFactorRegistration: true,\n verificationOption: 'SMS',\n ),\n test: false,\n);\n\n$response = $sdk->carrierAccounts->create(\n connectExistingOwnAccountRequest: $connectExistingOwnAccountRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.CreateAsync(\n connectExistingOwnAccountRequest: new ConnectExistingOwnAccountRequest() {\n AccountId = "321123",\n Carrier = "fedex",\n Metadata = "FEDEX Account",\n Parameters = ConnectExistingOwnAccountRequestParameters.CreateFedExConnectExistingOwnAccountParameters(\n new FedExConnectExistingOwnAccountParameters() {\n FirstName = "Loyal",\n LastName = "Collier",\n PhoneNumber = "(890) 307-8579",\n FromAddressSt = "",\n FromAddressCity = "",\n FromAddressState = "",\n FromAddressZip = "",\n FromAddressCountryIso2 = "",\n UseMultiFactorRegistration = true,\n VerificationOption = "SMS",\n }\n ),\n Test = false,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ConnectExistingOwnAccountRequest;\nimport com.goshippo.shippo_sdk.models.components.ConnectExistingOwnAccountRequestParameters;\nimport com.goshippo.shippo_sdk.models.components.FedExConnectExistingOwnAccountParameters;\nimport com.goshippo.shippo_sdk.models.operations.CreateCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCarrierAccountResponse res = sdk.carrierAccounts().create()\n .shippoApiVersion("2018-02-08")\n .connectExistingOwnAccountRequest(ConnectExistingOwnAccountRequest.builder()\n .accountId("321123")\n .carrier("fedex")\n .parameters(ConnectExistingOwnAccountRequestParameters.of(FedExConnectExistingOwnAccountParameters.builder()\n .firstName("Loyal")\n .lastName("Collier")\n .phoneNumber("(890) 307-8579")\n .fromAddressSt("")\n .fromAddressCity("")\n .fromAddressState("")\n .fromAddressZip("")\n .fromAddressCountryIso2("")\n .useMultiFactorRegistration(true)\n .verificationOption("SMS")\n .build()))\n .metadata("FEDEX Account")\n .test(false)\n .build())\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -339,7 +413,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Create a new carrier account Creates a new carrier account or connects an existing carrier account to the Shippo account. @@ -389,6 +463,7 @@ async def create_async( "json", components.ConnectExistingOwnAccountRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -402,39 +477,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl --location --request POST \'https://api.goshippo.com/carrier_accounts/\' \\\n--header \'Authorization: ShippoToken {{token}}\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "account_id": "string",\n "active": true,\n "carrier": "ups",\n "metadata": "UPS Account",\n "parameters": {\n "billing_address_city": "San Francisco",\n "billing_address_country_iso2": "US",\n "billing_address_state": "CA",\n "billing_address_street1": "731 Market St",\n "billing_address_street2": "STE 200",\n "billing_address_zip": "94103",\n "company": "Shippo",\n "email": "hippo@shippo.com",\n "full_name": "Thorn Hall",\n "phone": "1112223333",\n "pickup_address_city": "San Francisco",\n "pickup_address_country_iso2": "US",\n "pickup_address_same_as_billing_address": false,\n "pickup_address_state": "CA",\n "pickup_address_street1": "731 Market St",\n "pickup_address_street2": "STE 200",\n "pickup_address_zip": "94103",\n "ups_agreements": true\n },\n "test": false\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.create(request=components.ConnectExistingOwnAccountRequest(\n account_id='321123',\n carrier='fedex',\n metadata='FEDEX Account',\n parameters=components.FedExConnectExistingOwnAccountParameters(\n first_name='Loyal',\n last_name='Collier',\n phone_number='(890) 307-8579',\n from_address_st='',\n from_address_city='',\n from_address_state='',\n from_address_zip='',\n from_address_country_iso2='',\n use_multi_factor_registration=True,\n verification_option='SMS',\n ),\n test=False,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.create({\n accountId: "321123",\n carrier: "fedex",\n metadata: "FEDEX Account",\n parameters: {\n firstName: "Loyal",\n lastName: "Collier",\n phoneNumber: "(890) 307-8579",\n fromAddressSt: "",\n fromAddressCity: "",\n fromAddressState: "",\n fromAddressZip: "",\n fromAddressCountryIso2: "",\n useMultiFactorRegistration: true,\n verificationOption: "SMS",\n },\n test: false,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$connectExistingOwnAccountRequest = new Components\\ConnectExistingOwnAccountRequest(\n accountId: '321123',\n carrier: 'fedex',\n metadata: 'FEDEX Account',\n parameters: new Components\\FedExConnectExistingOwnAccountParameters(\n firstName: 'Loyal',\n lastName: 'Collier',\n phoneNumber: '(890) 307-8579',\n fromAddressSt: '',\n fromAddressCity: '',\n fromAddressState: '',\n fromAddressZip: '',\n fromAddressCountryIso2: '',\n useMultiFactorRegistration: true,\n verificationOption: 'SMS',\n ),\n test: false,\n);\n\n$response = $sdk->carrierAccounts->create(\n connectExistingOwnAccountRequest: $connectExistingOwnAccountRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.CreateAsync(\n connectExistingOwnAccountRequest: new ConnectExistingOwnAccountRequest() {\n AccountId = "321123",\n Carrier = "fedex",\n Metadata = "FEDEX Account",\n Parameters = ConnectExistingOwnAccountRequestParameters.CreateFedExConnectExistingOwnAccountParameters(\n new FedExConnectExistingOwnAccountParameters() {\n FirstName = "Loyal",\n LastName = "Collier",\n PhoneNumber = "(890) 307-8579",\n FromAddressSt = "",\n FromAddressCity = "",\n FromAddressState = "",\n FromAddressZip = "",\n FromAddressCountryIso2 = "",\n UseMultiFactorRegistration = true,\n VerificationOption = "SMS",\n }\n ),\n Test = false,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ConnectExistingOwnAccountRequest;\nimport com.goshippo.shippo_sdk.models.components.ConnectExistingOwnAccountRequestParameters;\nimport com.goshippo.shippo_sdk.models.components.FedExConnectExistingOwnAccountParameters;\nimport com.goshippo.shippo_sdk.models.operations.CreateCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCarrierAccountResponse res = sdk.carrierAccounts().create()\n .shippoApiVersion("2018-02-08")\n .connectExistingOwnAccountRequest(ConnectExistingOwnAccountRequest.builder()\n .accountId("321123")\n .carrier("fedex")\n .parameters(ConnectExistingOwnAccountRequestParameters.of(FedExConnectExistingOwnAccountParameters.builder()\n .firstName("Loyal")\n .lastName("Collier")\n .phoneNumber("(890) 307-8579")\n .fromAddressSt("")\n .fromAddressCity("")\n .fromAddressState("")\n .fromAddressZip("")\n .fromAddressCountryIso2("")\n .useMultiFactorRegistration(true)\n .verificationOption("SMS")\n .build()))\n .metadata("FEDEX Account")\n .test(false)\n .build())\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -444,7 +542,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Retrieve a carrier account Returns an existing carrier account using an object ID. @@ -485,6 +583,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -498,39 +597,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts/b741b99f95e841639b54272834bc478c \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.get(carrier_account_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->get(\n carrierAccountId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.GetAsync(\n carrierAccountId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierAccountResponse res = sdk.carrierAccounts().get()\n .carrierAccountId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -540,7 +662,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Retrieve a carrier account Returns an existing carrier account using an object ID. @@ -581,6 +703,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -594,39 +717,62 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts/b741b99f95e841639b54272834bc478c \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.get(carrier_account_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->get(\n carrierAccountId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.GetAsync(\n carrierAccountId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierAccountResponse res = sdk.carrierAccounts().get()\n .carrierAccountId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def update( self, @@ -639,7 +785,7 @@ def update( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Update a carrier account Updates an existing carrier account object. The account_id and carrier can't be updated. This is because they form the unique identifier together. @@ -685,12 +831,13 @@ def update( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.carrier_account_base, + request.carrier_account_base if request is not None else None, False, True, "json", Optional[components.CarrierAccountBase], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -704,39 +851,62 @@ def update( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts/b741b99f95e841639b54272834bc478c/ \\\n-X PUT \\\n-H "Authorization: ShippoToken " \\\n-d parameters=\'{\n "meter": "123987"\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.update(carrier_account_id='', carrier_account_base=components.CarrierAccountBase(\n account_id='****',\n carrier='usps',\n parameters=components.UPSConnectExistingOwnAccountParameters(\n account_number='94567e',\n aia_country_iso2='US',\n billing_address_city='San Francisco',\n billing_address_country_iso2='US',\n billing_address_state='CA',\n billing_address_street1='731 Market St',\n billing_address_street2='STE 200',\n billing_address_zip='94103',\n collec_country_iso2='US',\n collec_zip='94103',\n company='Shippo',\n currency_code='USD',\n email='hippo@shippo.com',\n full_name='Shippo Meister',\n has_invoice=False,\n invoice_controlid='1234',\n invoice_date='20210529',\n invoice_number='1112234',\n invoice_value='11.23',\n phone='1112223333',\n title='Manager',\n ups_agreements=True,\n ),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.update("", {\n accountId: "****",\n carrier: "usps",\n parameters: {\n accountNumber: "94567e",\n aiaCountryIso2: "US",\n billingAddressCity: "San Francisco",\n billingAddressCountryIso2: "US",\n billingAddressState: "CA",\n billingAddressStreet1: "731 Market St",\n billingAddressStreet2: "STE 200",\n billingAddressZip: "94103",\n collecCountryIso2: "US",\n collecZip: "94103",\n company: "Shippo",\n currencyCode: "USD",\n email: "hippo@shippo.com",\n fullName: "Shippo Meister",\n hasInvoice: false,\n invoiceControlid: "1234",\n invoiceDate: "20210529",\n invoiceNumber: "1112234",\n invoiceValue: "11.23",\n phone: "1112223333",\n title: "Manager",\n upsAgreements: true,\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$carrierAccountBase = new Components\\CarrierAccountBase(\n accountId: '****',\n carrier: 'usps',\n parameters: new Components\\UPSConnectExistingOwnAccountParameters(\n accountNumber: '94567e',\n aiaCountryIso2: 'US',\n billingAddressCity: 'San Francisco',\n billingAddressCountryIso2: 'US',\n billingAddressState: 'CA',\n billingAddressStreet1: '731 Market St',\n billingAddressStreet2: 'STE 200',\n billingAddressZip: '94103',\n collecCountryIso2: 'US',\n collecZip: '94103',\n company: 'Shippo',\n currencyCode: 'USD',\n email: 'hippo@shippo.com',\n fullName: 'Shippo Meister',\n hasInvoice: false,\n invoiceControlid: '1234',\n invoiceDate: '20210529',\n invoiceNumber: '1112234',\n invoiceValue: '11.23',\n phone: '1112223333',\n title: 'Manager',\n upsAgreements: false,\n ),\n);\n\n$response = $sdk->carrierAccounts->update(\n carrierAccountId: '',\n shippoApiVersion: '2018-02-08',\n carrierAccountBase: $carrierAccountBase\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.UpdateAsync(\n carrierAccountId: "",\n shippoApiVersion: "2018-02-08",\n carrierAccountBase: new CarrierAccountBase() {\n AccountId = "****",\n Carrier = "usps",\n Parameters = CarrierAccountBaseParameters.CreateUPSConnectExistingOwnAccountParameters(\n new UPSConnectExistingOwnAccountParameters() {\n AccountNumber = "94567e",\n AiaCountryIso2 = "US",\n BillingAddressCity = "San Francisco",\n BillingAddressCountryIso2 = "US",\n BillingAddressState = "CA",\n BillingAddressStreet1 = "731 Market St",\n BillingAddressStreet2 = "STE 200",\n BillingAddressZip = "94103",\n CollecCountryIso2 = "US",\n CollecZip = "94103",\n Company = "Shippo",\n CurrencyCode = "USD",\n Email = "hippo@shippo.com",\n FullName = "Shippo Meister",\n HasInvoice = false,\n InvoiceControlid = "1234",\n InvoiceDate = "20210529",\n InvoiceNumber = "1112234",\n InvoiceValue = "11.23",\n Phone = "1112223333",\n Title = "Manager",\n UpsAgreements = false,\n }\n ),\n }\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountBase;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountBaseParameters;\nimport com.goshippo.shippo_sdk.models.components.UPSConnectExistingOwnAccountParameters;\nimport com.goshippo.shippo_sdk.models.operations.UpdateCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateCarrierAccountResponse res = sdk.carrierAccounts().update()\n .carrierAccountId("")\n .shippoApiVersion("2018-02-08")\n .carrierAccountBase(CarrierAccountBase.builder()\n .accountId("****")\n .carrier("usps")\n .parameters(CarrierAccountBaseParameters.of(UPSConnectExistingOwnAccountParameters.builder()\n .accountNumber("94567e")\n .billingAddressCity("San Francisco")\n .billingAddressCountryIso2("US")\n .billingAddressState("CA")\n .billingAddressStreet1("731 Market St")\n .billingAddressZip("94103")\n .collecCountryIso2("US")\n .collecZip("94103")\n .company("Shippo")\n .email("hippo@shippo.com")\n .fullName("Shippo Meister")\n .hasInvoice(false)\n .phone("1112223333")\n .title("Manager")\n .upsAgreements(true)\n .aiaCountryIso2("US")\n .billingAddressStreet2("STE 200")\n .currencyCode("USD")\n .invoiceControlid("1234")\n .invoiceDate("20210529")\n .invoiceNumber("1112234")\n .invoiceValue("11.23")\n .build()))\n .build())\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def update_async( self, @@ -749,7 +919,7 @@ async def update_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Update a carrier account Updates an existing carrier account object. The account_id and carrier can't be updated. This is because they form the unique identifier together. @@ -795,12 +965,13 @@ async def update_async( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.carrier_account_base, + request.carrier_account_base if request is not None else None, False, True, "json", Optional[components.CarrierAccountBase], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -814,39 +985,62 @@ async def update_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/carrier_accounts/b741b99f95e841639b54272834bc478c/ \\\n-X PUT \\\n-H "Authorization: ShippoToken " \\\n-d parameters=\'{\n "meter": "123987"\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.update(carrier_account_id='', carrier_account_base=components.CarrierAccountBase(\n account_id='****',\n carrier='usps',\n parameters=components.UPSConnectExistingOwnAccountParameters(\n account_number='94567e',\n aia_country_iso2='US',\n billing_address_city='San Francisco',\n billing_address_country_iso2='US',\n billing_address_state='CA',\n billing_address_street1='731 Market St',\n billing_address_street2='STE 200',\n billing_address_zip='94103',\n collec_country_iso2='US',\n collec_zip='94103',\n company='Shippo',\n currency_code='USD',\n email='hippo@shippo.com',\n full_name='Shippo Meister',\n has_invoice=False,\n invoice_controlid='1234',\n invoice_date='20210529',\n invoice_number='1112234',\n invoice_value='11.23',\n phone='1112223333',\n title='Manager',\n ups_agreements=True,\n ),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.update("", {\n accountId: "****",\n carrier: "usps",\n parameters: {\n accountNumber: "94567e",\n aiaCountryIso2: "US",\n billingAddressCity: "San Francisco",\n billingAddressCountryIso2: "US",\n billingAddressState: "CA",\n billingAddressStreet1: "731 Market St",\n billingAddressStreet2: "STE 200",\n billingAddressZip: "94103",\n collecCountryIso2: "US",\n collecZip: "94103",\n company: "Shippo",\n currencyCode: "USD",\n email: "hippo@shippo.com",\n fullName: "Shippo Meister",\n hasInvoice: false,\n invoiceControlid: "1234",\n invoiceDate: "20210529",\n invoiceNumber: "1112234",\n invoiceValue: "11.23",\n phone: "1112223333",\n title: "Manager",\n upsAgreements: true,\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$carrierAccountBase = new Components\\CarrierAccountBase(\n accountId: '****',\n carrier: 'usps',\n parameters: new Components\\UPSConnectExistingOwnAccountParameters(\n accountNumber: '94567e',\n aiaCountryIso2: 'US',\n billingAddressCity: 'San Francisco',\n billingAddressCountryIso2: 'US',\n billingAddressState: 'CA',\n billingAddressStreet1: '731 Market St',\n billingAddressStreet2: 'STE 200',\n billingAddressZip: '94103',\n collecCountryIso2: 'US',\n collecZip: '94103',\n company: 'Shippo',\n currencyCode: 'USD',\n email: 'hippo@shippo.com',\n fullName: 'Shippo Meister',\n hasInvoice: false,\n invoiceControlid: '1234',\n invoiceDate: '20210529',\n invoiceNumber: '1112234',\n invoiceValue: '11.23',\n phone: '1112223333',\n title: 'Manager',\n upsAgreements: false,\n ),\n);\n\n$response = $sdk->carrierAccounts->update(\n carrierAccountId: '',\n shippoApiVersion: '2018-02-08',\n carrierAccountBase: $carrierAccountBase\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.UpdateAsync(\n carrierAccountId: "",\n shippoApiVersion: "2018-02-08",\n carrierAccountBase: new CarrierAccountBase() {\n AccountId = "****",\n Carrier = "usps",\n Parameters = CarrierAccountBaseParameters.CreateUPSConnectExistingOwnAccountParameters(\n new UPSConnectExistingOwnAccountParameters() {\n AccountNumber = "94567e",\n AiaCountryIso2 = "US",\n BillingAddressCity = "San Francisco",\n BillingAddressCountryIso2 = "US",\n BillingAddressState = "CA",\n BillingAddressStreet1 = "731 Market St",\n BillingAddressStreet2 = "STE 200",\n BillingAddressZip = "94103",\n CollecCountryIso2 = "US",\n CollecZip = "94103",\n Company = "Shippo",\n CurrencyCode = "USD",\n Email = "hippo@shippo.com",\n FullName = "Shippo Meister",\n HasInvoice = false,\n InvoiceControlid = "1234",\n InvoiceDate = "20210529",\n InvoiceNumber = "1112234",\n InvoiceValue = "11.23",\n Phone = "1112223333",\n Title = "Manager",\n UpsAgreements = false,\n }\n ),\n }\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountBase;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountBaseParameters;\nimport com.goshippo.shippo_sdk.models.components.UPSConnectExistingOwnAccountParameters;\nimport com.goshippo.shippo_sdk.models.operations.UpdateCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateCarrierAccountResponse res = sdk.carrierAccounts().update()\n .carrierAccountId("")\n .shippoApiVersion("2018-02-08")\n .carrierAccountBase(CarrierAccountBase.builder()\n .accountId("****")\n .carrier("usps")\n .parameters(CarrierAccountBaseParameters.of(UPSConnectExistingOwnAccountParameters.builder()\n .accountNumber("94567e")\n .billingAddressCity("San Francisco")\n .billingAddressCountryIso2("US")\n .billingAddressState("CA")\n .billingAddressStreet1("731 Market St")\n .billingAddressZip("94103")\n .collecCountryIso2("US")\n .collecZip("94103")\n .company("Shippo")\n .email("hippo@shippo.com")\n .fullName("Shippo Meister")\n .hasInvoice(false)\n .phone("1112223333")\n .title("Manager")\n .upsAgreements(true)\n .aiaCountryIso2("US")\n .billingAddressStreet2("STE 200")\n .currencyCode("USD")\n .invoiceControlid("1234")\n .invoiceDate("20210529")\n .invoiceNumber("1112234")\n .invoiceValue("11.23")\n .build()))\n .build())\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def initiate_oauth2_signin( self, @@ -903,6 +1097,7 @@ def initiate_oauth2_signin( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -916,13 +1111,49 @@ def initiate_oauth2_signin( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="InitiateOauth2Signin", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl "https://api.goshippo.com/carrier_accounts/2ccf5af209bb484cb20190d9cadbb61c/signin/initiate?redirect_uri=https://client.example.com/cb&state=SplxlOBeZQQYbYS6WxSbIA" \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.initiate_oauth2_signin(carrier_account_object_id='', redirect_uri='https://enlightened-mortise.com/')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.initiateOauth2Signin("", "https://enlightened-mortise.com/");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nInitiateOauth2SigninRequest req = new InitiateOauth2SigninRequest() {\n CarrierAccountObjectId = "",\n RedirectUri = "https://enlightened-mortise.com/",\n};\n\nvar res = await sdk.CarrierAccounts.InitiateOauth2SigninAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\InitiateOauth2SigninRequest(\n carrierAccountObjectId: '',\n redirectUri: 'https://enlightened-mortise.com/',\n);\n\n$response = $sdk->carrierAccounts->initiateOauth2Signin(\n request: $request\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninCarrierAccountsResponseBody;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninCarrierAccountsResponseResponseBody;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninResponseBody;\nimport com.goshippo.shippo_sdk.models.operations.InitiateOauth2SigninResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws InitiateOauth2SigninResponseBody, InitiateOauth2SigninCarrierAccountsResponseResponseBody, InitiateOauth2SigninCarrierAccountsResponseBody, Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n InitiateOauth2SigninResponse res = sdk.carrierAccounts().initiateOauth2Signin()\n .carrierAccountObjectId("")\n .redirectUri("https://enlightened-mortise.com/")\n .state("Florida")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "401", "404", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -932,39 +1163,26 @@ def initiate_oauth2_signin( headers=utils.get_response_headers(http_res.headers) ) if utils.match_response(http_res, "400", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.BadRequestErrorData + response_data = unmarshal_json_response( + errors.BadRequestErrorData, http_res ) - raise errors.BadRequestError(data=response_data) + raise errors.BadRequestError(response_data, http_res) if utils.match_response(http_res, "401", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.UnauthorizedErrorData + response_data = unmarshal_json_response( + errors.UnauthorizedErrorData, http_res ) - raise errors.UnauthorizedError(data=response_data) + raise errors.UnauthorizedError(response_data, http_res) if utils.match_response(http_res, "404", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.NotFoundErrorData - ) - raise errors.NotFoundError(data=response_data) + response_data = unmarshal_json_response(errors.NotFoundErrorData, http_res) + raise errors.NotFoundError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def initiate_oauth2_signin_async( self, @@ -1021,6 +1239,7 @@ async def initiate_oauth2_signin_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1034,13 +1253,49 @@ async def initiate_oauth2_signin_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="InitiateOauth2Signin", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl "https://api.goshippo.com/carrier_accounts/2ccf5af209bb484cb20190d9cadbb61c/signin/initiate?redirect_uri=https://client.example.com/cb&state=SplxlOBeZQQYbYS6WxSbIA" \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.initiate_oauth2_signin(carrier_account_object_id='', redirect_uri='https://enlightened-mortise.com/')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.initiateOauth2Signin("", "https://enlightened-mortise.com/");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nInitiateOauth2SigninRequest req = new InitiateOauth2SigninRequest() {\n CarrierAccountObjectId = "",\n RedirectUri = "https://enlightened-mortise.com/",\n};\n\nvar res = await sdk.CarrierAccounts.InitiateOauth2SigninAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\InitiateOauth2SigninRequest(\n carrierAccountObjectId: '',\n redirectUri: 'https://enlightened-mortise.com/',\n);\n\n$response = $sdk->carrierAccounts->initiateOauth2Signin(\n request: $request\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninCarrierAccountsResponseBody;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninCarrierAccountsResponseResponseBody;\nimport com.goshippo.shippo_sdk.models.errors.InitiateOauth2SigninResponseBody;\nimport com.goshippo.shippo_sdk.models.operations.InitiateOauth2SigninResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws InitiateOauth2SigninResponseBody, InitiateOauth2SigninCarrierAccountsResponseResponseBody, InitiateOauth2SigninCarrierAccountsResponseBody, Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n InitiateOauth2SigninResponse res = sdk.carrierAccounts().initiateOauth2Signin()\n .carrierAccountObjectId("")\n .redirectUri("https://enlightened-mortise.com/")\n .state("Florida")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "401", "404", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -1050,39 +1305,26 @@ async def initiate_oauth2_signin_async( headers=utils.get_response_headers(http_res.headers) ) if utils.match_response(http_res, "400", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.BadRequestErrorData + response_data = unmarshal_json_response( + errors.BadRequestErrorData, http_res ) - raise errors.BadRequestError(data=response_data) + raise errors.BadRequestError(response_data, http_res) if utils.match_response(http_res, "401", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.UnauthorizedErrorData + response_data = unmarshal_json_response( + errors.UnauthorizedErrorData, http_res ) - raise errors.UnauthorizedError(data=response_data) + raise errors.UnauthorizedError(response_data, http_res) if utils.match_response(http_res, "404", "application/json"): - response_data = utils.unmarshal_json( - http_res.text, errors.NotFoundErrorData - ) - raise errors.NotFoundError(data=response_data) + response_data = unmarshal_json_response(errors.NotFoundErrorData, http_res) + raise errors.NotFoundError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def register( self, @@ -1095,7 +1337,7 @@ def register( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Add a Shippo carrier account Adds a Shippo carrier account @@ -1139,6 +1381,7 @@ def register( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.RegisterCarrierAccountRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1152,39 +1395,62 @@ def register( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="RegisterCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "CLI", + "lang": "cURL", + "source": 'curl --location --request POST \'/carrier_accounts/register/new\' \\\n--header \'Authorization: ShippoToken {{token}}\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "carrier": "canada_post",\n "parameters": {\n "company": "Shippo",\n "full_name": "Shippo Meister",\n "email": "hippo@shippo.com",\n "phone": "1112221122",\n "canada_post_terms": true\n }\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.register(request=components.CarrierAccountCorreosCreateRequest(\n parameters=components.CarrierAccountCorreosCreateRequestParameters(),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.register({\n parameters: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.RegisterAsync(\n requestBody: RegisterCarrierAccountRequestBody.CreateCarrierAccountCorreosCreateRequest(\n new CarrierAccountCorreosCreateRequest() {\n Parameters = new CarrierAccountCorreosCreateRequestParameters() {},\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->register(\n requestBody: new Components\\CarrierAccountCorreosCreateRequest(\n parameters: new Components\\CarrierAccountCorreosCreateRequestParameters(),\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountCorreosCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountCorreosCreateRequestParameters;\nimport com.goshippo.shippo_sdk.models.operations.RegisterCarrierAccountRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.RegisterCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n RegisterCarrierAccountResponse res = sdk.carrierAccounts().register()\n .shippoApiVersion("2018-02-08")\n .requestBody(RegisterCarrierAccountRequestBody.of(CarrierAccountCorreosCreateRequest.builder()\n .parameters(CarrierAccountCorreosCreateRequestParameters.builder()\n .build())\n .build()))\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def register_async( self, @@ -1197,7 +1463,7 @@ async def register_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccount]: + ) -> components.CarrierAccount: r"""Add a Shippo carrier account Adds a Shippo carrier account @@ -1241,6 +1507,7 @@ async def register_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.RegisterCarrierAccountRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1254,39 +1521,62 @@ async def register_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="RegisterCarrierAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "CLI", + "lang": "cURL", + "source": 'curl --location --request POST \'/carrier_accounts/register/new\' \\\n--header \'Authorization: ShippoToken {{token}}\' \\\n--header \'Content-Type: application/json\' \\\n--data-raw \'{\n "carrier": "canada_post",\n "parameters": {\n "company": "Shippo",\n "full_name": "Shippo Meister",\n "email": "hippo@shippo.com",\n "phone": "1112221122",\n "canada_post_terms": true\n }\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.register(request=components.CarrierAccountCorreosCreateRequest(\n parameters=components.CarrierAccountCorreosCreateRequestParameters(),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.register({\n parameters: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.RegisterAsync(\n requestBody: RegisterCarrierAccountRequestBody.CreateCarrierAccountCorreosCreateRequest(\n new CarrierAccountCorreosCreateRequest() {\n Parameters = new CarrierAccountCorreosCreateRequestParameters() {},\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->register(\n requestBody: new Components\\CarrierAccountCorreosCreateRequest(\n parameters: new Components\\CarrierAccountCorreosCreateRequestParameters(),\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountCorreosCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CarrierAccountCorreosCreateRequestParameters;\nimport com.goshippo.shippo_sdk.models.operations.RegisterCarrierAccountRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.RegisterCarrierAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n RegisterCarrierAccountResponse res = sdk.carrierAccounts().register()\n .shippoApiVersion("2018-02-08")\n .requestBody(RegisterCarrierAccountRequestBody.of(CarrierAccountCorreosCreateRequest.builder()\n .parameters(CarrierAccountCorreosCreateRequestParameters.builder()\n .build())\n .build()))\n .call();\n\n if (res.carrierAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccount] - ) + return unmarshal_json_response(components.CarrierAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get_registration_status( self, @@ -1296,7 +1586,7 @@ def get_registration_status( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccountRegistrationStatus]: + ) -> components.CarrierAccountRegistrationStatus: r"""Get Carrier Registration status Returns the registration status for the given account for the given carrier @@ -1337,6 +1627,7 @@ def get_registration_status( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1350,39 +1641,59 @@ def get_registration_status( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierRegistrationStatus", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.get_registration_status(carrier=operations.Carrier.USPS)\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.getRegistrationStatus("usps");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.GetRegistrationStatusAsync(\n carrier: Carrier.Usps,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->getRegistrationStatus(\n carrier: Operations\\Carrier::Usps,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccountRegistrationStatus !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.Carrier;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierRegistrationStatusResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierRegistrationStatusResponse res = sdk.carrierAccounts().getRegistrationStatus()\n .carrier(Carrier.USPS)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierAccountRegistrationStatus().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccountRegistrationStatus] + return unmarshal_json_response( + components.CarrierAccountRegistrationStatus, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_registration_status_async( self, @@ -1392,7 +1703,7 @@ async def get_registration_status_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierAccountRegistrationStatus]: + ) -> components.CarrierAccountRegistrationStatus: r"""Get Carrier Registration status Returns the registration status for the given account for the given carrier @@ -1433,6 +1744,7 @@ async def get_registration_status_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1446,36 +1758,56 @@ async def get_registration_status_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierRegistrationStatus", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_accounts.get_registration_status(carrier=operations.Carrier.USPS)\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierAccounts.getRegistrationStatus("usps");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierAccounts.GetRegistrationStatusAsync(\n carrier: Carrier.Usps,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierAccounts->getRegistrationStatus(\n carrier: Operations\\Carrier::Usps,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierAccountRegistrationStatus !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.Carrier;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierRegistrationStatusResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierRegistrationStatusResponse res = sdk.carrierAccounts().getRegistrationStatus()\n .carrier(Carrier.USPS)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierAccountRegistrationStatus().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierAccountRegistrationStatus] + return unmarshal_json_response( + components.CarrierAccountRegistrationStatus, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/carrier_parcel_templates.py b/src/shippo/carrier_parcel_templates.py index 939ce6fb..b54969a9 100644 --- a/src/shippo/carrier_parcel_templates.py +++ b/src/shippo/carrier_parcel_templates.py @@ -5,14 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional class CarrierParcelTemplates(BaseSDK): - r"""A carrier parcel template represents a package used for shipping that has preset dimensions defined by a carrier. Some examples of a carrier parcel template include USPS Flat Rate Box and Fedex Small Pak. When using a carrier parcel template, the rates returned may be limited to the carrier that provides the box. You can create user parcel templates using a carrier parcel template. Shippo takes the dimensions of the carrier parcel template but you must configure the weight. - - - """ + r"""A carrier parcel template represents a package used for shipping that has preset dimensions defined by a carrier. Some examples of a carrier parcel template include USPS Flat Rate Box and Fedex Small Pak. When using a carrier parcel template, the rates returned may be limited to the carrier that provides the box. You can create user parcel templates using a carrier parcel template. Shippo takes the dimensions of the carrier parcel template but you must configure the weight.""" def list( self, @@ -23,16 +21,17 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierParcelTemplateList]: + ) -> components.CarrierParcelTemplateList: r"""List all carrier parcel templates - List all carrier parcel template objects.
Use the following query string params to filter the results as needed.
-
    -
  • `include=all` (the default). Includes templates from all carriers
  • -
  • `include=user`. Includes templates only from carriers which the user has added (whether or not they're currently enabled)
  • -
  • `include=enabled`. includes templates only for carriers which the user has added and enabled
  • -
  • `carrier=*token*`. filter by specific carrier, e.g. fedex, usps
  • -
+ List all carrier parcel template objects. + + Use the following query string params to filter the results as needed: + + - `include=all` (the default): includes templates from all carriers + - `include=user`: includes templates only from carriers which the user has added (whether or not they're currently enabled) + - `include=enabled`: includes templates only for carriers which the user has added and enabled + - `carrier=`: filter by specific carrier, e.g. `fedex`, `usps` :param include: filter by user or enabled :param carrier: filter by specific carrier @@ -72,6 +71,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -85,39 +85,64 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCarrierParcelTemplates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcel-templates \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_parcel_templates.list(carrier='fedex')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierParcelTemplates.list("fedex");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierParcelTemplates.ListAsync(\n include: Include.Enabled,\n carrier: "fedex",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierParcelTemplates->list(\n include: Operations\\IncludeT::Enabled,\n carrier: 'fedex',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierParcelTemplateList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.Include;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierParcelTemplatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCarrierParcelTemplatesResponse res = sdk.carrierParcelTemplates().list()\n .include(Include.ENABLED)\n .carrier("fedex")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierParcelTemplateList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierParcelTemplateList] + return unmarshal_json_response( + components.CarrierParcelTemplateList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -128,16 +153,17 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierParcelTemplateList]: + ) -> components.CarrierParcelTemplateList: r"""List all carrier parcel templates - List all carrier parcel template objects.
Use the following query string params to filter the results as needed.
-
    -
  • `include=all` (the default). Includes templates from all carriers
  • -
  • `include=user`. Includes templates only from carriers which the user has added (whether or not they're currently enabled)
  • -
  • `include=enabled`. includes templates only for carriers which the user has added and enabled
  • -
  • `carrier=*token*`. filter by specific carrier, e.g. fedex, usps
  • -
+ List all carrier parcel template objects. + + Use the following query string params to filter the results as needed: + + - `include=all` (the default): includes templates from all carriers + - `include=user`: includes templates only from carriers which the user has added (whether or not they're currently enabled) + - `include=enabled`: includes templates only for carriers which the user has added and enabled + - `carrier=`: filter by specific carrier, e.g. `fedex`, `usps` :param include: filter by user or enabled :param carrier: filter by specific carrier @@ -177,6 +203,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -190,39 +217,64 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCarrierParcelTemplates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcel-templates \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_parcel_templates.list(carrier='fedex')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierParcelTemplates.list("fedex");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierParcelTemplates.ListAsync(\n include: Include.Enabled,\n carrier: "fedex",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierParcelTemplates->list(\n include: Operations\\IncludeT::Enabled,\n carrier: 'fedex',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierParcelTemplateList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.Include;\nimport com.goshippo.shippo_sdk.models.operations.ListCarrierParcelTemplatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCarrierParcelTemplatesResponse res = sdk.carrierParcelTemplates().list()\n .include(Include.ENABLED)\n .carrier("fedex")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierParcelTemplateList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierParcelTemplateList] + return unmarshal_json_response( + components.CarrierParcelTemplateList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -232,7 +284,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierParcelTemplate]: + ) -> components.CarrierParcelTemplate: r"""Retrieve a carrier parcel templates Fetches the parcel template information for a specific carrier parcel template, identified by the token. @@ -273,6 +325,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -286,39 +339,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcel-templates/Fedex_Box_Small_1 \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_parcel_templates.get(carrier_parcel_template_token='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierParcelTemplates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierParcelTemplates.GetAsync(\n carrierParcelTemplateToken: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierParcelTemplates->get(\n carrierParcelTemplateToken: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierParcelTemplateResponse res = sdk.carrierParcelTemplates().get()\n .carrierParcelTemplateToken("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierParcelTemplate] - ) + return unmarshal_json_response(components.CarrierParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -328,7 +404,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CarrierParcelTemplate]: + ) -> components.CarrierParcelTemplate: r"""Retrieve a carrier parcel templates Fetches the parcel template information for a specific carrier parcel template, identified by the token. @@ -369,6 +445,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -382,36 +459,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCarrierParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Carrier Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcel-templates/Fedex_Box_Small_1 \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.carrier_parcel_templates.get(carrier_parcel_template_token='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.carrierParcelTemplates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CarrierParcelTemplates.GetAsync(\n carrierParcelTemplateToken: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->carrierParcelTemplates->get(\n carrierParcelTemplateToken: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->carrierParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCarrierParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCarrierParcelTemplateResponse res = sdk.carrierParcelTemplates().get()\n .carrierParcelTemplateToken("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.carrierParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CarrierParcelTemplate] - ) + return unmarshal_json_response(components.CarrierParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/customs_declarations.py b/src/shippo/customs_declarations.py index 7d40ab73..2ab10336 100644 --- a/src/shippo/customs_declarations.py +++ b/src/shippo/customs_declarations.py @@ -5,13 +5,13 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class CustomsDeclarations(BaseSDK): r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - """ def list( @@ -23,10 +23,10 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclarationPaginatedList]: + ) -> components.CustomsDeclarationPaginatedList: r"""List all customs declarations - Returns a a list of all customs declaration objects + Returns a list of all customs declaration objects :param page: The page number you want to select :param results: The number of results to return per page (max 100, default 5) @@ -66,6 +66,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -79,39 +80,64 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCustomsDeclarations", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsDeclarations->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclarationPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCustomsDeclarationsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCustomsDeclarationsResponse res = sdk.customsDeclarations().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsDeclarationPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclarationPaginatedList] + return unmarshal_json_response( + components.CustomsDeclarationPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -122,10 +148,10 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclarationPaginatedList]: + ) -> components.CustomsDeclarationPaginatedList: r"""List all customs declarations - Returns a a list of all customs declaration objects + Returns a list of all customs declaration objects :param page: The page number you want to select :param results: The number of results to return per page (max 100, default 5) @@ -165,6 +191,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -178,39 +205,64 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCustomsDeclarations", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsDeclarations->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclarationPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCustomsDeclarationsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCustomsDeclarationsResponse res = sdk.customsDeclarations().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsDeclarationPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclarationPaginatedList] + return unmarshal_json_response( + components.CustomsDeclarationPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -223,7 +275,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclaration]: + ) -> components.CustomsDeclaration: r"""Create a new customs declaration Creates a new customs declaration object @@ -273,6 +325,7 @@ def create( "json", components.CustomsDeclarationCreateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -286,39 +339,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCustomsDeclaration", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{ \n "contents_type": "MERCHANDISE",\n "non_delivery_option": "RETURN",\n "certify": true,\n "certify_signer": "Simon Kreuz",\n "incoterm": "DDU",\n "items": [{\n "description": "T-shirt",\n "quantity": 20,\n "net_weight": "5",\n "mass_unit": "lb",\n "value_amount": "200",\n "value_currency": "USD",\n "tariff_number": "",\n "origin_country": "US"\n }]\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.create(request=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.create({\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$customsDeclarationCreateRequest = new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n);\n\n$response = $sdk->customsDeclarations->create(\n customsDeclarationCreateRequest: $customsDeclarationCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclaration !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.CreateAsync(\n customsDeclarationCreateRequest: new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateCustomsDeclarationResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCustomsDeclarationResponse res = sdk.customsDeclarations().create()\n .shippoApiVersion("2018-02-08")\n .customsDeclarationCreateRequest(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build())\n .call();\n\n if (res.customsDeclaration().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclaration] - ) + return unmarshal_json_response(components.CustomsDeclaration, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -331,7 +407,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclaration]: + ) -> components.CustomsDeclaration: r"""Create a new customs declaration Creates a new customs declaration object @@ -381,6 +457,7 @@ async def create_async( "json", components.CustomsDeclarationCreateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -394,39 +471,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCustomsDeclaration", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{ \n "contents_type": "MERCHANDISE",\n "non_delivery_option": "RETURN",\n "certify": true,\n "certify_signer": "Simon Kreuz",\n "incoterm": "DDU",\n "items": [{\n "description": "T-shirt",\n "quantity": 20,\n "net_weight": "5",\n "mass_unit": "lb",\n "value_amount": "200",\n "value_currency": "USD",\n "tariff_number": "",\n "origin_country": "US"\n }]\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.create(request=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.create({\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$customsDeclarationCreateRequest = new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n);\n\n$response = $sdk->customsDeclarations->create(\n customsDeclarationCreateRequest: $customsDeclarationCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclaration !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.CreateAsync(\n customsDeclarationCreateRequest: new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateCustomsDeclarationResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCustomsDeclarationResponse res = sdk.customsDeclarations().create()\n .shippoApiVersion("2018-02-08")\n .customsDeclarationCreateRequest(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build())\n .call();\n\n if (res.customsDeclaration().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclaration] - ) + return unmarshal_json_response(components.CustomsDeclaration, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -437,7 +537,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclaration]: + ) -> components.CustomsDeclaration: r"""Retrieve a customs declaration Returns an existing customs declaration using an object ID @@ -480,6 +580,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -493,39 +594,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCustomsDeclaration", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/e2197a54da9d470480f4f8796cc419cb \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.get(customs_declaration_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsDeclarations->get(\n customsDeclarationId: '',\n page: 1,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclaration !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.GetAsync(\n customsDeclarationId: "",\n page: 1,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCustomsDeclarationResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCustomsDeclarationResponse res = sdk.customsDeclarations().get()\n .customsDeclarationId("")\n .page(1L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsDeclaration().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclaration] - ) + return unmarshal_json_response(components.CustomsDeclaration, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -536,7 +660,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsDeclaration]: + ) -> components.CustomsDeclaration: r"""Retrieve a customs declaration Returns an existing customs declaration using an object ID @@ -579,6 +703,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -592,36 +717,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCustomsDeclaration", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Declarations"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/declarations/e2197a54da9d470480f4f8796cc419cb \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_declarations.get(customs_declaration_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsDeclarations.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsDeclarations->get(\n customsDeclarationId: '',\n page: 1,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsDeclaration !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsDeclarations.GetAsync(\n customsDeclarationId: "",\n page: 1,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCustomsDeclarationResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCustomsDeclarationResponse res = sdk.customsDeclarations().get()\n .customsDeclarationId("")\n .page(1L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsDeclaration().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsDeclaration] - ) + return unmarshal_json_response(components.CustomsDeclaration, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/customs_items.py b/src/shippo/customs_items.py index acc64245..2dc54380 100644 --- a/src/shippo/customs_items.py +++ b/src/shippo/customs_items.py @@ -5,13 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class CustomsItems(BaseSDK): - r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - - """ + r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments.""" def list( self, @@ -22,7 +21,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItemPaginatedList]: + ) -> components.CustomsItemPaginatedList: r"""List all customs items Returns a list all customs items objects. @@ -65,6 +64,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -78,39 +78,64 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCustomsItems", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsItems->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItemPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCustomsItemsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCustomsItemsResponse res = sdk.customsItems().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsItemPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsItemPaginatedList] + return unmarshal_json_response( + components.CustomsItemPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -121,7 +146,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItemPaginatedList]: + ) -> components.CustomsItemPaginatedList: r"""List all customs items Returns a list all customs items objects. @@ -164,6 +189,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -177,39 +203,64 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListCustomsItems", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsItems->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItemPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListCustomsItemsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListCustomsItemsResponse res = sdk.customsItems().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsItemPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.CustomsItemPaginatedList] + return unmarshal_json_response( + components.CustomsItemPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -222,7 +273,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItem]: + ) -> components.CustomsItem: r"""Create a new customs item Creates a new customs item object. @@ -266,6 +317,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.CustomsItemCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -279,37 +331,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCustomsItem", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/ \\\n-H "Authorization: ShippoToken " \\\n-d description="T-Shirt" \\\n-d quantity=2 \\\n-d net_weight="400" \\\n-d mass_unit="g" \\\n-d value_amount="20" \\\n-d value_currency="USD" \\\n-d tariff_number="" \\\n-d origin_country="US" \\\n-d metadata="Order ID \'123123\'"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.create(request=components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.create({\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$customsItemCreateRequest = new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n);\n\n$response = $sdk->customsItems->create(\n customsItemCreateRequest: $customsItemCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItem !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.CreateAsync(\n customsItemCreateRequest: new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateCustomsItemResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCustomsItemResponse res = sdk.customsItems().create()\n .shippoApiVersion("2018-02-08")\n .customsItemCreateRequest(CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build())\n .call();\n\n if (res.customsItem().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.CustomsItem]) + return unmarshal_json_response(components.CustomsItem, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -322,7 +399,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItem]: + ) -> components.CustomsItem: r"""Create a new customs item Creates a new customs item object. @@ -366,6 +443,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.CustomsItemCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -379,37 +457,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateCustomsItem", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/ \\\n-H "Authorization: ShippoToken " \\\n-d description="T-Shirt" \\\n-d quantity=2 \\\n-d net_weight="400" \\\n-d mass_unit="g" \\\n-d value_amount="20" \\\n-d value_currency="USD" \\\n-d tariff_number="" \\\n-d origin_country="US" \\\n-d metadata="Order ID \'123123\'"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.create(request=components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.create({\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$customsItemCreateRequest = new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n);\n\n$response = $sdk->customsItems->create(\n customsItemCreateRequest: $customsItemCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItem !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.CreateAsync(\n customsItemCreateRequest: new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateCustomsItemResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateCustomsItemResponse res = sdk.customsItems().create()\n .shippoApiVersion("2018-02-08")\n .customsItemCreateRequest(CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build())\n .call();\n\n if (res.customsItem().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.CustomsItem]) + return unmarshal_json_response(components.CustomsItem, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -420,7 +523,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItem]: + ) -> components.CustomsItem: r"""Retrieve a customs item Returns an existing customs item using an object ID @@ -463,6 +566,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -476,37 +580,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCustomsItem", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/55358464c7b740aca199b395536981bd \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.get(customs_item_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsItems->get(\n customsItemId: '',\n page: 1,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItem !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.GetAsync(\n customsItemId: "",\n page: 1,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCustomsItemResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCustomsItemResponse res = sdk.customsItems().get()\n .customsItemId("")\n .page(1L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsItem().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.CustomsItem]) + return unmarshal_json_response(components.CustomsItem, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -517,7 +646,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.CustomsItem]: + ) -> components.CustomsItem: r"""Retrieve a customs item Returns an existing customs item using an object ID @@ -560,6 +689,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -573,34 +703,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetCustomsItem", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Customs Items"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/customs/items/55358464c7b740aca199b395536981bd \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.customs_items.get(customs_item_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.customsItems.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->customsItems->get(\n customsItemId: '',\n page: 1,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->customsItem !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.CustomsItems.GetAsync(\n customsItemId: "",\n page: 1,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetCustomsItemResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetCustomsItemResponse res = sdk.customsItems().get()\n .customsItemId("")\n .page(1L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.customsItem().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.CustomsItem]) + return unmarshal_json_response(components.CustomsItem, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/httpclient.py b/src/shippo/httpclient.py index 1e426352..89560b56 100644 --- a/src/shippo/httpclient.py +++ b/src/shippo/httpclient.py @@ -2,7 +2,6 @@ # pyright: reportReturnType = false import asyncio -from concurrent.futures import ThreadPoolExecutor from typing_extensions import Protocol, runtime_checkable import httpx from typing import Any, Optional, Union @@ -108,7 +107,6 @@ def close_clients( # to them from the owning SDK instance and they can be reaped. owner.client = None owner.async_client = None - if sync_client is not None and not sync_client_supplied: try: sync_client.close() @@ -116,21 +114,12 @@ def close_clients( pass if async_client is not None and not async_client_supplied: - is_async = False try: - asyncio.get_running_loop() - is_async = True + loop = asyncio.get_running_loop() + asyncio.run_coroutine_threadsafe(async_client.aclose(), loop) except RuntimeError: - pass - - try: - # If this function is called in an async loop then start another - # loop in a separate thread to close the async http client. - if is_async: - with ThreadPoolExecutor(max_workers=1) as executor: - future = executor.submit(asyncio.run, async_client.aclose()) - future.result() - else: + try: asyncio.run(async_client.aclose()) - except Exception: - pass + except RuntimeError: + # best effort + pass diff --git a/src/shippo/manifests.py b/src/shippo/manifests.py index 131901bd..d6949a9b 100644 --- a/src/shippo/manifests.py +++ b/src/shippo/manifests.py @@ -5,18 +5,13 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Manifests(BaseSDK): r"""A manifest is a single-page document with a barcode that carriers can scan to accept all packages into transit without the need to scan each item individually. They are close-outs of shipping labels of a certain day. Some carriers require manifests to process the shipments. - - - - # Manifest Errors - The following codes and messages are the possible errors that may occur when creating Manifests. - """ def list( @@ -28,7 +23,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ManifestPaginatedList]: + ) -> components.ManifestPaginatedList: r"""List all manifests Returns a list of all manifest objects. @@ -71,6 +66,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -84,39 +80,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListManifests", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->manifests->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifestPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListManifestsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListManifestsResponse res = sdk.manifests().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.manifestPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ManifestPaginatedList] - ) + return unmarshal_json_response(components.ManifestPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -127,7 +146,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ManifestPaginatedList]: + ) -> components.ManifestPaginatedList: r"""List all manifests Returns a list of all manifest objects. @@ -170,6 +189,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -183,39 +203,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListManifests", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->manifests->list(\n page: 1,\n results: 5,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifestPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.ListAsync(\n page: 1,\n results: 5,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListManifestsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListManifestsResponse res = sdk.manifests().list()\n .page(1L)\n .results(5L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.manifestPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ManifestPaginatedList] - ) + return unmarshal_json_response(components.ManifestPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -227,7 +270,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Manifest]: + ) -> components.Manifest: r"""Create a new manifest Creates a new manifest object. @@ -271,6 +314,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ManifestCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -284,37 +328,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateManifest", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/ \\\n-H "Authorization: ShippoToken " \\\n-d carrier_account="b741b99f95e841639b54272834bc478c", \\\n-d shipment_date="2014-05-16T23:59:59Z" \\\n-d address_from="d799c2679e644279b59fe661ac8fa488" \\\n-d transactions=["64bba01845ef40d29374032599f22588", "c169aa586a844cc49da00d0272b590e1"] \\\n-d async=false', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.create(request=components.ManifestCreateRequest(\n carrier_account='adcfdddf8ec64b84ad22772bce3ea37a',\n shipment_date='2014-05-16T23:59:59Z',\n transactions=[\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.create({\n carrierAccount: "adcfdddf8ec64b84ad22772bce3ea37a",\n shipmentDate: "2014-05-16T23:59:59Z",\n transactions: [\n "adcfdddf8ec64b84ad22772bce3ea37a",\n ],\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$manifestCreateRequest = new Components\\ManifestCreateRequest(\n carrierAccount: 'adcfdddf8ec64b84ad22772bce3ea37a',\n shipmentDate: '2014-05-16T23:59:59Z',\n transactions: [\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n);\n\n$response = $sdk->manifests->create(\n manifestCreateRequest: $manifestCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifest !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.CreateAsync(\n manifestCreateRequest: new ManifestCreateRequest() {\n CarrierAccount = "adcfdddf8ec64b84ad22772bce3ea37a",\n ShipmentDate = "2014-05-16T23:59:59Z",\n Transactions = new List() {\n "adcfdddf8ec64b84ad22772bce3ea37a",\n },\n AddressFrom = ManifestCreateRequestAddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ManifestCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ManifestCreateRequestAddressFrom;\nimport com.goshippo.shippo_sdk.models.operations.CreateManifestResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateManifestResponse res = sdk.manifests().create()\n .shippoApiVersion("2018-02-08")\n .manifestCreateRequest(ManifestCreateRequest.builder()\n .carrierAccount("adcfdddf8ec64b84ad22772bce3ea37a")\n .shipmentDate("2014-05-16T23:59:59Z")\n .addressFrom(ManifestCreateRequestAddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .transactions(List.of(\n "adcfdddf8ec64b84ad22772bce3ea37a"))\n .build())\n .call();\n\n if (res.manifest().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Manifest]) + return unmarshal_json_response(components.Manifest, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -326,7 +395,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Manifest]: + ) -> components.Manifest: r"""Create a new manifest Creates a new manifest object. @@ -370,6 +439,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ManifestCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -383,37 +453,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateManifest", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/ \\\n-H "Authorization: ShippoToken " \\\n-d carrier_account="b741b99f95e841639b54272834bc478c", \\\n-d shipment_date="2014-05-16T23:59:59Z" \\\n-d address_from="d799c2679e644279b59fe661ac8fa488" \\\n-d transactions=["64bba01845ef40d29374032599f22588", "c169aa586a844cc49da00d0272b590e1"] \\\n-d async=false', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.create(request=components.ManifestCreateRequest(\n carrier_account='adcfdddf8ec64b84ad22772bce3ea37a',\n shipment_date='2014-05-16T23:59:59Z',\n transactions=[\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.create({\n carrierAccount: "adcfdddf8ec64b84ad22772bce3ea37a",\n shipmentDate: "2014-05-16T23:59:59Z",\n transactions: [\n "adcfdddf8ec64b84ad22772bce3ea37a",\n ],\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$manifestCreateRequest = new Components\\ManifestCreateRequest(\n carrierAccount: 'adcfdddf8ec64b84ad22772bce3ea37a',\n shipmentDate: '2014-05-16T23:59:59Z',\n transactions: [\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n);\n\n$response = $sdk->manifests->create(\n manifestCreateRequest: $manifestCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifest !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.CreateAsync(\n manifestCreateRequest: new ManifestCreateRequest() {\n CarrierAccount = "adcfdddf8ec64b84ad22772bce3ea37a",\n ShipmentDate = "2014-05-16T23:59:59Z",\n Transactions = new List() {\n "adcfdddf8ec64b84ad22772bce3ea37a",\n },\n AddressFrom = ManifestCreateRequestAddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ManifestCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ManifestCreateRequestAddressFrom;\nimport com.goshippo.shippo_sdk.models.operations.CreateManifestResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateManifestResponse res = sdk.manifests().create()\n .shippoApiVersion("2018-02-08")\n .manifestCreateRequest(ManifestCreateRequest.builder()\n .carrierAccount("adcfdddf8ec64b84ad22772bce3ea37a")\n .shipmentDate("2014-05-16T23:59:59Z")\n .addressFrom(ManifestCreateRequestAddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .transactions(List.of(\n "adcfdddf8ec64b84ad22772bce3ea37a"))\n .build())\n .call();\n\n if (res.manifest().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Manifest]) + return unmarshal_json_response(components.Manifest, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -423,7 +518,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Manifest]: + ) -> components.Manifest: r"""Retrieve a manifest Returns an existing manifest using an object ID. @@ -464,6 +559,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -477,37 +573,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetManifest", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/0fadebf6f60c4aca95fa01bcc59c79ae \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.get(manifest_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->manifests->get(\n manifestId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifest !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.GetAsync(\n manifestId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetManifestResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetManifestResponse res = sdk.manifests().get()\n .manifestId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.manifest().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Manifest]) + return unmarshal_json_response(components.Manifest, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -517,7 +638,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Manifest]: + ) -> components.Manifest: r"""Retrieve a manifest Returns an existing manifest using an object ID. @@ -558,6 +679,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -571,34 +693,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetManifest", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Manifests"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/manifests/0fadebf6f60c4aca95fa01bcc59c79ae \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.manifests.get(manifest_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.manifests.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->manifests->get(\n manifestId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->manifest !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Manifests.GetAsync(\n manifestId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetManifestResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetManifestResponse res = sdk.manifests().get()\n .manifestId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.manifest().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Manifest]) + return unmarshal_json_response(components.Manifest, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/models/__init__.py b/src/shippo/models/__init__.py index cc53976c..1a349122 100644 --- a/src/shippo/models/__init__.py +++ b/src/shippo/models/__init__.py @@ -1,4 +1,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +from typing import Any, TYPE_CHECKING + +from shippo.utils.dynamic_imports import lazy_getattr, lazy_dir + +if TYPE_CHECKING: + from . import components, errors, internal, operations + # package + +_sub_packages = ["components", "errors", "internal", "operations"] + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports={}, sub_packages=_sub_packages + ) + + +def __dir__(): + return lazy_dir(dynamic_imports={}, sub_packages=_sub_packages) diff --git a/src/shippo/models/components/__init__.py b/src/shippo/models/components/__init__.py index ee1d5fed..019d599e 100644 --- a/src/shippo/models/components/__init__.py +++ b/src/shippo/models/components/__init__.py @@ -1,508 +1,576 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .address import ( - Address, - AddressTypedDict, - Latitude, - LatitudeTypedDict, - Longitude, - LongitudeTypedDict, -) -from .addresscompletecreaterequest import ( - AddressCompleteCreateRequest, - AddressCompleteCreateRequestTypedDict, -) -from .addresscreaterequest import AddressCreateRequest, AddressCreateRequestTypedDict -from .addressimporter import AddressImporter, AddressImporterTypedDict -from .addresspaginatedlist import AddressPaginatedList, AddressPaginatedListTypedDict -from .addressvalidationresults import ( - AddressValidationResults, - AddressValidationResultsTypedDict, -) -from .addressvalidationresultsmessage import ( - AddressValidationResultsMessage, - AddressValidationResultsMessageTypedDict, -) -from .addressvalidationresultsmessagecodeenum import ( - AddressValidationResultsMessageCodeEnum, -) -from .addressvalidationresultsmessagesourceenum import ( - AddressValidationResultsMessageSourceEnum, -) -from .alcohol import Alcohol, AlcoholTypedDict, RecipientType -from .batch import ( - Batch, - BatchStatus, - BatchTypedDict, - ObjectResults, - ObjectResultsTypedDict, -) -from .batchcreaterequest import BatchCreateRequest, BatchCreateRequestTypedDict -from .batchshipment import BatchShipment, BatchShipmentStatus, BatchShipmentTypedDict -from .batchshipmentcreaterequest import ( - BatchShipmentCreateRequest, - BatchShipmentCreateRequestTypedDict, -) -from .batchshipmentpaginatedlist import ( - BatchShipmentPaginatedList, - BatchShipmentPaginatedListTypedDict, -) -from .billing import Billing, BillingType, BillingTypedDict -from .carrieraccount import ( - CarrierAccount, - CarrierAccountParameters, - CarrierAccountParametersTypedDict, - CarrierAccountTypedDict, -) -from .carrieraccountbase import ( - CarrierAccountBase, - CarrierAccountBaseParameters, - CarrierAccountBaseParametersTypedDict, - CarrierAccountBaseTypedDict, -) -from .carrieraccountcanadapostcreateparameters import ( - CarrierAccountCanadaPostCreateParameters, - CarrierAccountCanadaPostCreateParametersTypedDict, -) -from .carrieraccountcanadapostcreaterequest import ( - CarrierAccountCanadaPostCreateRequest, - CarrierAccountCanadaPostCreateRequestTypedDict, -) -from .carrieraccountchronopostcreaterequest import ( - CarrierAccountChronopostCreateRequest, - CarrierAccountChronopostCreateRequestParameters, - CarrierAccountChronopostCreateRequestParametersTypedDict, - CarrierAccountChronopostCreateRequestTypedDict, -) -from .carrieraccountcolissimocreaterequest import ( - CarrierAccountColissimoCreateRequest, - CarrierAccountColissimoCreateRequestParameters, - CarrierAccountColissimoCreateRequestParametersTypedDict, - CarrierAccountColissimoCreateRequestTypedDict, -) -from .carrieraccountcorreoscreaterequest import ( - CarrierAccountCorreosCreateRequest, - CarrierAccountCorreosCreateRequestParameters, - CarrierAccountCorreosCreateRequestParametersTypedDict, - CarrierAccountCorreosCreateRequestTypedDict, -) -from .carrieraccountdeutschepostcreaterequest import ( - CarrierAccountDeutschePostCreateRequest, - CarrierAccountDeutschePostCreateRequestParameters, - CarrierAccountDeutschePostCreateRequestParametersTypedDict, - CarrierAccountDeutschePostCreateRequestTypedDict, -) -from .carrieraccountdhlexpresscreaterequest import ( - CarrierAccountDHLExpressCreateRequest, - CarrierAccountDHLExpressCreateRequestTypedDict, -) -from .carrieraccountdhlexpresscreaterequestparameters import ( - CarrierAccountDHLExpressCreateRequestParameters, - CarrierAccountDHLExpressCreateRequestParametersTypedDict, -) -from .carrieraccountdpddecreaterequest import ( - CarrierAccountDpdDeCreateRequest, - CarrierAccountDpdDeCreateRequestParameters, - CarrierAccountDpdDeCreateRequestParametersTypedDict, - CarrierAccountDpdDeCreateRequestTypedDict, -) -from .carrieraccountdpdukcreaterequest import ( - CarrierAccountDPDUKCreateRequest, - CarrierAccountDPDUKCreateRequestParameters, - CarrierAccountDPDUKCreateRequestParametersTypedDict, - CarrierAccountDPDUKCreateRequestTypedDict, -) -from .carrieraccountfedexcreaterequest import ( - CarrierAccountFedExCreateRequest, - CarrierAccountFedExCreateRequestParameters, - CarrierAccountFedExCreateRequestParametersTypedDict, - CarrierAccountFedExCreateRequestTypedDict, -) -from .carrieraccounthermesukcreaterequest import ( - CarrierAccountHermesUKCreateRequest, - CarrierAccountHermesUKCreateRequestParameters, - CarrierAccountHermesUKCreateRequestParametersTypedDict, - CarrierAccountHermesUKCreateRequestTypedDict, -) -from .carrieraccountmondialrelaycreaterequest import ( - CarrierAccountMondialRelayCreateRequest, - CarrierAccountMondialRelayCreateRequestParameters, - CarrierAccountMondialRelayCreateRequestParametersTypedDict, - CarrierAccountMondialRelayCreateRequestTypedDict, -) -from .carrieraccountpaginatedlist import ( - CarrierAccountPaginatedList, - CarrierAccountPaginatedListTypedDict, -) -from .carrieraccountposteitalianecreaterequest import ( - CarrierAccountPosteItalianeCreateRequest, - CarrierAccountPosteItalianeCreateRequestParameters, - CarrierAccountPosteItalianeCreateRequestParametersTypedDict, - CarrierAccountPosteItalianeCreateRequestTypedDict, -) -from .carrieraccountregistrationstatus import ( - CarrierAccountRegistrationStatus, - CarrierAccountRegistrationStatusTypedDict, -) -from .carrieraccountsendlecreaterequest import ( - CarrierAccountSendleCreateRequest, - CarrierAccountSendleCreateRequestParameters, - CarrierAccountSendleCreateRequestParametersTypedDict, - CarrierAccountSendleCreateRequestTypedDict, -) -from .carrieraccountservicelevel import ( - CarrierAccountServiceLevel, - CarrierAccountServiceLevelTypedDict, -) -from .carrieraccountupscreaterequest import ( - CarrierAccountUPSCreateRequest, - CarrierAccountUPSCreateRequestTypedDict, -) -from .carrieraccountupscreaterequestparameters import ( - CarrierAccountUPSCreateRequestParameters, - CarrierAccountUPSCreateRequestParametersTypedDict, -) -from .carrieraccountuspscreaterequest import ( - CarrierAccountUSPSCreateRequest, - CarrierAccountUSPSCreateRequestParameters, - CarrierAccountUSPSCreateRequestParametersTypedDict, - CarrierAccountUSPSCreateRequestTypedDict, -) -from .carrieraccountwithextrainfo import ( - Authentication, - AuthenticationTypedDict, - CarrierAccountWithExtraInfo, - CarrierAccountWithExtraInfoParameters, - CarrierAccountWithExtraInfoParametersTypedDict, - CarrierAccountWithExtraInfoStatus, - CarrierAccountWithExtraInfoType, - CarrierAccountWithExtraInfoTypedDict, - ObjectInfo, - ObjectInfoTypedDict, -) -from .carrierparceltemplate import CarrierParcelTemplate, CarrierParcelTemplateTypedDict -from .carrierparceltemplatelist import ( - CarrierParcelTemplateList, - CarrierParcelTemplateListTypedDict, -) -from .carriersenum import CarriersEnum -from .cod import Cod, CodTypedDict, PaymentMethod -from .connectexistingownaccountrequest import ( - ConnectExistingOwnAccountRequest, - ConnectExistingOwnAccountRequestParameters, - ConnectExistingOwnAccountRequestParametersTypedDict, - ConnectExistingOwnAccountRequestTypedDict, -) -from .corerate import CoreRate, CoreRateTypedDict -from .customerreference import CustomerReference, CustomerReferenceTypedDict -from .customsdeclaration import ( - CustomsDeclaration, - CustomsDeclarationAddress, - CustomsDeclarationAddressTypedDict, - CustomsDeclarationDutiesPayor, - CustomsDeclarationDutiesPayorTypedDict, - CustomsDeclarationType, - CustomsDeclarationTypedDict, -) -from .customsdeclarationb13afilingoptionenum import ( - CustomsDeclarationB13AFilingOptionEnum, -) -from .customsdeclarationcontentstypeenum import CustomsDeclarationContentsTypeEnum -from .customsdeclarationcreaterequest import ( - CustomsDeclarationCreateRequest, - CustomsDeclarationCreateRequestAddress, - CustomsDeclarationCreateRequestAddressTypedDict, - CustomsDeclarationCreateRequestDutiesPayor, - CustomsDeclarationCreateRequestDutiesPayorTypedDict, - CustomsDeclarationCreateRequestType, - CustomsDeclarationCreateRequestTypedDict, -) -from .customsdeclarationeelpfcenum import CustomsDeclarationEelPfcEnum -from .customsdeclarationincotermenum import CustomsDeclarationIncotermEnum -from .customsdeclarationnondeliveryoptionenum import ( - CustomsDeclarationNonDeliveryOptionEnum, -) -from .customsdeclarationpaginatedlist import ( - CustomsDeclarationPaginatedList, - CustomsDeclarationPaginatedListTypedDict, -) -from .customsexporteridentification import ( - CustomsExporterIdentification, - CustomsExporterIdentificationTypedDict, -) -from .customsinvoicedcharges import ( - CustomsInvoicedCharges, - CustomsInvoicedChargesTypedDict, -) -from .customsitem import CustomsItem, CustomsItemTypedDict -from .customsitemcreaterequest import ( - CustomsItemCreateRequest, - CustomsItemCreateRequestTypedDict, -) -from .customsitempaginatedlist import ( - CustomsItemPaginatedList, - CustomsItemPaginatedListTypedDict, -) -from .customstaxidentification import ( - CustomsTaxIdentification, - CustomsTaxIdentificationType, - CustomsTaxIdentificationTypedDict, -) -from .dangerousgoodsbiologicalmaterial import ( - DangerousGoodsBiologicalMaterial, - DangerousGoodsBiologicalMaterialTypedDict, -) -from .dangerousgoodslithiumbatteries import ( - DangerousGoodsLithiumBatteries, - DangerousGoodsLithiumBatteriesTypedDict, -) -from .dangerousgoodsobject import DangerousGoodsObject, DangerousGoodsObjectTypedDict -from .defaultparceltemplate import DefaultParcelTemplate, DefaultParcelTemplateTypedDict -from .defaultparceltemplateupdaterequest import ( - DefaultParcelTemplateUpdateRequest, - DefaultParcelTemplateUpdateRequestTypedDict, -) -from .departmentnumber import DepartmentNumber, DepartmentNumberTypedDict -from .distanceunitenum import DistanceUnitEnum -from .dryice import DryIce, DryIceTypedDict -from .fedexconnectexistingownaccountparameters import ( - FedExConnectExistingOwnAccountParameters, - FedExConnectExistingOwnAccountParametersTypedDict, -) -from .instanttransactioncreaterequest import ( - InstantTransactionCreateRequest, - InstantTransactionCreateRequestTypedDict, - LabelFileType, -) -from .insurance import Insurance, InsuranceProvider, InsuranceTypedDict -from .invoicenumber import InvoiceNumber, InvoiceNumberTypedDict -from .labelfiletypeenum import LabelFileTypeEnum -from .lineitem import LineItem, LineItemTypedDict -from .lineitembase import LineItemBase, LineItemBaseTypedDict -from .liverate import LiveRate, LiveRateTypedDict -from .liveratecreaterequest import ( - LiveRateCreateRequest, - LiveRateCreateRequestAddressFrom, - LiveRateCreateRequestAddressFromTypedDict, - LiveRateCreateRequestAddressTo, - LiveRateCreateRequestAddressToTypedDict, - LiveRateCreateRequestParcel, - LiveRateCreateRequestParcelTypedDict, - LiveRateCreateRequestTypedDict, -) -from .liveratepaginatedlist import LiveRatePaginatedList, LiveRatePaginatedListTypedDict -from .location import BuildingLocationType, BuildingType, Location, LocationTypedDict -from .manifest import Manifest, ManifestStatus, ManifestTypedDict -from .manifestcreaterequest import ( - ManifestCreateRequest, - ManifestCreateRequestAddressFrom, - ManifestCreateRequestAddressFromTypedDict, - ManifestCreateRequestTypedDict, -) -from .manifestpaginatedlist import ManifestPaginatedList, ManifestPaginatedListTypedDict -from .objectstateenum import ObjectStateEnum -from .order import Order, OrderTransaction, OrderTransactionTypedDict, OrderTypedDict -from .ordercreaterequest import OrderCreateRequest, OrderCreateRequestTypedDict -from .orderpaginatedlist import OrderPaginatedList, OrderPaginatedListTypedDict -from .ordershopappenum import OrderShopAppEnum -from .orderstatusenum import OrderStatusEnum -from .parcel import ObjectState, Parcel, ParcelTypedDict -from .parcelcreatefromtemplaterequest import ( - ParcelCreateFromTemplateRequest, - ParcelCreateFromTemplateRequestTypedDict, -) -from .parcelcreaterequest import ParcelCreateRequest, ParcelCreateRequestTypedDict -from .parcelextra import ParcelExtra, ParcelExtraTypedDict -from .parcelinsurance import ( - ParcelInsurance, - ParcelInsuranceProvider, - ParcelInsuranceTypedDict, -) -from .parcelpaginatedlist import ParcelPaginatedList, ParcelPaginatedListTypedDict -from .parceltemplatearamexaustraliaenum import ParcelTemplateAramexAustraliaEnum -from .parceltemplatedhlecommerceenum import ParcelTemplateDHLeCommerceEnum -from .parceltemplatedpdukenum import ParcelTemplateDPDUKEnum -from .parceltemplateenumset import ParcelTemplateEnumSet, ParcelTemplateEnumSetTypedDict -from .parceltemplatefedexenum import ParcelTemplateFedExEnum -from .parceltemplateupsenum import ParcelTemplateUPSEnum -from .parceltemplateuspsenum import ParcelTemplateUSPSEnum -from .pickup import Pickup, PickupStatus, PickupTypedDict -from .pickupbase import PickupBase, PickupBaseTypedDict -from .ponumber import PoNumber, PoNumberTypedDict -from .rate import Attribute, Rate, RateTypedDict -from .ratepaginatedlist import RatePaginatedList, RatePaginatedListTypedDict -from .refund import Refund, RefundStatus, RefundTypedDict -from .refundpaginatedlist import RefundPaginatedList, RefundPaginatedListTypedDict -from .refundrequestbody import RefundRequestBody, RefundRequestBodyTypedDict -from .responsemessage import ResponseMessage, ResponseMessageTypedDict -from .rmanumber import RmaNumber, RmaNumberTypedDict -from .security import Security, SecurityTypedDict -from .servicegroup import ServiceGroup, ServiceGroupTypedDict -from .servicegroupaccountandservicelevel import ( - ServiceGroupAccountAndServiceLevel, - ServiceGroupAccountAndServiceLevelTypedDict, -) -from .servicegroupcreaterequest import ( - ServiceGroupCreateRequest, - ServiceGroupCreateRequestTypedDict, -) -from .servicegrouptypeenum import ServiceGroupTypeEnum -from .servicegroupupdaterequest import ( - ServiceGroupUpdateRequest, - ServiceGroupUpdateRequestTypedDict, -) -from .servicelevel import ServiceLevel, ServiceLevelTypedDict -from .servicelevelairterraenum import ServiceLevelAirterraEnum -from .servicelevelapcpostalenum import ServiceLevelAPCPostalEnum -from .servicelevelapgenum import ServiceLevelAPGEnum -from .servicelevelaramexaustraliaenum import ServiceLevelAramexAustraliaEnum -from .servicelevelasendiaenum import ServiceLevelAsendiaEnum -from .servicelevelaustraliapostenum import ServiceLevelAustraliaPostEnum -from .servicelevelbettertrucksenum import ServiceLevelBetterTrucksEnum -from .servicelevelcanadapostenum import ServiceLevelCanadaPostEnum -from .servicelevelcdlenum import ServiceLevelCDLEnum -from .servicelevelchronopostenum import ServiceLevelChronopostEnum -from .servicelevelcolissimoenum import ServiceLevelColissimoEnum -from .servicelevelcorreosespanaenum import ServiceLevelCorreosEspanaEnum -from .serviceleveldeutschepostenum import ServiceLevelDeutschePostEnum -from .serviceleveldhlecommerceenum import ServiceLevelDHLeCommerceEnum -from .serviceleveldhlexpressenum import ServiceLevelDHLExpressEnum -from .serviceleveldhlgermanyenum import ServiceLevelDHLGermanyEnum -from .serviceleveldpddeenum import ServiceLevelDPDDEEnum -from .serviceleveldpdukenum import ServiceLevelDPDUKEnum -from .servicelevelenumset import ServiceLevelEnumSet, ServiceLevelEnumSetTypedDict -from .servicelevelepostglobalenum import ServiceLevelePostGlobalEnum -from .servicelevelevriukenum import ServiceLevelEvriUKEnum -from .servicelevelfedexenum import ServiceLevelFedExEnum -from .servicelevelglobegisticsenum import ServiceLevelGlobegisticsEnum -from .servicelevelglsusenum import ServiceLevelGLSUSEnum -from .serviceleveljitsuenum import ServiceLevelJitsuEnum -from .servicelevellasershipenum import ServiceLevelLasershipEnum -from .servicelevellsoenum import ServiceLevelLSOEnum -from .servicelevelmondialrelayenum import ServiceLevelMondialRelayEnum -from .servicelevelontracenum import ServiceLevelOnTracEnum -from .servicelevelparcelforceenum import ServiceLevelParcelforceEnum -from .servicelevelpostitalianeenum import ServiceLevelPostItalianeEnum -from .servicelevelpurolatorenum import ServiceLevelPurolatorEnum -from .servicelevelroyalmailenum import ServiceLevelRoyalMailEnum -from .servicelevelsendleenum import ServiceLevelSendleEnum -from .servicelevelswyftenum import ServiceLevelSwyftEnum -from .serviceleveludsenum import ServiceLevelUDSEnum -from .servicelevelupsenum import ServiceLevelUPSEnum -from .serviceleveluspsenum import ServiceLevelUSPSEnum -from .servicelevelvehoenum import ServiceLevelVehoEnum -from .servicelevelwithparent import ( - ServiceLevelWithParent, - ServiceLevelWithParentTypedDict, -) -from .shipment import Shipment, ShipmentStatus, ShipmentTypedDict -from .shipmentcreaterequest import ( - AddressReturn, - AddressReturnTypedDict, - CustomsDeclarationUnion, - CustomsDeclarationUnionTypedDict, - ShipmentCreateRequest, - ShipmentCreateRequestAddressFrom, - ShipmentCreateRequestAddressFromTypedDict, - ShipmentCreateRequestAddressTo, - ShipmentCreateRequestAddressToTypedDict, - ShipmentCreateRequestParcel, - ShipmentCreateRequestParcelTypedDict, - ShipmentCreateRequestTypedDict, -) -from .shipmentextra import ( - AncillaryEndorsement, - DangerousGoodsCode, - PreferredDeliveryTimeframe, - ReturnServiceType, - ReturnServiceTypeTypedDict, - ShipmentExtra, - ShipmentExtraTypedDict, - SignatureConfirmation, -) -from .shipmentextralasershipattributesenum import ShipmentExtraLasershipAttributesEnum -from .shipmentextrareturnservicetypelasershipenum import ( - ShipmentExtraReturnServiceTypeLasershipEnum, -) -from .shipmentextrareturnservicetypeupsenum import ShipmentExtraReturnServiceTypeUPSEnum -from .shipmentpaginatedlist import ShipmentPaginatedList, ShipmentPaginatedListTypedDict -from .shippoaccount import ShippoAccount, ShippoAccountTypedDict -from .shippoaccountpaginatedlist import ( - ShippoAccountPaginatedList, - ShippoAccountPaginatedListTypedDict, -) -from .shippoaccountupdaterequest import ( - ShippoAccountUpdateRequest, - ShippoAccountUpdateRequestTypedDict, -) -from .track import Track, TrackTypedDict -from .trackingstatus import TrackingStatus, TrackingStatusTypedDict -from .trackingstatusenum import TrackingStatusEnum -from .trackingstatuslocationbase import ( - TrackingStatusLocationBase, - TrackingStatusLocationBaseTypedDict, -) -from .trackingstatussubstatus import ( - TrackingStatusSubstatus, - TrackingStatusSubstatusTypedDict, -) -from .tracksrequest import TracksRequest, TracksRequestTypedDict -from .transaction import ( - CreatedBy, - CreatedByTypedDict, - RateUnion, - RateUnionTypedDict, - Transaction, - TransactionTypedDict, -) -from .transactioncreaterequest import ( - TransactionCreateRequest, - TransactionCreateRequestTypedDict, -) -from .transactionpaginatedlist import ( - TransactionPaginatedList, - TransactionPaginatedListTypedDict, -) -from .transactionstatusenum import TransactionStatusEnum -from .upsconnectexistingownaccountparameters import ( - UPSConnectExistingOwnAccountParameters, - UPSConnectExistingOwnAccountParametersTypedDict, -) -from .upsreferencefields import UPSReferenceFields, UPSReferenceFieldsTypedDict -from .userparceltemplate import UserParcelTemplate, UserParcelTemplateTypedDict -from .userparceltemplatecreaterequest import ( - UserParcelTemplateCreateRequest, - UserParcelTemplateCreateRequestTypedDict, -) -from .userparceltemplatelist import ( - UserParcelTemplateList, - UserParcelTemplateListTypedDict, -) -from .userparceltemplateupdaterequest import ( - UserParcelTemplateUpdateRequest, - UserParcelTemplateUpdateRequestTypedDict, -) -from .userparceltemplatewithcarriertemplatecreaterequest import ( - UserParcelTemplateWithCarrierTemplateCreateRequest, - UserParcelTemplateWithCarrierTemplateCreateRequestTypedDict, -) -from .userparceltemplatewithoutcarriertemplatecreaterequest import ( - UserParcelTemplateWithoutCarrierTemplateCreateRequest, - UserParcelTemplateWithoutCarrierTemplateCreateRequestTypedDict, -) -from .webhook import Webhook, WebhookTypedDict -from .webhookeventtypeenum import WebhookEventTypeEnum -from .webhookpaginatedlist import WebhookPaginatedList, WebhookPaginatedListTypedDict -from .webhookpayload import WebhookPayload, WebhookPayloadTypedDict -from .webhookpayloadbatch import WebhookPayloadBatch, WebhookPayloadBatchTypedDict -from .webhookpayloadtrack import WebhookPayloadTrack, WebhookPayloadTrackTypedDict -from .webhookpayloadtransaction import ( - WebhookPayloadTransaction, - WebhookPayloadTransactionTypedDict, -) -from .webhookupdaterequest import WebhookUpdateRequest, WebhookUpdateRequestTypedDict -from .weightunitenum import WeightUnitEnum +from typing import Any, TYPE_CHECKING +from shippo.utils.dynamic_imports import lazy_getattr, lazy_dir + +if TYPE_CHECKING: + from .address import ( + Address, + AddressTypedDict, + Latitude, + LatitudeTypedDict, + Longitude, + LongitudeTypedDict, + ) + from .addresscompletecreaterequest import ( + AddressCompleteCreateRequest, + AddressCompleteCreateRequestTypedDict, + ) + from .addresscreaterequest import ( + AddressCreateRequest, + AddressCreateRequestTypedDict, + ) + from .addressimporter import AddressImporter, AddressImporterTypedDict + from .addresspaginatedlist import ( + AddressPaginatedList, + AddressPaginatedListTypedDict, + ) + from .addressvalidationresults import ( + AddressValidationResults, + AddressValidationResultsTypedDict, + ) + from .addressvalidationresultsmessage import ( + AddressValidationResultsMessage, + AddressValidationResultsMessageTypedDict, + ) + from .addressvalidationresultsmessagecodeenum import ( + AddressValidationResultsMessageCodeEnum, + ) + from .addressvalidationresultsmessagesourceenum import ( + AddressValidationResultsMessageSourceEnum, + ) + from .alcohol import Alcohol, AlcoholTypedDict, RecipientType + from .batch import ( + Batch, + BatchStatus, + BatchTypedDict, + ObjectResults, + ObjectResultsTypedDict, + ) + from .batchcreaterequest import BatchCreateRequest, BatchCreateRequestTypedDict + from .batchshipment import ( + BatchShipment, + BatchShipmentStatus, + BatchShipmentTypedDict, + ) + from .batchshipmentcreaterequest import ( + BatchShipmentCreateRequest, + BatchShipmentCreateRequestTypedDict, + ) + from .batchshipmentpaginatedlist import ( + BatchShipmentPaginatedList, + BatchShipmentPaginatedListTypedDict, + ) + from .billing import Billing, BillingType, BillingTypedDict + from .carrieraccount import ( + CarrierAccount, + CarrierAccountParameters, + CarrierAccountParametersTypedDict, + CarrierAccountTypedDict, + ) + from .carrieraccountbase import ( + CarrierAccountBase, + CarrierAccountBaseParameters, + CarrierAccountBaseParametersTypedDict, + CarrierAccountBaseTypedDict, + ) + from .carrieraccountcanadapostcreateparameters import ( + CarrierAccountCanadaPostCreateParameters, + CarrierAccountCanadaPostCreateParametersTypedDict, + ) + from .carrieraccountcanadapostcreaterequest import ( + CarrierAccountCanadaPostCreateRequest, + CarrierAccountCanadaPostCreateRequestTypedDict, + ) + from .carrieraccountchronopostcreaterequest import ( + CarrierAccountChronopostCreateRequest, + CarrierAccountChronopostCreateRequestParameters, + CarrierAccountChronopostCreateRequestParametersTypedDict, + CarrierAccountChronopostCreateRequestTypedDict, + ) + from .carrieraccountcolissimocreaterequest import ( + CarrierAccountColissimoCreateRequest, + CarrierAccountColissimoCreateRequestParameters, + CarrierAccountColissimoCreateRequestParametersTypedDict, + CarrierAccountColissimoCreateRequestTypedDict, + ) + from .carrieraccountcorreoscreaterequest import ( + CarrierAccountCorreosCreateRequest, + CarrierAccountCorreosCreateRequestParameters, + CarrierAccountCorreosCreateRequestParametersTypedDict, + CarrierAccountCorreosCreateRequestTypedDict, + ) + from .carrieraccountdeutschepostcreaterequest import ( + CarrierAccountDeutschePostCreateRequest, + CarrierAccountDeutschePostCreateRequestParameters, + CarrierAccountDeutschePostCreateRequestParametersTypedDict, + CarrierAccountDeutschePostCreateRequestTypedDict, + ) + from .carrieraccountdhlexpresscreaterequest import ( + CarrierAccountDHLExpressCreateRequest, + CarrierAccountDHLExpressCreateRequestTypedDict, + ) + from .carrieraccountdhlexpresscreaterequestparameters import ( + CarrierAccountDHLExpressCreateRequestParameters, + CarrierAccountDHLExpressCreateRequestParametersTypedDict, + ) + from .carrieraccountdpddecreaterequest import ( + CarrierAccountDpdDeCreateRequest, + CarrierAccountDpdDeCreateRequestParameters, + CarrierAccountDpdDeCreateRequestParametersTypedDict, + CarrierAccountDpdDeCreateRequestTypedDict, + ) + from .carrieraccountdpdukcreaterequest import ( + CarrierAccountDPDUKCreateRequest, + CarrierAccountDPDUKCreateRequestParameters, + CarrierAccountDPDUKCreateRequestParametersTypedDict, + CarrierAccountDPDUKCreateRequestTypedDict, + ) + from .carrieraccountfedexcreaterequest import ( + CarrierAccountFedExCreateRequest, + CarrierAccountFedExCreateRequestParameters, + CarrierAccountFedExCreateRequestParametersTypedDict, + CarrierAccountFedExCreateRequestTypedDict, + ) + from .carrieraccounthermesukcreaterequest import ( + CarrierAccountHermesUKCreateRequest, + CarrierAccountHermesUKCreateRequestParameters, + CarrierAccountHermesUKCreateRequestParametersTypedDict, + CarrierAccountHermesUKCreateRequestTypedDict, + ) + from .carrieraccountmondialrelaycreaterequest import ( + CarrierAccountMondialRelayCreateRequest, + CarrierAccountMondialRelayCreateRequestParameters, + CarrierAccountMondialRelayCreateRequestParametersTypedDict, + CarrierAccountMondialRelayCreateRequestTypedDict, + ) + from .carrieraccountpaginatedlist import ( + CarrierAccountPaginatedList, + CarrierAccountPaginatedListTypedDict, + ) + from .carrieraccountposteitalianecreaterequest import ( + CarrierAccountPosteItalianeCreateRequest, + CarrierAccountPosteItalianeCreateRequestParameters, + CarrierAccountPosteItalianeCreateRequestParametersTypedDict, + CarrierAccountPosteItalianeCreateRequestTypedDict, + ) + from .carrieraccountregistrationstatus import ( + CarrierAccountRegistrationStatus, + CarrierAccountRegistrationStatusTypedDict, + ) + from .carrieraccountroyalmailcreaterequest import ( + CarrierAccountRoyalMailCreateRequest, + CarrierAccountRoyalMailCreateRequestTypedDict, + ) + from .carrieraccountroyalmailcreaterequestparameters import ( + CarrierAccountRoyalMailCreateRequestParameters, + CarrierAccountRoyalMailCreateRequestParametersTypedDict, + ) + from .carrieraccountroyalmailsfcreaterequest import ( + CarrierAccountRoyalMailSfCreateRequest, + CarrierAccountRoyalMailSfCreateRequestTypedDict, + ) + from .carrieraccountroyalmailsfcreaterequestparameters import ( + CarrierAccountRoyalMailSfCreateRequestParameters, + CarrierAccountRoyalMailSfCreateRequestParametersTypedDict, + ) + from .carrieraccountservicelevel import ( + CarrierAccountServiceLevel, + CarrierAccountServiceLevelTypedDict, + ) + from .carrieraccountupscreaterequest import ( + CarrierAccountUPSCreateRequest, + CarrierAccountUPSCreateRequestTypedDict, + ) + from .carrieraccountupscreaterequestparameters import ( + CarrierAccountUPSCreateRequestParameters, + CarrierAccountUPSCreateRequestParametersTypedDict, + ) + from .carrieraccountuspscreaterequest import ( + CarrierAccountUSPSCreateRequest, + CarrierAccountUSPSCreateRequestParameters, + CarrierAccountUSPSCreateRequestParametersTypedDict, + CarrierAccountUSPSCreateRequestTypedDict, + ) + from .carrieraccountwithextrainfo import ( + Authentication, + AuthenticationTypedDict, + CarrierAccountWithExtraInfo, + CarrierAccountWithExtraInfoParameters, + CarrierAccountWithExtraInfoParametersTypedDict, + CarrierAccountWithExtraInfoStatus, + CarrierAccountWithExtraInfoType, + CarrierAccountWithExtraInfoTypedDict, + ObjectInfo, + ObjectInfoTypedDict, + Policy, + Verification, + VerificationTypedDict, + ) + from .carrierparceltemplate import ( + CarrierParcelTemplate, + CarrierParcelTemplateTypedDict, + ) + from .carrierparceltemplatelist import ( + CarrierParcelTemplateList, + CarrierParcelTemplateListTypedDict, + ) + from .carriersenum import CarriersEnum + from .cod import Cod, CodTypedDict, PaymentMethod + from .connectexistingownaccountrequest import ( + ConnectExistingOwnAccountRequest, + ConnectExistingOwnAccountRequestParameters, + ConnectExistingOwnAccountRequestParametersTypedDict, + ConnectExistingOwnAccountRequestTypedDict, + ) + from .corerate import CoreRate, CoreRateTypedDict + from .customerreference import CustomerReference, CustomerReferenceTypedDict + from .customsdeclaration import ( + CustomsDeclaration, + CustomsDeclarationAddress, + CustomsDeclarationAddressTypedDict, + CustomsDeclarationDutiesPayor, + CustomsDeclarationDutiesPayorTypedDict, + CustomsDeclarationType, + CustomsDeclarationTypedDict, + ) + from .customsdeclarationb13afilingoptionenum import ( + CustomsDeclarationB13AFilingOptionEnum, + ) + from .customsdeclarationcontentstypeenum import CustomsDeclarationContentsTypeEnum + from .customsdeclarationcreaterequest import ( + CustomsDeclarationCreateRequest, + CustomsDeclarationCreateRequestAddress, + CustomsDeclarationCreateRequestAddressTypedDict, + CustomsDeclarationCreateRequestDutiesPayor, + CustomsDeclarationCreateRequestDutiesPayorTypedDict, + CustomsDeclarationCreateRequestType, + CustomsDeclarationCreateRequestTypedDict, + ) + from .customsdeclarationeelpfcenum import CustomsDeclarationEelPfcEnum + from .customsdeclarationincotermenum import CustomsDeclarationIncotermEnum + from .customsdeclarationnondeliveryoptionenum import ( + CustomsDeclarationNonDeliveryOptionEnum, + ) + from .customsdeclarationpaginatedlist import ( + CustomsDeclarationPaginatedList, + CustomsDeclarationPaginatedListTypedDict, + ) + from .customsexporteridentification import ( + CustomsExporterIdentification, + CustomsExporterIdentificationTypedDict, + ) + from .customsinvoicedcharges import ( + CustomsInvoicedCharges, + CustomsInvoicedChargesTypedDict, + ) + from .customsitem import CustomsItem, CustomsItemTypedDict + from .customsitemcreaterequest import ( + CustomsItemCreateRequest, + CustomsItemCreateRequestTypedDict, + ) + from .customsitempaginatedlist import ( + CustomsItemPaginatedList, + CustomsItemPaginatedListTypedDict, + ) + from .customstaxidentification import ( + CustomsTaxIdentification, + CustomsTaxIdentificationType, + CustomsTaxIdentificationTypedDict, + ) + from .dangerousgoodsbiologicalmaterial import ( + DangerousGoodsBiologicalMaterial, + DangerousGoodsBiologicalMaterialTypedDict, + ) + from .dangerousgoodslithiumbatteries import ( + DangerousGoodsLithiumBatteries, + DangerousGoodsLithiumBatteriesTypedDict, + ) + from .dangerousgoodsobject import ( + DangerousGoodsObject, + DangerousGoodsObjectTypedDict, + ) + from .defaultparceltemplate import ( + DefaultParcelTemplate, + DefaultParcelTemplateTypedDict, + ) + from .defaultparceltemplateupdaterequest import ( + DefaultParcelTemplateUpdateRequest, + DefaultParcelTemplateUpdateRequestTypedDict, + ) + from .departmentnumber import DepartmentNumber, DepartmentNumberTypedDict + from .distanceunitenum import DistanceUnitEnum + from .dryice import DryIce, DryIceTypedDict + from .fedexconnectexistingownaccountparameters import ( + FedExConnectExistingOwnAccountParameters, + FedExConnectExistingOwnAccountParametersTypedDict, + VerificationOption, + ) + from .instanttransactioncreaterequest import ( + InstantTransactionCreateRequest, + InstantTransactionCreateRequestTypedDict, + LabelFileType, + ) + from .insurance import Insurance, InsuranceProvider, InsuranceTypedDict + from .invoicenumber import InvoiceNumber, InvoiceNumberTypedDict + from .labelfiletypeenum import LabelFileTypeEnum + from .lineitem import LineItem, LineItemTypedDict + from .lineitembase import LineItemBase, LineItemBaseTypedDict + from .liverate import LiveRate, LiveRateTypedDict + from .liveratecreaterequest import ( + LiveRateCreateRequest, + LiveRateCreateRequestAddressFrom, + LiveRateCreateRequestAddressFromTypedDict, + LiveRateCreateRequestAddressTo, + LiveRateCreateRequestAddressToTypedDict, + LiveRateCreateRequestParcel, + LiveRateCreateRequestParcelTypedDict, + LiveRateCreateRequestTypedDict, + ) + from .liveratepaginatedlist import ( + LiveRatePaginatedList, + LiveRatePaginatedListTypedDict, + ) + from .location import ( + BuildingLocationType, + BuildingType, + Location, + LocationTypedDict, + ) + from .manifest import Manifest, ManifestStatus, ManifestTypedDict + from .manifestcreaterequest import ( + ManifestCreateRequest, + ManifestCreateRequestAddressFrom, + ManifestCreateRequestAddressFromTypedDict, + ManifestCreateRequestTypedDict, + ) + from .manifestpaginatedlist import ( + ManifestPaginatedList, + ManifestPaginatedListTypedDict, + ) + from .objectstateenum import ObjectStateEnum + from .order import ( + Order, + OrderTransaction, + OrderTransactionTypedDict, + OrderTypedDict, + ) + from .ordercreaterequest import OrderCreateRequest, OrderCreateRequestTypedDict + from .orderpaginatedlist import OrderPaginatedList, OrderPaginatedListTypedDict + from .ordershopappenum import OrderShopAppEnum + from .orderstatusenum import OrderStatusEnum + from .parcel import ObjectState, Parcel, ParcelTypedDict + from .parcelcreatefromtemplaterequest import ( + ParcelCreateFromTemplateRequest, + ParcelCreateFromTemplateRequestTypedDict, + ) + from .parcelcreaterequest import ParcelCreateRequest, ParcelCreateRequestTypedDict + from .parcelextra import ParcelExtra, ParcelExtraTypedDict + from .parcelinsurance import ( + ParcelInsurance, + ParcelInsuranceProvider, + ParcelInsuranceTypedDict, + ) + from .parcelpaginatedlist import ParcelPaginatedList, ParcelPaginatedListTypedDict + from .parceltemplatearamexaustraliaenum import ParcelTemplateAramexAustraliaEnum + from .parceltemplatedhlecommerceenum import ParcelTemplateDHLeCommerceEnum + from .parceltemplatedpdukenum import ParcelTemplateDPDUKEnum + from .parceltemplateenumset import ( + ParcelTemplateEnumSet, + ParcelTemplateEnumSetTypedDict, + ) + from .parceltemplatefedexenum import ParcelTemplateFedExEnum + from .parceltemplateupsenum import ParcelTemplateUPSEnum + from .parceltemplateuspsenum import ParcelTemplateUSPSEnum + from .pickup import Pickup, PickupStatus, PickupTypedDict + from .pickupbase import PickupBase, PickupBaseTypedDict + from .ponumber import PoNumber, PoNumberTypedDict + from .rate import Attribute, Rate, RateTypedDict + from .ratepaginatedlist import RatePaginatedList, RatePaginatedListTypedDict + from .refund import Refund, RefundStatus, RefundTypedDict + from .refundpaginatedlist import RefundPaginatedList, RefundPaginatedListTypedDict + from .refundrequestbody import RefundRequestBody, RefundRequestBodyTypedDict + from .responsemessage import ResponseMessage, ResponseMessageTypedDict + from .rmanumber import RmaNumber, RmaNumberTypedDict + from .security import Security, SecurityTypedDict + from .servicegroup import ServiceGroup, ServiceGroupTypedDict + from .servicegroupaccountandservicelevel import ( + ServiceGroupAccountAndServiceLevel, + ServiceGroupAccountAndServiceLevelTypedDict, + ) + from .servicegroupcreaterequest import ( + ServiceGroupCreateRequest, + ServiceGroupCreateRequestTypedDict, + ) + from .servicegrouptypeenum import ServiceGroupTypeEnum + from .servicegroupupdaterequest import ( + ServiceGroupUpdateRequest, + ServiceGroupUpdateRequestTypedDict, + ) + from .servicelevel import ServiceLevel, ServiceLevelTypedDict + from .servicelevelairterraenum import ServiceLevelAirterraEnum + from .servicelevelapcpostalenum import ServiceLevelAPCPostalEnum + from .servicelevelapgenum import ServiceLevelAPGEnum + from .servicelevelaramexaustraliaenum import ServiceLevelAramexAustraliaEnum + from .servicelevelasendiaenum import ServiceLevelAsendiaEnum + from .servicelevelaustraliapostenum import ServiceLevelAustraliaPostEnum + from .servicelevelbettertrucksenum import ServiceLevelBetterTrucksEnum + from .servicelevelcanadapostenum import ServiceLevelCanadaPostEnum + from .servicelevelchronopostenum import ServiceLevelChronopostEnum + from .servicelevelcolissimoenum import ServiceLevelColissimoEnum + from .servicelevelcorreosespanaenum import ServiceLevelCorreosEspanaEnum + from .serviceleveldeutschepostenum import ServiceLevelDeutschePostEnum + from .serviceleveldhlecommerceenum import ServiceLevelDHLeCommerceEnum + from .serviceleveldhlexpressenum import ServiceLevelDHLExpressEnum + from .serviceleveldhlgermanyenum import ServiceLevelDHLGermanyEnum + from .serviceleveldpddeenum import ServiceLevelDPDDEEnum + from .serviceleveldpdukenum import ServiceLevelDPDUKEnum + from .servicelevelenumset import ServiceLevelEnumSet, ServiceLevelEnumSetTypedDict + from .servicelevelepostglobalenum import ServiceLevelePostGlobalEnum + from .servicelevelevriukenum import ServiceLevelEvriUKEnum + from .servicelevelfedexenum import ServiceLevelFedExEnum + from .servicelevelglobegisticsenum import ServiceLevelGlobegisticsEnum + from .servicelevelglsusenum import ServiceLevelGLSUSEnum + from .serviceleveljitsuenum import ServiceLevelJitsuEnum + from .servicelevellasershipenum import ServiceLevelLasershipEnum + from .servicelevellsoenum import ServiceLevelLSOEnum + from .servicelevelmondialrelayenum import ServiceLevelMondialRelayEnum + from .servicelevelontracenum import ServiceLevelOnTracEnum + from .servicelevelparcelforceenum import ServiceLevelParcelforceEnum + from .servicelevelpostitalianeenum import ServiceLevelPostItalianeEnum + from .servicelevelpurolatorenum import ServiceLevelPurolatorEnum + from .servicelevelroyalmailenum import ServiceLevelRoyalMailEnum + from .servicelevelroyalmailsfenum import ServiceLevelRoyalMailSFEnum + from .servicelevelswyftenum import ServiceLevelSwyftEnum + from .serviceleveludsenum import ServiceLevelUDSEnum + from .servicelevelupsenum import ServiceLevelUPSEnum + from .serviceleveluspsenum import ServiceLevelUSPSEnum + from .servicelevelvehoenum import ServiceLevelVehoEnum + from .servicelevelwithparent import ( + ServiceLevelWithParent, + ServiceLevelWithParentTypedDict, + ) + from .shipment import Shipment, ShipmentStatus, ShipmentTypedDict + from .shipmentcreaterequest import ( + AddressReturn, + AddressReturnTypedDict, + CustomsDeclarationUnion, + CustomsDeclarationUnionTypedDict, + ShipmentCreateRequest, + ShipmentCreateRequestAddressFrom, + ShipmentCreateRequestAddressFromTypedDict, + ShipmentCreateRequestAddressTo, + ShipmentCreateRequestAddressToTypedDict, + ShipmentCreateRequestParcel, + ShipmentCreateRequestParcelTypedDict, + ShipmentCreateRequestTypedDict, + ) + from .shipmentextra import ( + AncillaryEndorsement, + DangerousGoodsCode, + PreferredDeliveryTimeframe, + ReturnServiceType, + ReturnServiceTypeTypedDict, + ShipmentExtra, + ShipmentExtraTypedDict, + SignatureConfirmation, + ) + from .shipmentextralasershipattributesenum import ( + ShipmentExtraLasershipAttributesEnum, + ) + from .shipmentextrareturnservicetypelasershipenum import ( + ShipmentExtraReturnServiceTypeLasershipEnum, + ) + from .shipmentextrareturnservicetypeupsenum import ( + ShipmentExtraReturnServiceTypeUPSEnum, + ) + from .shipmentpaginatedlist import ( + ShipmentPaginatedList, + ShipmentPaginatedListTypedDict, + ) + from .shippoaccount import ShippoAccount, ShippoAccountTypedDict + from .shippoaccountpaginatedlist import ( + ShippoAccountPaginatedList, + ShippoAccountPaginatedListTypedDict, + ) + from .shippoaccountupdaterequest import ( + ShippoAccountUpdateRequest, + ShippoAccountUpdateRequestTypedDict, + ) + from .track import Track, TrackTypedDict + from .trackingstatus import TrackingStatus, TrackingStatusTypedDict + from .trackingstatusenum import TrackingStatusEnum + from .trackingstatuslocationbase import ( + TrackingStatusLocationBase, + TrackingStatusLocationBaseTypedDict, + ) + from .trackingstatussubstatus import ( + TrackingStatusSubstatus, + TrackingStatusSubstatusTypedDict, + ) + from .tracksrequest import TracksRequest, TracksRequestTypedDict + from .transaction import ( + CreatedBy, + CreatedByTypedDict, + RateUnion, + RateUnionTypedDict, + Transaction, + TransactionTypedDict, + ) + from .transactioncreaterequest import ( + TransactionCreateRequest, + TransactionCreateRequestTypedDict, + ) + from .transactionpaginatedlist import ( + TransactionPaginatedList, + TransactionPaginatedListTypedDict, + ) + from .transactionstatusenum import TransactionStatusEnum + from .upsconnectexistingownaccountparameters import ( + UPSConnectExistingOwnAccountParameters, + UPSConnectExistingOwnAccountParametersTypedDict, + ) + from .upsreferencefields import UPSReferenceFields, UPSReferenceFieldsTypedDict + from .userparceltemplate import UserParcelTemplate, UserParcelTemplateTypedDict + from .userparceltemplatecreaterequest import ( + UserParcelTemplateCreateRequest, + UserParcelTemplateCreateRequestTypedDict, + ) + from .userparceltemplatelist import ( + UserParcelTemplateList, + UserParcelTemplateListTypedDict, + ) + from .userparceltemplateupdaterequest import ( + UserParcelTemplateUpdateRequest, + UserParcelTemplateUpdateRequestTypedDict, + ) + from .userparceltemplatewithcarriertemplatecreaterequest import ( + UserParcelTemplateWithCarrierTemplateCreateRequest, + UserParcelTemplateWithCarrierTemplateCreateRequestTypedDict, + ) + from .userparceltemplatewithoutcarriertemplatecreaterequest import ( + UserParcelTemplateWithoutCarrierTemplateCreateRequest, + UserParcelTemplateWithoutCarrierTemplateCreateRequestTypedDict, + ) + from .webhook import Webhook, WebhookTypedDict + from .webhookeventtypeenum import WebhookEventTypeEnum + from .webhookpaginatedlist import ( + WebhookPaginatedList, + WebhookPaginatedListTypedDict, + ) + from .webhookpayload import WebhookPayload, WebhookPayloadTypedDict + from .webhookpayloadbatch import WebhookPayloadBatch, WebhookPayloadBatchTypedDict + from .webhookpayloadtrack import WebhookPayloadTrack, WebhookPayloadTrackTypedDict + from .webhookpayloadtransaction import ( + WebhookPayloadTransaction, + WebhookPayloadTransactionTypedDict, + ) + from .webhookupdaterequest import ( + WebhookUpdateRequest, + WebhookUpdateRequestTypedDict, + ) + from .weightunitenum import WeightUnitEnum __all__ = [ "Address", @@ -605,10 +673,14 @@ "CarrierAccountPosteItalianeCreateRequestTypedDict", "CarrierAccountRegistrationStatus", "CarrierAccountRegistrationStatusTypedDict", - "CarrierAccountSendleCreateRequest", - "CarrierAccountSendleCreateRequestParameters", - "CarrierAccountSendleCreateRequestParametersTypedDict", - "CarrierAccountSendleCreateRequestTypedDict", + "CarrierAccountRoyalMailCreateRequest", + "CarrierAccountRoyalMailCreateRequestParameters", + "CarrierAccountRoyalMailCreateRequestParametersTypedDict", + "CarrierAccountRoyalMailCreateRequestTypedDict", + "CarrierAccountRoyalMailSfCreateRequest", + "CarrierAccountRoyalMailSfCreateRequestParameters", + "CarrierAccountRoyalMailSfCreateRequestParametersTypedDict", + "CarrierAccountRoyalMailSfCreateRequestTypedDict", "CarrierAccountServiceLevel", "CarrierAccountServiceLevelTypedDict", "CarrierAccountTypedDict", @@ -782,6 +854,7 @@ "PickupTypedDict", "PoNumber", "PoNumberTypedDict", + "Policy", "PreferredDeliveryTimeframe", "Rate", "RatePaginatedList", @@ -822,7 +895,6 @@ "ServiceLevelAsendiaEnum", "ServiceLevelAustraliaPostEnum", "ServiceLevelBetterTrucksEnum", - "ServiceLevelCDLEnum", "ServiceLevelCanadaPostEnum", "ServiceLevelChronopostEnum", "ServiceLevelColissimoEnum", @@ -848,7 +920,7 @@ "ServiceLevelPostItalianeEnum", "ServiceLevelPurolatorEnum", "ServiceLevelRoyalMailEnum", - "ServiceLevelSendleEnum", + "ServiceLevelRoyalMailSFEnum", "ServiceLevelSwyftEnum", "ServiceLevelTypedDict", "ServiceLevelUDSEnum", @@ -917,6 +989,9 @@ "UserParcelTemplateWithCarrierTemplateCreateRequestTypedDict", "UserParcelTemplateWithoutCarrierTemplateCreateRequest", "UserParcelTemplateWithoutCarrierTemplateCreateRequestTypedDict", + "Verification", + "VerificationOption", + "VerificationTypedDict", "Webhook", "WebhookEventTypeEnum", "WebhookPaginatedList", @@ -934,3 +1009,451 @@ "WebhookUpdateRequestTypedDict", "WeightUnitEnum", ] + +_dynamic_imports: dict[str, str] = { + "Address": ".address", + "AddressTypedDict": ".address", + "Latitude": ".address", + "LatitudeTypedDict": ".address", + "Longitude": ".address", + "LongitudeTypedDict": ".address", + "AddressCompleteCreateRequest": ".addresscompletecreaterequest", + "AddressCompleteCreateRequestTypedDict": ".addresscompletecreaterequest", + "AddressCreateRequest": ".addresscreaterequest", + "AddressCreateRequestTypedDict": ".addresscreaterequest", + "AddressImporter": ".addressimporter", + "AddressImporterTypedDict": ".addressimporter", + "AddressPaginatedList": ".addresspaginatedlist", + "AddressPaginatedListTypedDict": ".addresspaginatedlist", + "AddressValidationResults": ".addressvalidationresults", + "AddressValidationResultsTypedDict": ".addressvalidationresults", + "AddressValidationResultsMessage": ".addressvalidationresultsmessage", + "AddressValidationResultsMessageTypedDict": ".addressvalidationresultsmessage", + "AddressValidationResultsMessageCodeEnum": ".addressvalidationresultsmessagecodeenum", + "AddressValidationResultsMessageSourceEnum": ".addressvalidationresultsmessagesourceenum", + "Alcohol": ".alcohol", + "AlcoholTypedDict": ".alcohol", + "RecipientType": ".alcohol", + "Batch": ".batch", + "BatchStatus": ".batch", + "BatchTypedDict": ".batch", + "ObjectResults": ".batch", + "ObjectResultsTypedDict": ".batch", + "BatchCreateRequest": ".batchcreaterequest", + "BatchCreateRequestTypedDict": ".batchcreaterequest", + "BatchShipment": ".batchshipment", + "BatchShipmentStatus": ".batchshipment", + "BatchShipmentTypedDict": ".batchshipment", + "BatchShipmentCreateRequest": ".batchshipmentcreaterequest", + "BatchShipmentCreateRequestTypedDict": ".batchshipmentcreaterequest", + "BatchShipmentPaginatedList": ".batchshipmentpaginatedlist", + "BatchShipmentPaginatedListTypedDict": ".batchshipmentpaginatedlist", + "Billing": ".billing", + "BillingType": ".billing", + "BillingTypedDict": ".billing", + "CarrierAccount": ".carrieraccount", + "CarrierAccountParameters": ".carrieraccount", + "CarrierAccountParametersTypedDict": ".carrieraccount", + "CarrierAccountTypedDict": ".carrieraccount", + "CarrierAccountBase": ".carrieraccountbase", + "CarrierAccountBaseParameters": ".carrieraccountbase", + "CarrierAccountBaseParametersTypedDict": ".carrieraccountbase", + "CarrierAccountBaseTypedDict": ".carrieraccountbase", + "CarrierAccountCanadaPostCreateParameters": ".carrieraccountcanadapostcreateparameters", + "CarrierAccountCanadaPostCreateParametersTypedDict": ".carrieraccountcanadapostcreateparameters", + "CarrierAccountCanadaPostCreateRequest": ".carrieraccountcanadapostcreaterequest", + "CarrierAccountCanadaPostCreateRequestTypedDict": ".carrieraccountcanadapostcreaterequest", + "CarrierAccountChronopostCreateRequest": ".carrieraccountchronopostcreaterequest", + "CarrierAccountChronopostCreateRequestParameters": ".carrieraccountchronopostcreaterequest", + "CarrierAccountChronopostCreateRequestParametersTypedDict": ".carrieraccountchronopostcreaterequest", + "CarrierAccountChronopostCreateRequestTypedDict": ".carrieraccountchronopostcreaterequest", + "CarrierAccountColissimoCreateRequest": ".carrieraccountcolissimocreaterequest", + "CarrierAccountColissimoCreateRequestParameters": ".carrieraccountcolissimocreaterequest", + "CarrierAccountColissimoCreateRequestParametersTypedDict": ".carrieraccountcolissimocreaterequest", + "CarrierAccountColissimoCreateRequestTypedDict": ".carrieraccountcolissimocreaterequest", + "CarrierAccountCorreosCreateRequest": ".carrieraccountcorreoscreaterequest", + "CarrierAccountCorreosCreateRequestParameters": ".carrieraccountcorreoscreaterequest", + "CarrierAccountCorreosCreateRequestParametersTypedDict": ".carrieraccountcorreoscreaterequest", + "CarrierAccountCorreosCreateRequestTypedDict": ".carrieraccountcorreoscreaterequest", + "CarrierAccountDeutschePostCreateRequest": ".carrieraccountdeutschepostcreaterequest", + "CarrierAccountDeutschePostCreateRequestParameters": ".carrieraccountdeutschepostcreaterequest", + "CarrierAccountDeutschePostCreateRequestParametersTypedDict": ".carrieraccountdeutschepostcreaterequest", + "CarrierAccountDeutschePostCreateRequestTypedDict": ".carrieraccountdeutschepostcreaterequest", + "CarrierAccountDHLExpressCreateRequest": ".carrieraccountdhlexpresscreaterequest", + "CarrierAccountDHLExpressCreateRequestTypedDict": ".carrieraccountdhlexpresscreaterequest", + "CarrierAccountDHLExpressCreateRequestParameters": ".carrieraccountdhlexpresscreaterequestparameters", + "CarrierAccountDHLExpressCreateRequestParametersTypedDict": ".carrieraccountdhlexpresscreaterequestparameters", + "CarrierAccountDpdDeCreateRequest": ".carrieraccountdpddecreaterequest", + "CarrierAccountDpdDeCreateRequestParameters": ".carrieraccountdpddecreaterequest", + "CarrierAccountDpdDeCreateRequestParametersTypedDict": ".carrieraccountdpddecreaterequest", + "CarrierAccountDpdDeCreateRequestTypedDict": ".carrieraccountdpddecreaterequest", + "CarrierAccountDPDUKCreateRequest": ".carrieraccountdpdukcreaterequest", + "CarrierAccountDPDUKCreateRequestParameters": ".carrieraccountdpdukcreaterequest", + "CarrierAccountDPDUKCreateRequestParametersTypedDict": ".carrieraccountdpdukcreaterequest", + "CarrierAccountDPDUKCreateRequestTypedDict": ".carrieraccountdpdukcreaterequest", + "CarrierAccountFedExCreateRequest": ".carrieraccountfedexcreaterequest", + "CarrierAccountFedExCreateRequestParameters": ".carrieraccountfedexcreaterequest", + "CarrierAccountFedExCreateRequestParametersTypedDict": ".carrieraccountfedexcreaterequest", + "CarrierAccountFedExCreateRequestTypedDict": ".carrieraccountfedexcreaterequest", + "CarrierAccountHermesUKCreateRequest": ".carrieraccounthermesukcreaterequest", + "CarrierAccountHermesUKCreateRequestParameters": ".carrieraccounthermesukcreaterequest", + "CarrierAccountHermesUKCreateRequestParametersTypedDict": ".carrieraccounthermesukcreaterequest", + "CarrierAccountHermesUKCreateRequestTypedDict": ".carrieraccounthermesukcreaterequest", + "CarrierAccountMondialRelayCreateRequest": ".carrieraccountmondialrelaycreaterequest", + "CarrierAccountMondialRelayCreateRequestParameters": ".carrieraccountmondialrelaycreaterequest", + "CarrierAccountMondialRelayCreateRequestParametersTypedDict": ".carrieraccountmondialrelaycreaterequest", + "CarrierAccountMondialRelayCreateRequestTypedDict": ".carrieraccountmondialrelaycreaterequest", + "CarrierAccountPaginatedList": ".carrieraccountpaginatedlist", + "CarrierAccountPaginatedListTypedDict": ".carrieraccountpaginatedlist", + "CarrierAccountPosteItalianeCreateRequest": ".carrieraccountposteitalianecreaterequest", + "CarrierAccountPosteItalianeCreateRequestParameters": ".carrieraccountposteitalianecreaterequest", + "CarrierAccountPosteItalianeCreateRequestParametersTypedDict": ".carrieraccountposteitalianecreaterequest", + "CarrierAccountPosteItalianeCreateRequestTypedDict": ".carrieraccountposteitalianecreaterequest", + "CarrierAccountRegistrationStatus": ".carrieraccountregistrationstatus", + "CarrierAccountRegistrationStatusTypedDict": ".carrieraccountregistrationstatus", + "CarrierAccountRoyalMailCreateRequest": ".carrieraccountroyalmailcreaterequest", + "CarrierAccountRoyalMailCreateRequestTypedDict": ".carrieraccountroyalmailcreaterequest", + "CarrierAccountRoyalMailCreateRequestParameters": ".carrieraccountroyalmailcreaterequestparameters", + "CarrierAccountRoyalMailCreateRequestParametersTypedDict": ".carrieraccountroyalmailcreaterequestparameters", + "CarrierAccountRoyalMailSfCreateRequest": ".carrieraccountroyalmailsfcreaterequest", + "CarrierAccountRoyalMailSfCreateRequestTypedDict": ".carrieraccountroyalmailsfcreaterequest", + "CarrierAccountRoyalMailSfCreateRequestParameters": ".carrieraccountroyalmailsfcreaterequestparameters", + "CarrierAccountRoyalMailSfCreateRequestParametersTypedDict": ".carrieraccountroyalmailsfcreaterequestparameters", + "CarrierAccountServiceLevel": ".carrieraccountservicelevel", + "CarrierAccountServiceLevelTypedDict": ".carrieraccountservicelevel", + "CarrierAccountUPSCreateRequest": ".carrieraccountupscreaterequest", + "CarrierAccountUPSCreateRequestTypedDict": ".carrieraccountupscreaterequest", + "CarrierAccountUPSCreateRequestParameters": ".carrieraccountupscreaterequestparameters", + "CarrierAccountUPSCreateRequestParametersTypedDict": ".carrieraccountupscreaterequestparameters", + "CarrierAccountUSPSCreateRequest": ".carrieraccountuspscreaterequest", + "CarrierAccountUSPSCreateRequestParameters": ".carrieraccountuspscreaterequest", + "CarrierAccountUSPSCreateRequestParametersTypedDict": ".carrieraccountuspscreaterequest", + "CarrierAccountUSPSCreateRequestTypedDict": ".carrieraccountuspscreaterequest", + "Authentication": ".carrieraccountwithextrainfo", + "AuthenticationTypedDict": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfo": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfoParameters": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfoParametersTypedDict": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfoStatus": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfoType": ".carrieraccountwithextrainfo", + "CarrierAccountWithExtraInfoTypedDict": ".carrieraccountwithextrainfo", + "ObjectInfo": ".carrieraccountwithextrainfo", + "ObjectInfoTypedDict": ".carrieraccountwithextrainfo", + "Policy": ".carrieraccountwithextrainfo", + "Verification": ".carrieraccountwithextrainfo", + "VerificationTypedDict": ".carrieraccountwithextrainfo", + "CarrierParcelTemplate": ".carrierparceltemplate", + "CarrierParcelTemplateTypedDict": ".carrierparceltemplate", + "CarrierParcelTemplateList": ".carrierparceltemplatelist", + "CarrierParcelTemplateListTypedDict": ".carrierparceltemplatelist", + "CarriersEnum": ".carriersenum", + "Cod": ".cod", + "CodTypedDict": ".cod", + "PaymentMethod": ".cod", + "ConnectExistingOwnAccountRequest": ".connectexistingownaccountrequest", + "ConnectExistingOwnAccountRequestParameters": ".connectexistingownaccountrequest", + "ConnectExistingOwnAccountRequestParametersTypedDict": ".connectexistingownaccountrequest", + "ConnectExistingOwnAccountRequestTypedDict": ".connectexistingownaccountrequest", + "CoreRate": ".corerate", + "CoreRateTypedDict": ".corerate", + "CustomerReference": ".customerreference", + "CustomerReferenceTypedDict": ".customerreference", + "CustomsDeclaration": ".customsdeclaration", + "CustomsDeclarationAddress": ".customsdeclaration", + "CustomsDeclarationAddressTypedDict": ".customsdeclaration", + "CustomsDeclarationDutiesPayor": ".customsdeclaration", + "CustomsDeclarationDutiesPayorTypedDict": ".customsdeclaration", + "CustomsDeclarationType": ".customsdeclaration", + "CustomsDeclarationTypedDict": ".customsdeclaration", + "CustomsDeclarationB13AFilingOptionEnum": ".customsdeclarationb13afilingoptionenum", + "CustomsDeclarationContentsTypeEnum": ".customsdeclarationcontentstypeenum", + "CustomsDeclarationCreateRequest": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestAddress": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestAddressTypedDict": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestDutiesPayor": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestDutiesPayorTypedDict": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestType": ".customsdeclarationcreaterequest", + "CustomsDeclarationCreateRequestTypedDict": ".customsdeclarationcreaterequest", + "CustomsDeclarationEelPfcEnum": ".customsdeclarationeelpfcenum", + "CustomsDeclarationIncotermEnum": ".customsdeclarationincotermenum", + "CustomsDeclarationNonDeliveryOptionEnum": ".customsdeclarationnondeliveryoptionenum", + "CustomsDeclarationPaginatedList": ".customsdeclarationpaginatedlist", + "CustomsDeclarationPaginatedListTypedDict": ".customsdeclarationpaginatedlist", + "CustomsExporterIdentification": ".customsexporteridentification", + "CustomsExporterIdentificationTypedDict": ".customsexporteridentification", + "CustomsInvoicedCharges": ".customsinvoicedcharges", + "CustomsInvoicedChargesTypedDict": ".customsinvoicedcharges", + "CustomsItem": ".customsitem", + "CustomsItemTypedDict": ".customsitem", + "CustomsItemCreateRequest": ".customsitemcreaterequest", + "CustomsItemCreateRequestTypedDict": ".customsitemcreaterequest", + "CustomsItemPaginatedList": ".customsitempaginatedlist", + "CustomsItemPaginatedListTypedDict": ".customsitempaginatedlist", + "CustomsTaxIdentification": ".customstaxidentification", + "CustomsTaxIdentificationType": ".customstaxidentification", + "CustomsTaxIdentificationTypedDict": ".customstaxidentification", + "DangerousGoodsBiologicalMaterial": ".dangerousgoodsbiologicalmaterial", + "DangerousGoodsBiologicalMaterialTypedDict": ".dangerousgoodsbiologicalmaterial", + "DangerousGoodsLithiumBatteries": ".dangerousgoodslithiumbatteries", + "DangerousGoodsLithiumBatteriesTypedDict": ".dangerousgoodslithiumbatteries", + "DangerousGoodsObject": ".dangerousgoodsobject", + "DangerousGoodsObjectTypedDict": ".dangerousgoodsobject", + "DefaultParcelTemplate": ".defaultparceltemplate", + "DefaultParcelTemplateTypedDict": ".defaultparceltemplate", + "DefaultParcelTemplateUpdateRequest": ".defaultparceltemplateupdaterequest", + "DefaultParcelTemplateUpdateRequestTypedDict": ".defaultparceltemplateupdaterequest", + "DepartmentNumber": ".departmentnumber", + "DepartmentNumberTypedDict": ".departmentnumber", + "DistanceUnitEnum": ".distanceunitenum", + "DryIce": ".dryice", + "DryIceTypedDict": ".dryice", + "FedExConnectExistingOwnAccountParameters": ".fedexconnectexistingownaccountparameters", + "FedExConnectExistingOwnAccountParametersTypedDict": ".fedexconnectexistingownaccountparameters", + "VerificationOption": ".fedexconnectexistingownaccountparameters", + "InstantTransactionCreateRequest": ".instanttransactioncreaterequest", + "InstantTransactionCreateRequestTypedDict": ".instanttransactioncreaterequest", + "LabelFileType": ".instanttransactioncreaterequest", + "Insurance": ".insurance", + "InsuranceProvider": ".insurance", + "InsuranceTypedDict": ".insurance", + "InvoiceNumber": ".invoicenumber", + "InvoiceNumberTypedDict": ".invoicenumber", + "LabelFileTypeEnum": ".labelfiletypeenum", + "LineItem": ".lineitem", + "LineItemTypedDict": ".lineitem", + "LineItemBase": ".lineitembase", + "LineItemBaseTypedDict": ".lineitembase", + "LiveRate": ".liverate", + "LiveRateTypedDict": ".liverate", + "LiveRateCreateRequest": ".liveratecreaterequest", + "LiveRateCreateRequestAddressFrom": ".liveratecreaterequest", + "LiveRateCreateRequestAddressFromTypedDict": ".liveratecreaterequest", + "LiveRateCreateRequestAddressTo": ".liveratecreaterequest", + "LiveRateCreateRequestAddressToTypedDict": ".liveratecreaterequest", + "LiveRateCreateRequestParcel": ".liveratecreaterequest", + "LiveRateCreateRequestParcelTypedDict": ".liveratecreaterequest", + "LiveRateCreateRequestTypedDict": ".liveratecreaterequest", + "LiveRatePaginatedList": ".liveratepaginatedlist", + "LiveRatePaginatedListTypedDict": ".liveratepaginatedlist", + "BuildingLocationType": ".location", + "BuildingType": ".location", + "Location": ".location", + "LocationTypedDict": ".location", + "Manifest": ".manifest", + "ManifestStatus": ".manifest", + "ManifestTypedDict": ".manifest", + "ManifestCreateRequest": ".manifestcreaterequest", + "ManifestCreateRequestAddressFrom": ".manifestcreaterequest", + "ManifestCreateRequestAddressFromTypedDict": ".manifestcreaterequest", + "ManifestCreateRequestTypedDict": ".manifestcreaterequest", + "ManifestPaginatedList": ".manifestpaginatedlist", + "ManifestPaginatedListTypedDict": ".manifestpaginatedlist", + "ObjectStateEnum": ".objectstateenum", + "Order": ".order", + "OrderTransaction": ".order", + "OrderTransactionTypedDict": ".order", + "OrderTypedDict": ".order", + "OrderCreateRequest": ".ordercreaterequest", + "OrderCreateRequestTypedDict": ".ordercreaterequest", + "OrderPaginatedList": ".orderpaginatedlist", + "OrderPaginatedListTypedDict": ".orderpaginatedlist", + "OrderShopAppEnum": ".ordershopappenum", + "OrderStatusEnum": ".orderstatusenum", + "ObjectState": ".parcel", + "Parcel": ".parcel", + "ParcelTypedDict": ".parcel", + "ParcelCreateFromTemplateRequest": ".parcelcreatefromtemplaterequest", + "ParcelCreateFromTemplateRequestTypedDict": ".parcelcreatefromtemplaterequest", + "ParcelCreateRequest": ".parcelcreaterequest", + "ParcelCreateRequestTypedDict": ".parcelcreaterequest", + "ParcelExtra": ".parcelextra", + "ParcelExtraTypedDict": ".parcelextra", + "ParcelInsurance": ".parcelinsurance", + "ParcelInsuranceProvider": ".parcelinsurance", + "ParcelInsuranceTypedDict": ".parcelinsurance", + "ParcelPaginatedList": ".parcelpaginatedlist", + "ParcelPaginatedListTypedDict": ".parcelpaginatedlist", + "ParcelTemplateAramexAustraliaEnum": ".parceltemplatearamexaustraliaenum", + "ParcelTemplateDHLeCommerceEnum": ".parceltemplatedhlecommerceenum", + "ParcelTemplateDPDUKEnum": ".parceltemplatedpdukenum", + "ParcelTemplateEnumSet": ".parceltemplateenumset", + "ParcelTemplateEnumSetTypedDict": ".parceltemplateenumset", + "ParcelTemplateFedExEnum": ".parceltemplatefedexenum", + "ParcelTemplateUPSEnum": ".parceltemplateupsenum", + "ParcelTemplateUSPSEnum": ".parceltemplateuspsenum", + "Pickup": ".pickup", + "PickupStatus": ".pickup", + "PickupTypedDict": ".pickup", + "PickupBase": ".pickupbase", + "PickupBaseTypedDict": ".pickupbase", + "PoNumber": ".ponumber", + "PoNumberTypedDict": ".ponumber", + "Attribute": ".rate", + "Rate": ".rate", + "RateTypedDict": ".rate", + "RatePaginatedList": ".ratepaginatedlist", + "RatePaginatedListTypedDict": ".ratepaginatedlist", + "Refund": ".refund", + "RefundStatus": ".refund", + "RefundTypedDict": ".refund", + "RefundPaginatedList": ".refundpaginatedlist", + "RefundPaginatedListTypedDict": ".refundpaginatedlist", + "RefundRequestBody": ".refundrequestbody", + "RefundRequestBodyTypedDict": ".refundrequestbody", + "ResponseMessage": ".responsemessage", + "ResponseMessageTypedDict": ".responsemessage", + "RmaNumber": ".rmanumber", + "RmaNumberTypedDict": ".rmanumber", + "Security": ".security", + "SecurityTypedDict": ".security", + "ServiceGroup": ".servicegroup", + "ServiceGroupTypedDict": ".servicegroup", + "ServiceGroupAccountAndServiceLevel": ".servicegroupaccountandservicelevel", + "ServiceGroupAccountAndServiceLevelTypedDict": ".servicegroupaccountandservicelevel", + "ServiceGroupCreateRequest": ".servicegroupcreaterequest", + "ServiceGroupCreateRequestTypedDict": ".servicegroupcreaterequest", + "ServiceGroupTypeEnum": ".servicegrouptypeenum", + "ServiceGroupUpdateRequest": ".servicegroupupdaterequest", + "ServiceGroupUpdateRequestTypedDict": ".servicegroupupdaterequest", + "ServiceLevel": ".servicelevel", + "ServiceLevelTypedDict": ".servicelevel", + "ServiceLevelAirterraEnum": ".servicelevelairterraenum", + "ServiceLevelAPCPostalEnum": ".servicelevelapcpostalenum", + "ServiceLevelAPGEnum": ".servicelevelapgenum", + "ServiceLevelAramexAustraliaEnum": ".servicelevelaramexaustraliaenum", + "ServiceLevelAsendiaEnum": ".servicelevelasendiaenum", + "ServiceLevelAustraliaPostEnum": ".servicelevelaustraliapostenum", + "ServiceLevelBetterTrucksEnum": ".servicelevelbettertrucksenum", + "ServiceLevelCanadaPostEnum": ".servicelevelcanadapostenum", + "ServiceLevelChronopostEnum": ".servicelevelchronopostenum", + "ServiceLevelColissimoEnum": ".servicelevelcolissimoenum", + "ServiceLevelCorreosEspanaEnum": ".servicelevelcorreosespanaenum", + "ServiceLevelDeutschePostEnum": ".serviceleveldeutschepostenum", + "ServiceLevelDHLeCommerceEnum": ".serviceleveldhlecommerceenum", + "ServiceLevelDHLExpressEnum": ".serviceleveldhlexpressenum", + "ServiceLevelDHLGermanyEnum": ".serviceleveldhlgermanyenum", + "ServiceLevelDPDDEEnum": ".serviceleveldpddeenum", + "ServiceLevelDPDUKEnum": ".serviceleveldpdukenum", + "ServiceLevelEnumSet": ".servicelevelenumset", + "ServiceLevelEnumSetTypedDict": ".servicelevelenumset", + "ServiceLevelePostGlobalEnum": ".servicelevelepostglobalenum", + "ServiceLevelEvriUKEnum": ".servicelevelevriukenum", + "ServiceLevelFedExEnum": ".servicelevelfedexenum", + "ServiceLevelGlobegisticsEnum": ".servicelevelglobegisticsenum", + "ServiceLevelGLSUSEnum": ".servicelevelglsusenum", + "ServiceLevelJitsuEnum": ".serviceleveljitsuenum", + "ServiceLevelLasershipEnum": ".servicelevellasershipenum", + "ServiceLevelLSOEnum": ".servicelevellsoenum", + "ServiceLevelMondialRelayEnum": ".servicelevelmondialrelayenum", + "ServiceLevelOnTracEnum": ".servicelevelontracenum", + "ServiceLevelParcelforceEnum": ".servicelevelparcelforceenum", + "ServiceLevelPostItalianeEnum": ".servicelevelpostitalianeenum", + "ServiceLevelPurolatorEnum": ".servicelevelpurolatorenum", + "ServiceLevelRoyalMailEnum": ".servicelevelroyalmailenum", + "ServiceLevelRoyalMailSFEnum": ".servicelevelroyalmailsfenum", + "ServiceLevelSwyftEnum": ".servicelevelswyftenum", + "ServiceLevelUDSEnum": ".serviceleveludsenum", + "ServiceLevelUPSEnum": ".servicelevelupsenum", + "ServiceLevelUSPSEnum": ".serviceleveluspsenum", + "ServiceLevelVehoEnum": ".servicelevelvehoenum", + "ServiceLevelWithParent": ".servicelevelwithparent", + "ServiceLevelWithParentTypedDict": ".servicelevelwithparent", + "Shipment": ".shipment", + "ShipmentStatus": ".shipment", + "ShipmentTypedDict": ".shipment", + "AddressReturn": ".shipmentcreaterequest", + "AddressReturnTypedDict": ".shipmentcreaterequest", + "CustomsDeclarationUnion": ".shipmentcreaterequest", + "CustomsDeclarationUnionTypedDict": ".shipmentcreaterequest", + "ShipmentCreateRequest": ".shipmentcreaterequest", + "ShipmentCreateRequestAddressFrom": ".shipmentcreaterequest", + "ShipmentCreateRequestAddressFromTypedDict": ".shipmentcreaterequest", + "ShipmentCreateRequestAddressTo": ".shipmentcreaterequest", + "ShipmentCreateRequestAddressToTypedDict": ".shipmentcreaterequest", + "ShipmentCreateRequestParcel": ".shipmentcreaterequest", + "ShipmentCreateRequestParcelTypedDict": ".shipmentcreaterequest", + "ShipmentCreateRequestTypedDict": ".shipmentcreaterequest", + "AncillaryEndorsement": ".shipmentextra", + "DangerousGoodsCode": ".shipmentextra", + "PreferredDeliveryTimeframe": ".shipmentextra", + "ReturnServiceType": ".shipmentextra", + "ReturnServiceTypeTypedDict": ".shipmentextra", + "ShipmentExtra": ".shipmentextra", + "ShipmentExtraTypedDict": ".shipmentextra", + "SignatureConfirmation": ".shipmentextra", + "ShipmentExtraLasershipAttributesEnum": ".shipmentextralasershipattributesenum", + "ShipmentExtraReturnServiceTypeLasershipEnum": ".shipmentextrareturnservicetypelasershipenum", + "ShipmentExtraReturnServiceTypeUPSEnum": ".shipmentextrareturnservicetypeupsenum", + "ShipmentPaginatedList": ".shipmentpaginatedlist", + "ShipmentPaginatedListTypedDict": ".shipmentpaginatedlist", + "ShippoAccount": ".shippoaccount", + "ShippoAccountTypedDict": ".shippoaccount", + "ShippoAccountPaginatedList": ".shippoaccountpaginatedlist", + "ShippoAccountPaginatedListTypedDict": ".shippoaccountpaginatedlist", + "ShippoAccountUpdateRequest": ".shippoaccountupdaterequest", + "ShippoAccountUpdateRequestTypedDict": ".shippoaccountupdaterequest", + "Track": ".track", + "TrackTypedDict": ".track", + "TrackingStatus": ".trackingstatus", + "TrackingStatusTypedDict": ".trackingstatus", + "TrackingStatusEnum": ".trackingstatusenum", + "TrackingStatusLocationBase": ".trackingstatuslocationbase", + "TrackingStatusLocationBaseTypedDict": ".trackingstatuslocationbase", + "TrackingStatusSubstatus": ".trackingstatussubstatus", + "TrackingStatusSubstatusTypedDict": ".trackingstatussubstatus", + "TracksRequest": ".tracksrequest", + "TracksRequestTypedDict": ".tracksrequest", + "CreatedBy": ".transaction", + "CreatedByTypedDict": ".transaction", + "RateUnion": ".transaction", + "RateUnionTypedDict": ".transaction", + "Transaction": ".transaction", + "TransactionTypedDict": ".transaction", + "TransactionCreateRequest": ".transactioncreaterequest", + "TransactionCreateRequestTypedDict": ".transactioncreaterequest", + "TransactionPaginatedList": ".transactionpaginatedlist", + "TransactionPaginatedListTypedDict": ".transactionpaginatedlist", + "TransactionStatusEnum": ".transactionstatusenum", + "UPSConnectExistingOwnAccountParameters": ".upsconnectexistingownaccountparameters", + "UPSConnectExistingOwnAccountParametersTypedDict": ".upsconnectexistingownaccountparameters", + "UPSReferenceFields": ".upsreferencefields", + "UPSReferenceFieldsTypedDict": ".upsreferencefields", + "UserParcelTemplate": ".userparceltemplate", + "UserParcelTemplateTypedDict": ".userparceltemplate", + "UserParcelTemplateCreateRequest": ".userparceltemplatecreaterequest", + "UserParcelTemplateCreateRequestTypedDict": ".userparceltemplatecreaterequest", + "UserParcelTemplateList": ".userparceltemplatelist", + "UserParcelTemplateListTypedDict": ".userparceltemplatelist", + "UserParcelTemplateUpdateRequest": ".userparceltemplateupdaterequest", + "UserParcelTemplateUpdateRequestTypedDict": ".userparceltemplateupdaterequest", + "UserParcelTemplateWithCarrierTemplateCreateRequest": ".userparceltemplatewithcarriertemplatecreaterequest", + "UserParcelTemplateWithCarrierTemplateCreateRequestTypedDict": ".userparceltemplatewithcarriertemplatecreaterequest", + "UserParcelTemplateWithoutCarrierTemplateCreateRequest": ".userparceltemplatewithoutcarriertemplatecreaterequest", + "UserParcelTemplateWithoutCarrierTemplateCreateRequestTypedDict": ".userparceltemplatewithoutcarriertemplatecreaterequest", + "Webhook": ".webhook", + "WebhookTypedDict": ".webhook", + "WebhookEventTypeEnum": ".webhookeventtypeenum", + "WebhookPaginatedList": ".webhookpaginatedlist", + "WebhookPaginatedListTypedDict": ".webhookpaginatedlist", + "WebhookPayload": ".webhookpayload", + "WebhookPayloadTypedDict": ".webhookpayload", + "WebhookPayloadBatch": ".webhookpayloadbatch", + "WebhookPayloadBatchTypedDict": ".webhookpayloadbatch", + "WebhookPayloadTrack": ".webhookpayloadtrack", + "WebhookPayloadTrackTypedDict": ".webhookpayloadtrack", + "WebhookPayloadTransaction": ".webhookpayloadtransaction", + "WebhookPayloadTransactionTypedDict": ".webhookpayloadtransaction", + "WebhookUpdateRequest": ".webhookupdaterequest", + "WebhookUpdateRequestTypedDict": ".webhookupdaterequest", + "WeightUnitEnum": ".weightunitenum", +} + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) + + +def __dir__(): + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/shippo/models/components/address.py b/src/shippo/models/components/address.py index a8ad23d1..77eb9b39 100644 --- a/src/shippo/models/components/address.py +++ b/src/shippo/models/components/address.py @@ -6,84 +6,149 @@ AddressValidationResultsTypedDict, ) from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict LatitudeTypedDict = TypeAliasType("LatitudeTypedDict", Union[float, str]) +r"""Latitude of address""" Latitude = TypeAliasType("Latitude", Union[float, str]) +r"""Latitude of address""" LongitudeTypedDict = TypeAliasType("LongitudeTypedDict", Union[float, str]) +r"""Longitude of address""" Longitude = TypeAliasType("Longitude", Union[float, str]) +r"""Longitude of address""" class AddressTypedDict(TypedDict): r"""Address represents the address as retrieved from the database""" country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ name: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ company: NotRequired[str] - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street1: NotRequired[str] - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street2: NotRequired[str] - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: NotRequired[str] - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: NotRequired[str] r"""Street number of the addressed building. This field can be included in street1 for all carriers except for DHL Germany. """ city: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: NotRequired[str] - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ phone: NotRequired[str] r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: NotRequired[str] - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: NotRequired[bool] metadata: NotRequired[str] r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object. """ is_complete: NotRequired[bool] - r"""Complete addresses contain all required values.

Incomplete addresses have failed one or multiple - validations.
Incomplete Addresses are eligible for requesting rates but lack at least one required - value for purchasing labels. + r"""Complete addresses contain all required values. + + Incomplete addresses have failed one or multiple validations. Incomplete Addresses are eligible for requesting rates but lack at least one required value for purchasing labels. """ latitude: NotRequired[LatitudeTypedDict] r"""Latitude of address""" @@ -104,7 +169,7 @@ class AddressTypedDict(TypedDict): """ validation_results: NotRequired[AddressValidationResultsTypedDict] r"""Object that contains information regarding if an address had been validated or not. Also contains any messages - generated during validation. Children keys are is_valid(boolean) and messages(array). + generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). """ test: NotRequired[bool] r"""Indicates whether the object has been created in test mode.""" @@ -114,31 +179,60 @@ class Address(BaseModel): r"""Address represents the address as retrieved from the database""" country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ name: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ company: Optional[str] = None - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street1: Optional[str] = None - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street2: Optional[str] = None - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: Optional[str] = None - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: Optional[str] = None @@ -147,32 +241,63 @@ class Address(BaseModel): """ city: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: Optional[str] = None - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ phone: Optional[str] = None r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: Optional[str] = None - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: Optional[bool] = None @@ -182,9 +307,9 @@ class Address(BaseModel): """ is_complete: Optional[bool] = None - r"""Complete addresses contain all required values.

Incomplete addresses have failed one or multiple - validations.
Incomplete Addresses are eligible for requesting rates but lack at least one required - value for purchasing labels. + r"""Complete addresses contain all required values. + + Incomplete addresses have failed one or multiple validations. Incomplete Addresses are eligible for requesting rates but lack at least one required value for purchasing labels. """ latitude: Optional[Latitude] = None @@ -212,8 +337,49 @@ class Address(BaseModel): validation_results: Optional[AddressValidationResults] = None r"""Object that contains information regarding if an address had been validated or not. Also contains any messages - generated during validation. Children keys are is_valid(boolean) and messages(array). + generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). """ test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "name", + "company", + "street1", + "street2", + "street3", + "street_no", + "city", + "state", + "zip", + "phone", + "email", + "is_residential", + "metadata", + "is_complete", + "latitude", + "longitude", + "object_created", + "object_id", + "object_owner", + "object_updated", + "validation_results", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/addresscompletecreaterequest.py b/src/shippo/models/components/addresscompletecreaterequest.py index a154db47..0c5efbe9 100644 --- a/src/shippo/models/components/addresscompletecreaterequest.py +++ b/src/shippo/models/components/addresscompletecreaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -11,43 +12,90 @@ class AddressCompleteCreateRequestTypedDict(TypedDict): r"""Address represents the address as retrieved from the database""" name: str - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ street1: str - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ city: str - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: str - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: str - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ company: NotRequired[str] - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street2: NotRequired[str] - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: NotRequired[str] - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: NotRequired[str] r"""Street number of the addressed building. @@ -56,9 +104,22 @@ class AddressCompleteCreateRequestTypedDict(TypedDict): phone: NotRequired[str] r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: NotRequired[str] - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: NotRequired[bool] metadata: NotRequired[str] r"""A string of up to 100 characters that can be filled with any additional information you want @@ -71,51 +132,98 @@ class AddressCompleteCreateRequest(BaseModel): r"""Address represents the address as retrieved from the database""" name: str - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ street1: str - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ city: str - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: str - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: str - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ company: Optional[str] = None - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street2: Optional[str] = None - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: Optional[str] = None - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: Optional[str] = None @@ -126,10 +234,23 @@ class AddressCompleteCreateRequest(BaseModel): phone: Optional[str] = None r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: Optional[str] = None - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: Optional[bool] = None @@ -139,3 +260,37 @@ class AddressCompleteCreateRequest(BaseModel): """ validate_: Annotated[Optional[bool], pydantic.Field(alias="validate")] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "company", + "street2", + "street3", + "street_no", + "phone", + "email", + "is_residential", + "metadata", + "validate", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + AddressCompleteCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/addresscreaterequest.py b/src/shippo/models/components/addresscreaterequest.py index d5588ad7..c20ad890 100644 --- a/src/shippo/models/components/addresscreaterequest.py +++ b/src/shippo/models/components/addresscreaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -11,54 +12,114 @@ class AddressCreateRequestTypedDict(TypedDict): r"""Address represents the address as retrieved from the database""" country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ name: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ company: NotRequired[str] - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street1: NotRequired[str] - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street2: NotRequired[str] - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: NotRequired[str] - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: NotRequired[str] r"""Street number of the addressed building. This field can be included in street1 for all carriers except for DHL Germany. """ city: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: NotRequired[str] - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: NotRequired[str] - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ phone: NotRequired[str] r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: NotRequired[str] - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: NotRequired[bool] metadata: NotRequired[str] r"""A string of up to 100 characters that can be filled with any additional information you want @@ -72,31 +133,60 @@ class AddressCreateRequest(BaseModel): r"""Address represents the address as retrieved from the database""" country: str - r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we reccomend using country codes like `US` or `DE`. + r"""ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. - Refer to this guide for a list of country codes. + Refer to this [guide](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) for a list of country codes. Sending a country is always required. """ name: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + First and Last Name of the addressee + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Either company or name required; No length validation (first 35 chars printed on label) | """ company: Optional[str] = None - r"""Company Name""" + r"""Company Name + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 35 characters; Either company or name required | + """ street1: Optional[str] = None - r"""**required for purchase**
- First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no). + r"""**required for purchase** + + First street line. Usually street number and street name (except for DHL Germany, see street_no). + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street2: Optional[str] = None - r"""Second street line, 35 character limit.""" + r"""Second street line. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | + """ street3: Optional[str] = None - r"""Third street line, 35 character limit. + r"""Third street line. Only accepted for USPS international shipments, UPS domestic and UPS international shipments. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | At least one street line required; Max 35 characters per line | """ street_no: Optional[str] = None @@ -105,32 +195,63 @@ class AddressCreateRequest(BaseModel): """ city: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state or a ZIP code (see below), if known, it will yield more accurate results. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Max 35 characters | """ state: Optional[str] = None - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required if country requires state; Max 2 characters for US, CA, PR | """ zip: Optional[str] = None - r"""**required for purchase**
+ r"""**required for purchase** + Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more accurate Rates. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 10 characters | """ phone: Optional[str] = None r"""Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Required; Min 1, max 15 characters | + | USPS | Sender phone required for shipments during label purchase; Min 8, max 15 digits | """ email: Optional[str] = None - r"""E-mail address of the contact person, RFC3696/5321-compliant.""" + r"""E-mail address of the contact person, RFC3696/5321-compliant. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 80 characters | + | USPS | Sender email required for shipments during label purchase | + """ is_residential: Optional[bool] = None @@ -141,3 +262,42 @@ class AddressCreateRequest(BaseModel): validate_: Annotated[Optional[bool], pydantic.Field(alias="validate")] = None r"""Set to true to validate Address object.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "name", + "company", + "street1", + "street2", + "street3", + "street_no", + "city", + "state", + "zip", + "phone", + "email", + "is_residential", + "metadata", + "validate", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + AddressCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/addressimporter.py b/src/shippo/models/components/addressimporter.py index dbeb5cac..e6cda15b 100644 --- a/src/shippo/models/components/addressimporter.py +++ b/src/shippo/models/components/addressimporter.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -28,7 +29,8 @@ class AddressImporterTypedDict(TypedDict): city: NotRequired[str] r"""Name of a city""" state: NotRequired[str] - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. @@ -37,7 +39,7 @@ class AddressImporterTypedDict(TypedDict): r"""Postal code of an Address.""" country: NotRequired[str] r"""Example: `US` or `DE`. All accepted values can be found on the - Official ISO Website. + [Official ISO Website](http://www.iso.org/). Sending a country is always required. """ phone: NotRequired[str] @@ -79,7 +81,8 @@ class AddressImporter(BaseModel): r"""Name of a city""" state: Optional[str] = None - r"""**required for purchase for some countries**
+ r"""**required for purchase for some countries** + State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers only accept two or three character state abbreviations. @@ -90,7 +93,7 @@ class AddressImporter(BaseModel): country: Optional[str] = None r"""Example: `US` or `DE`. All accepted values can be found on the - Official ISO Website. + [Official ISO Website](http://www.iso.org/). Sending a country is always required. """ @@ -104,3 +107,35 @@ class AddressImporter(BaseModel): is_residential: Optional[bool] = None r"""Indicates whether the address provided is a residential address or not.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "name", + "company", + "street1", + "street2", + "street3", + "street_no", + "city", + "state", + "zip", + "country", + "phone", + "email", + "is_residential", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/addresspaginatedlist.py b/src/shippo/models/components/addresspaginatedlist.py index c984823e..e51c6d73 100644 --- a/src/shippo/models/components/addresspaginatedlist.py +++ b/src/shippo/models/components/addresspaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .address import Address, AddressTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class AddressPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Address]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/addressvalidationresults.py b/src/shippo/models/components/addressvalidationresults.py index 4a19797a..9ccd39a5 100644 --- a/src/shippo/models/components/addressvalidationresults.py +++ b/src/shippo/models/components/addressvalidationresults.py @@ -5,14 +5,15 @@ AddressValidationResultsMessage, AddressValidationResultsMessageTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class AddressValidationResultsTypedDict(TypedDict): r"""Object that contains information regarding if an address had been validated or not. Also contains any messages - generated during validation. Children keys are is_valid(boolean) and messages(array). + generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). """ is_valid: NotRequired[bool] @@ -21,9 +22,25 @@ class AddressValidationResultsTypedDict(TypedDict): class AddressValidationResults(BaseModel): r"""Object that contains information regarding if an address had been validated or not. Also contains any messages - generated during validation. Children keys are is_valid(boolean) and messages(array). + generated during validation. Children keys are `is_valid`(boolean) and `messages`(array). """ is_valid: Optional[bool] = None messages: Optional[List[AddressValidationResultsMessage]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["is_valid", "messages"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/addressvalidationresultsmessage.py b/src/shippo/models/components/addressvalidationresultsmessage.py index ba50e314..8dd21a9a 100644 --- a/src/shippo/models/components/addressvalidationresultsmessage.py +++ b/src/shippo/models/components/addressvalidationresultsmessage.py @@ -1,27 +1,44 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class AddressValidationResultsMessageTypedDict(TypedDict): code: NotRequired[str] - r"""See Address Validation Codes""" + r"""See [Address Validation Codes](/shippoapi/public-api/address-validation-codes)""" source: NotRequired[str] - r"""See Address Validation Source""" + r"""See [Address Validation Source](/shippoapi/public-api/address-validation-source)""" text: NotRequired[str] type: NotRequired[str] class AddressValidationResultsMessage(BaseModel): code: Optional[str] = None - r"""See Address Validation Codes""" + r"""See [Address Validation Codes](/shippoapi/public-api/address-validation-codes)""" source: Optional[str] = None - r"""See Address Validation Source""" + r"""See [Address Validation Source](/shippoapi/public-api/address-validation-source)""" text: Optional[str] = None type: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["code", "source", "text", "type"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/alcohol.py b/src/shippo/models/components/alcohol.py index 0f26f301..b591dadc 100644 --- a/src/shippo/models/components/alcohol.py +++ b/src/shippo/models/components/alcohol.py @@ -2,7 +2,8 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -31,3 +32,19 @@ class Alcohol(BaseModel): recipient_type: Optional[RecipientType] = None r"""Mandatory for Fedex only. License type of the recipient of the Alcohol Package.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["contains_alcohol", "recipient_type"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/batch.py b/src/shippo/models/components/batch.py index 427e9e59..4f76bd4e 100644 --- a/src/shippo/models/components/batch.py +++ b/src/shippo/models/components/batch.py @@ -7,13 +7,14 @@ ) from .labelfiletypeenum import LabelFileTypeEnum from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class ObjectResultsTypedDict(TypedDict): - r"""An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed`""" + r"""An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed`""" creation_failed: int creation_succeeded: int @@ -22,7 +23,7 @@ class ObjectResultsTypedDict(TypedDict): class ObjectResults(BaseModel): - r"""An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed`""" + r"""An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed`""" creation_failed: int @@ -34,11 +35,11 @@ class ObjectResults(BaseModel): class BatchStatus(str, Enum): - r"""Batches that are `VALIDATING` are being created and validated
- `VALID` batches can be purchased
- `INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed
- Batches that are in the `PURCHASING` state are being purchased
- `PURCHASED` batches are finished purchasing. + r"""- `VALIDATING`: the batch is being created and validated + - `VALID`: the batch can be purchased + - `INVALID`: the batch cannot be purchased; `INVALID` BatchShipments must be removed + - `PURCHASING`: the batch is being purchased + - `PURCHASED`: the batch is finished purchasing """ VALIDATING = "VALIDATING" @@ -57,7 +58,7 @@ class BatchTypedDict(TypedDict): default_servicelevel_token: str r"""Token of the service level to use as the default for all shipments in this Batch. The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the - corresponding BatchShipment object. Servicelevel tokens can be found here. + corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) """ batch_shipments: BatchShipmentPaginatedListTypedDict label_url: List[str] @@ -67,21 +68,21 @@ class BatchTypedDict(TypedDict): object_id: str r"""Unique identifier of the given Batch object""" object_owner: str - r"""Username of the user who created the Address object.""" + r"""Username of the user who created the Batch object.""" object_results: ObjectResultsTypedDict - r"""An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed`""" + r"""An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed`""" object_updated: str r"""Date and time of last update to the Batch""" status: BatchStatus - r"""Batches that are `VALIDATING` are being created and validated
- `VALID` batches can be purchased
- `INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed
- Batches that are in the `PURCHASING` state are being purchased
- `PURCHASED` batches are finished purchasing. + r"""- `VALIDATING`: the batch is being created and validated + - `VALID`: the batch can be purchased + - `INVALID`: the batch cannot be purchased; `INVALID` BatchShipments must be removed + - `PURCHASING`: the batch is being purchased + - `PURCHASED`: the batch is finished purchasing """ label_filetype: NotRequired[LabelFileTypeEnum] - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: NotRequired[str] r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" @@ -98,7 +99,7 @@ class Batch(BaseModel): default_servicelevel_token: str r"""Token of the service level to use as the default for all shipments in this Batch. The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the - corresponding BatchShipment object. Servicelevel tokens can be found here. + corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) """ batch_shipments: BatchShipmentPaginatedList @@ -113,28 +114,44 @@ class Batch(BaseModel): r"""Unique identifier of the given Batch object""" object_owner: str - r"""Username of the user who created the Address object.""" + r"""Username of the user who created the Batch object.""" object_results: ObjectResults - r"""An object containing the following counts:
`creation_succeeded`
`creation_failed`
`purchase_succeeded`
`purchase_failed`""" + r"""An object containing the following counts: `creation_succeeded`, `creation_failed`, `purchase_succeeded`, `purchase_failed`""" object_updated: str r"""Date and time of last update to the Batch""" status: BatchStatus - r"""Batches that are `VALIDATING` are being created and validated
- `VALID` batches can be purchased
- `INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed
- Batches that are in the `PURCHASING` state are being purchased
- `PURCHASED` batches are finished purchasing. + r"""- `VALIDATING`: the batch is being created and validated + - `VALID`: the batch can be purchased + - `INVALID`: the batch cannot be purchased; `INVALID` BatchShipments must be removed + - `PURCHASING`: the batch is being purchased + - `PURCHASED`: the batch is finished purchasing """ label_filetype: Optional[LabelFileTypeEnum] = None - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: Optional[str] = None r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" test: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["label_filetype", "metadata", "test"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/batchcreaterequest.py b/src/shippo/models/components/batchcreaterequest.py index 075033d1..f217b2db 100644 --- a/src/shippo/models/components/batchcreaterequest.py +++ b/src/shippo/models/components/batchcreaterequest.py @@ -6,7 +6,8 @@ BatchShipmentCreateRequestTypedDict, ) from .labelfiletypeenum import LabelFileTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -20,13 +21,13 @@ class BatchCreateRequestTypedDict(TypedDict): default_servicelevel_token: str r"""Token of the service level to use as the default for all shipments in this Batch. The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the - corresponding BatchShipment object. Servicelevel tokens can be found here. + corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) """ batch_shipments: List[BatchShipmentCreateRequestTypedDict] r"""Array of BatchShipment objects. The response keeps the same order as in the request array.""" label_filetype: NotRequired[LabelFileTypeEnum] - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: NotRequired[str] r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" @@ -42,16 +43,32 @@ class BatchCreateRequest(BaseModel): default_servicelevel_token: str r"""Token of the service level to use as the default for all shipments in this Batch. The servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the - corresponding BatchShipment object. Servicelevel tokens can be found here. + corresponding BatchShipment object. [Servicelevel tokens can be found here.](/shippoapi/public-api/service-levels) """ batch_shipments: List[BatchShipmentCreateRequest] r"""Array of BatchShipment objects. The response keeps the same order as in the request array.""" label_filetype: Optional[LabelFileTypeEnum] = None - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: Optional[str] = None r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["label_filetype", "metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/batchshipment.py b/src/shippo/models/components/batchshipment.py index b1fee9dd..07da999f 100644 --- a/src/shippo/models/components/batchshipment.py +++ b/src/shippo/models/components/batchshipment.py @@ -2,16 +2,17 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Any, List, Optional from typing_extensions import NotRequired, TypedDict class BatchShipmentStatus(str, Enum): - r"""`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.
- `VALID` batch shipments can be purchased.
- Batch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field
- `INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again. + r"""- `INVALID`: the batch shipment cannot be purchased and will have to be removed, fixed, and added to the batch again + - `VALID`: the batch shipment can be purchased + - `TRANSACTION_FAILED`: the batch shipment was not able to be purchased and the error will be displayed on the message field + - `INCOMPLETE`: the batch shipment has an issue with the Address and will need to be removed, fixed, and added to the batch again """ INVALID = "INVALID" @@ -21,15 +22,22 @@ class BatchShipmentStatus(str, Enum): class BatchShipmentTypedDict(TypedDict): + r"""The batch shipment object is a wrapper around a shipment object, which include shipment-specific information + for batch processing. + + Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through + the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint + """ + object_id: str r"""Object ID of this batch shipment. Can be used in the remove_shipments endpoint.""" shipment: str r"""Object ID of the shipment object created for this batch shipment.""" status: BatchShipmentStatus - r"""`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.
- `VALID` batch shipments can be purchased.
- Batch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field
- `INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again. + r"""- `INVALID`: the batch shipment cannot be purchased and will have to be removed, fixed, and added to the batch again + - `VALID`: the batch shipment can be purchased + - `TRANSACTION_FAILED`: the batch shipment was not able to be purchased and the error will be displayed on the message field + - `INCOMPLETE`: the batch shipment has an issue with the Address and will need to be removed, fixed, and added to the batch again """ carrier_account: NotRequired[str] r"""Object ID of the carrier account to be used for this shipment (will override batch default)""" @@ -39,8 +47,8 @@ class BatchShipmentTypedDict(TypedDict): """ servicelevel_token: NotRequired[str] r"""A token that sets the shipping method for the batch, overriding the batch default. - Servicelevel tokens can be found in this list - or at this endpoint. + Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels) + or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). """ messages: NotRequired[List[Any]] r"""List of Shipment and Transaction error messages.""" @@ -49,6 +57,13 @@ class BatchShipmentTypedDict(TypedDict): class BatchShipment(BaseModel): + r"""The batch shipment object is a wrapper around a shipment object, which include shipment-specific information + for batch processing. + + Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through + the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint + """ + object_id: str r"""Object ID of this batch shipment. Can be used in the remove_shipments endpoint.""" @@ -56,10 +71,10 @@ class BatchShipment(BaseModel): r"""Object ID of the shipment object created for this batch shipment.""" status: BatchShipmentStatus - r"""`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.
- `VALID` batch shipments can be purchased.
- Batch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field
- `INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again. + r"""- `INVALID`: the batch shipment cannot be purchased and will have to be removed, fixed, and added to the batch again + - `VALID`: the batch shipment can be purchased + - `TRANSACTION_FAILED`: the batch shipment was not able to be purchased and the error will be displayed on the message field + - `INCOMPLETE`: the batch shipment has an issue with the Address and will need to be removed, fixed, and added to the batch again """ carrier_account: Optional[str] = None @@ -72,8 +87,8 @@ class BatchShipment(BaseModel): servicelevel_token: Optional[str] = None r"""A token that sets the shipping method for the batch, overriding the batch default. - Servicelevel tokens can be found in this list - or at this endpoint. + Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels) + or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). """ messages: Optional[List[Any]] = None @@ -81,3 +96,27 @@ class BatchShipment(BaseModel): transaction: Optional[str] = None r"""Object ID of the transaction object created for this batch shipment.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "carrier_account", + "metadata", + "servicelevel_token", + "messages", + "transaction", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/batchshipmentcreaterequest.py b/src/shippo/models/components/batchshipmentcreaterequest.py index 0b4a7a7d..6356be4f 100644 --- a/src/shippo/models/components/batchshipmentcreaterequest.py +++ b/src/shippo/models/components/batchshipmentcreaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations from .shipmentcreaterequest import ShipmentCreateRequest, ShipmentCreateRequestTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -17,8 +18,8 @@ class BatchShipmentCreateRequestTypedDict(TypedDict): """ servicelevel_token: NotRequired[str] r"""A token that sets the shipping method for the batch, overriding the batch default. - Servicelevel tokens can be found in this list - or at this endpoint. + Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels) + or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). """ @@ -35,6 +36,22 @@ class BatchShipmentCreateRequest(BaseModel): servicelevel_token: Optional[str] = None r"""A token that sets the shipping method for the batch, overriding the batch default. - Servicelevel tokens can be found in this list - or at this endpoint. + Servicelevel tokens can be found [in this list](/shippoapi/public-api/service-levels) + or [at this endpoint](/shippoapi/public-api/carrier-accounts/listcarrieraccounts). """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["carrier_account", "metadata", "servicelevel_token"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/batchshipmentpaginatedlist.py b/src/shippo/models/components/batchshipmentpaginatedlist.py index d4f53906..28c76d3f 100644 --- a/src/shippo/models/components/batchshipmentpaginatedlist.py +++ b/src/shippo/models/components/batchshipmentpaginatedlist.py @@ -2,13 +2,14 @@ from __future__ import annotations from .batchshipment import BatchShipment, BatchShipmentTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class BatchShipmentPaginatedListTypedDict(TypedDict): - r"""Array of BatchShipment objects. + r"""Array of [BatchShipment](/shippoapi/public-api/batches/batchshipment) objects. The response keeps the same order as in the request array. """ @@ -18,7 +19,7 @@ class BatchShipmentPaginatedListTypedDict(TypedDict): class BatchShipmentPaginatedList(BaseModel): - r"""Array of BatchShipment objects. + r"""Array of [BatchShipment](/shippoapi/public-api/batches/batchshipment) objects. The response keeps the same order as in the request array. """ @@ -27,3 +28,19 @@ class BatchShipmentPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[BatchShipment]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/billing.py b/src/shippo/models/components/billing.py index 893ad687..b771da77 100644 --- a/src/shippo/models/components/billing.py +++ b/src/shippo/models/components/billing.py @@ -2,7 +2,8 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -49,3 +50,21 @@ class Billing(BaseModel): zip: Optional[str] = None r"""ZIP code of account number to be billed (required for UPS if there is a zip on the billing account).""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["account", "country", "participation_code", "type", "zip"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccount.py b/src/shippo/models/components/carrieraccount.py index 39cba4f6..6dce6572 100644 --- a/src/shippo/models/components/carrieraccount.py +++ b/src/shippo/models/components/carrieraccount.py @@ -13,7 +13,8 @@ UPSConnectExistingOwnAccountParameters, UPSConnectExistingOwnAccountParametersTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Any, Dict, List, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -40,13 +41,13 @@ class CarrierAccountTypedDict(TypedDict): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: NotRequired[bool] r"""Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly @@ -54,7 +55,7 @@ class CarrierAccountTypedDict(TypedDict): """ parameters: NotRequired[CarrierAccountParametersTypedDict] carrier_name: NotRequired[Any] - r"""Carrier name, see Carriers
""" + r"""Carrier name, see [Carriers](/shippoapi/public-api/carriers)""" is_shippo_account: NotRequired[bool] metadata: NotRequired[str] object_id: NotRequired[str] @@ -68,14 +69,14 @@ class CarrierAccountTypedDict(TypedDict): class CarrierAccount(BaseModel): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: Optional[bool] = None @@ -86,7 +87,7 @@ class CarrierAccount(BaseModel): parameters: Optional[CarrierAccountParameters] = None carrier_name: Optional[Any] = None - r"""Carrier name, see Carriers
""" + r"""Carrier name, see [Carriers](/shippoapi/public-api/carriers)""" is_shippo_account: Optional[bool] = None @@ -102,3 +103,31 @@ class CarrierAccount(BaseModel): test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "active", + "parameters", + "carrier_name", + "is_shippo_account", + "metadata", + "object_id", + "object_owner", + "service_levels", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountbase.py b/src/shippo/models/components/carrieraccountbase.py index 1c7412f8..d4372ba7 100644 --- a/src/shippo/models/components/carrieraccountbase.py +++ b/src/shippo/models/components/carrieraccountbase.py @@ -9,7 +9,8 @@ UPSConnectExistingOwnAccountParameters, UPSConnectExistingOwnAccountParametersTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Any, Dict, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -36,13 +37,13 @@ class CarrierAccountBaseTypedDict(TypedDict): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: NotRequired[bool] r"""Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly @@ -53,14 +54,14 @@ class CarrierAccountBaseTypedDict(TypedDict): class CarrierAccountBase(BaseModel): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: Optional[bool] = None @@ -69,3 +70,19 @@ class CarrierAccountBase(BaseModel): """ parameters: Optional[CarrierAccountBaseParameters] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["active", "parameters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountcanadapostcreaterequest.py b/src/shippo/models/components/carrieraccountcanadapostcreaterequest.py index 17e78e76..e8a81754 100644 --- a/src/shippo/models/components/carrieraccountcanadapostcreaterequest.py +++ b/src/shippo/models/components/carrieraccountcanadapostcreaterequest.py @@ -27,3 +27,9 @@ class CarrierAccountCanadaPostCreateRequest(BaseModel): ], pydantic.Field(alias="carrier"), ] = "canada_post" + + +try: + CarrierAccountCanadaPostCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountchronopostcreaterequest.py b/src/shippo/models/components/carrieraccountchronopostcreaterequest.py index 700fc9d3..c33985ef 100644 --- a/src/shippo/models/components/carrieraccountchronopostcreaterequest.py +++ b/src/shippo/models/components/carrieraccountchronopostcreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountChronopostCreateRequest(BaseModel): Annotated[Literal["chronopost"], AfterValidator(validate_const("chronopost"))], pydantic.Field(alias="carrier"), ] = "chronopost" + + +try: + CarrierAccountChronopostCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountcolissimocreaterequest.py b/src/shippo/models/components/carrieraccountcolissimocreaterequest.py index 1b3f48a9..d7f9d942 100644 --- a/src/shippo/models/components/carrieraccountcolissimocreaterequest.py +++ b/src/shippo/models/components/carrieraccountcolissimocreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountColissimoCreateRequest(BaseModel): Annotated[Literal["colissimo"], AfterValidator(validate_const("colissimo"))], pydantic.Field(alias="carrier"), ] = "colissimo" + + +try: + CarrierAccountColissimoCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountcorreoscreaterequest.py b/src/shippo/models/components/carrieraccountcorreoscreaterequest.py index f1e91d08..cd5f649a 100644 --- a/src/shippo/models/components/carrieraccountcorreoscreaterequest.py +++ b/src/shippo/models/components/carrieraccountcorreoscreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountCorreosCreateRequest(BaseModel): Annotated[Literal["correos"], AfterValidator(validate_const("correos"))], pydantic.Field(alias="carrier"), ] = "correos" + + +try: + CarrierAccountCorreosCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py b/src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py index cab1d6b8..244c6a97 100644 --- a/src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py +++ b/src/shippo/models/components/carrieraccountdeutschepostcreaterequest.py @@ -31,3 +31,9 @@ class CarrierAccountDeutschePostCreateRequest(BaseModel): ], pydantic.Field(alias="carrier"), ] = "deutsche_post" + + +try: + CarrierAccountDeutschePostCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py b/src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py index ae846faf..f4c7fc9e 100644 --- a/src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py +++ b/src/shippo/models/components/carrieraccountdhlexpresscreaterequest.py @@ -27,3 +27,9 @@ class CarrierAccountDHLExpressCreateRequest(BaseModel): ], pydantic.Field(alias="carrier"), ] = "dhl_express" + + +try: + CarrierAccountDHLExpressCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountdpddecreaterequest.py b/src/shippo/models/components/carrieraccountdpddecreaterequest.py index d68745ea..de2c5d7b 100644 --- a/src/shippo/models/components/carrieraccountdpddecreaterequest.py +++ b/src/shippo/models/components/carrieraccountdpddecreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountDpdDeCreateRequest(BaseModel): Annotated[Literal["dpd_de"], AfterValidator(validate_const("dpd_de"))], pydantic.Field(alias="carrier"), ] = "dpd_de" + + +try: + CarrierAccountDpdDeCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountdpdukcreaterequest.py b/src/shippo/models/components/carrieraccountdpdukcreaterequest.py index 18ef2b87..d6388596 100644 --- a/src/shippo/models/components/carrieraccountdpdukcreaterequest.py +++ b/src/shippo/models/components/carrieraccountdpdukcreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountDPDUKCreateRequest(BaseModel): Annotated[Literal["dpd_uk"], AfterValidator(validate_const("dpd_uk"))], pydantic.Field(alias="carrier"), ] = "dpd_uk" + + +try: + CarrierAccountDPDUKCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountfedexcreaterequest.py b/src/shippo/models/components/carrieraccountfedexcreaterequest.py index d70bb141..1f404290 100644 --- a/src/shippo/models/components/carrieraccountfedexcreaterequest.py +++ b/src/shippo/models/components/carrieraccountfedexcreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountFedExCreateRequest(BaseModel): Annotated[Literal["fedex"], AfterValidator(validate_const("fedex"))], pydantic.Field(alias="carrier"), ] = "fedex" + + +try: + CarrierAccountFedExCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccounthermesukcreaterequest.py b/src/shippo/models/components/carrieraccounthermesukcreaterequest.py index 55d10bcc..30fd0fbd 100644 --- a/src/shippo/models/components/carrieraccounthermesukcreaterequest.py +++ b/src/shippo/models/components/carrieraccounthermesukcreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountHermesUKCreateRequest(BaseModel): Annotated[Literal["hermes_uk"], AfterValidator(validate_const("hermes_uk"))], pydantic.Field(alias="carrier"), ] = "hermes_uk" + + +try: + CarrierAccountHermesUKCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py b/src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py index 49aa4d77..800dabfa 100644 --- a/src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py +++ b/src/shippo/models/components/carrieraccountmondialrelaycreaterequest.py @@ -31,3 +31,9 @@ class CarrierAccountMondialRelayCreateRequest(BaseModel): ], pydantic.Field(alias="carrier"), ] = "mondial_relay" + + +try: + CarrierAccountMondialRelayCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountpaginatedlist.py b/src/shippo/models/components/carrieraccountpaginatedlist.py index 71ac5db2..294607ce 100644 --- a/src/shippo/models/components/carrieraccountpaginatedlist.py +++ b/src/shippo/models/components/carrieraccountpaginatedlist.py @@ -5,7 +5,8 @@ CarrierAccountWithExtraInfo, CarrierAccountWithExtraInfoTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -22,3 +23,19 @@ class CarrierAccountPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[CarrierAccountWithExtraInfo]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountposteitalianecreaterequest.py b/src/shippo/models/components/carrieraccountposteitalianecreaterequest.py index 816ca0b1..eefa9b3d 100644 --- a/src/shippo/models/components/carrieraccountposteitalianecreaterequest.py +++ b/src/shippo/models/components/carrieraccountposteitalianecreaterequest.py @@ -31,3 +31,9 @@ class CarrierAccountPosteItalianeCreateRequest(BaseModel): ], pydantic.Field(alias="carrier"), ] = "poste_italiane" + + +try: + CarrierAccountPosteItalianeCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountregistrationstatus.py b/src/shippo/models/components/carrieraccountregistrationstatus.py index d5ba9076..9048a39d 100644 --- a/src/shippo/models/components/carrieraccountregistrationstatus.py +++ b/src/shippo/models/components/carrieraccountregistrationstatus.py @@ -2,12 +2,15 @@ from __future__ import annotations from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class CarrierAccountRegistrationStatusTypedDict(TypedDict): + r"""Carrier account registration status""" + carrier_account: NotRequired[str] object_created: NotRequired[datetime] object_owner: NotRequired[str] @@ -16,6 +19,8 @@ class CarrierAccountRegistrationStatusTypedDict(TypedDict): class CarrierAccountRegistrationStatus(BaseModel): + r"""Carrier account registration status""" + carrier_account: Optional[str] = None object_created: Optional[datetime] = None @@ -25,3 +30,27 @@ class CarrierAccountRegistrationStatus(BaseModel): object_updated: Optional[datetime] = None status: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "carrier_account", + "object_created", + "object_owner", + "object_updated", + "status", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountroyalmailcreaterequest.py b/src/shippo/models/components/carrieraccountroyalmailcreaterequest.py new file mode 100644 index 00000000..1987f901 --- /dev/null +++ b/src/shippo/models/components/carrieraccountroyalmailcreaterequest.py @@ -0,0 +1,33 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .carrieraccountroyalmailcreaterequestparameters import ( + CarrierAccountRoyalMailCreateRequestParameters, + CarrierAccountRoyalMailCreateRequestParametersTypedDict, +) +import pydantic +from pydantic.functional_validators import AfterValidator +from shippo.types import BaseModel +from shippo.utils import validate_const +from typing import Literal +from typing_extensions import Annotated, TypedDict + + +class CarrierAccountRoyalMailCreateRequestTypedDict(TypedDict): + parameters: CarrierAccountRoyalMailCreateRequestParametersTypedDict + carrier: Literal["royal_mail"] + + +class CarrierAccountRoyalMailCreateRequest(BaseModel): + parameters: CarrierAccountRoyalMailCreateRequestParameters + + CARRIER: Annotated[ + Annotated[Literal["royal_mail"], AfterValidator(validate_const("royal_mail"))], + pydantic.Field(alias="carrier"), + ] = "royal_mail" + + +try: + CarrierAccountRoyalMailCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountroyalmailcreaterequestparameters.py b/src/shippo/models/components/carrieraccountroyalmailcreaterequestparameters.py new file mode 100644 index 00000000..bf956c02 --- /dev/null +++ b/src/shippo/models/components/carrieraccountroyalmailcreaterequestparameters.py @@ -0,0 +1,25 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from shippo.types import BaseModel +from typing_extensions import TypedDict + + +class CarrierAccountRoyalMailCreateRequestParametersTypedDict(TypedDict): + client_id: str + r"""The client ID assigned to the user""" + client_secret: str + r"""The secret that corresponds to the supplied client ID""" + partner_token: str + r"""A unique identifier for your OBA account""" + + +class CarrierAccountRoyalMailCreateRequestParameters(BaseModel): + client_id: str + r"""The client ID assigned to the user""" + + client_secret: str + r"""The secret that corresponds to the supplied client ID""" + + partner_token: str + r"""A unique identifier for your OBA account""" diff --git a/src/shippo/models/components/carrieraccountroyalmailsfcreaterequest.py b/src/shippo/models/components/carrieraccountroyalmailsfcreaterequest.py new file mode 100644 index 00000000..03615ac8 --- /dev/null +++ b/src/shippo/models/components/carrieraccountroyalmailsfcreaterequest.py @@ -0,0 +1,35 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .carrieraccountroyalmailsfcreaterequestparameters import ( + CarrierAccountRoyalMailSfCreateRequestParameters, + CarrierAccountRoyalMailSfCreateRequestParametersTypedDict, +) +import pydantic +from pydantic.functional_validators import AfterValidator +from shippo.types import BaseModel +from shippo.utils import validate_const +from typing import Literal +from typing_extensions import Annotated, TypedDict + + +class CarrierAccountRoyalMailSfCreateRequestTypedDict(TypedDict): + parameters: CarrierAccountRoyalMailSfCreateRequestParametersTypedDict + carrier: Literal["royal_mail_sf"] + + +class CarrierAccountRoyalMailSfCreateRequest(BaseModel): + parameters: CarrierAccountRoyalMailSfCreateRequestParameters + + CARRIER: Annotated[ + Annotated[ + Literal["royal_mail_sf"], AfterValidator(validate_const("royal_mail_sf")) + ], + pydantic.Field(alias="carrier"), + ] = "royal_mail_sf" + + +try: + CarrierAccountRoyalMailSfCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountroyalmailsfcreaterequestparameters.py b/src/shippo/models/components/carrieraccountroyalmailsfcreaterequestparameters.py new file mode 100644 index 00000000..1f740b44 --- /dev/null +++ b/src/shippo/models/components/carrieraccountroyalmailsfcreaterequestparameters.py @@ -0,0 +1,13 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from shippo.types import BaseModel +from typing_extensions import TypedDict + + +class CarrierAccountRoyalMailSfCreateRequestParametersTypedDict(TypedDict): + royal_mail_sf_agreements: bool + + +class CarrierAccountRoyalMailSfCreateRequestParameters(BaseModel): + royal_mail_sf_agreements: bool diff --git a/src/shippo/models/components/carrieraccountsendlecreaterequest.py b/src/shippo/models/components/carrieraccountsendlecreaterequest.py deleted file mode 100644 index 7c09d2ec..00000000 --- a/src/shippo/models/components/carrieraccountsendlecreaterequest.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -import pydantic -from pydantic.functional_validators import AfterValidator -from shippo.types import BaseModel -from shippo.utils import validate_const -from typing import Literal -from typing_extensions import Annotated, TypedDict - - -class CarrierAccountSendleCreateRequestParametersTypedDict(TypedDict): - pass - - -class CarrierAccountSendleCreateRequestParameters(BaseModel): - pass - - -class CarrierAccountSendleCreateRequestTypedDict(TypedDict): - parameters: CarrierAccountSendleCreateRequestParametersTypedDict - carrier: Literal["sendle"] - - -class CarrierAccountSendleCreateRequest(BaseModel): - parameters: CarrierAccountSendleCreateRequestParameters - - CARRIER: Annotated[ - Annotated[Literal["sendle"], AfterValidator(validate_const("sendle"))], - pydantic.Field(alias="carrier"), - ] = "sendle" diff --git a/src/shippo/models/components/carrieraccountservicelevel.py b/src/shippo/models/components/carrieraccountservicelevel.py index d02247af..c7b315e0 100644 --- a/src/shippo/models/components/carrieraccountservicelevel.py +++ b/src/shippo/models/components/carrieraccountservicelevel.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -12,12 +13,12 @@ class CarrierAccountServiceLevelTypedDict(TypedDict): name: NotRequired[str] r"""Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. - These names vary depending on the provider.
- See Service Levels. + These names vary depending on the provider. + See [Service Levels](/shippoapi/public-api/service-levels). """ token: NotRequired[str] - r"""Service level token, e.g. `usps_priority` or `fedex_ground`.
- See Service Levels. + r"""Service level token, e.g. `usps_priority` or `fedex_ground`. + See [Service Levels](/shippoapi/public-api/service-levels). """ supports_return_labels: NotRequired[bool] r"""Whether or not the service level supports return labels.""" @@ -29,14 +30,30 @@ class CarrierAccountServiceLevel(BaseModel): name: Optional[str] = None r"""Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. - These names vary depending on the provider.
- See Service Levels. + These names vary depending on the provider. + See [Service Levels](/shippoapi/public-api/service-levels). """ token: Optional[str] = None - r"""Service level token, e.g. `usps_priority` or `fedex_ground`.
- See Service Levels. + r"""Service level token, e.g. `usps_priority` or `fedex_ground`. + See [Service Levels](/shippoapi/public-api/service-levels). """ supports_return_labels: Optional[bool] = None r"""Whether or not the service level supports return labels.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "token", "supports_return_labels"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountupscreaterequest.py b/src/shippo/models/components/carrieraccountupscreaterequest.py index 34028fb1..6416da06 100644 --- a/src/shippo/models/components/carrieraccountupscreaterequest.py +++ b/src/shippo/models/components/carrieraccountupscreaterequest.py @@ -6,8 +6,9 @@ CarrierAccountUPSCreateRequestParametersTypedDict, ) import pydantic +from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import validate_const from typing import Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -25,3 +26,25 @@ class CarrierAccountUPSCreateRequest(BaseModel): ] = "ups" parameters: Optional[CarrierAccountUPSCreateRequestParameters] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["parameters"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + CarrierAccountUPSCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountupscreaterequestparameters.py b/src/shippo/models/components/carrieraccountupscreaterequestparameters.py index 53c040fc..ac4e51b8 100644 --- a/src/shippo/models/components/carrieraccountupscreaterequestparameters.py +++ b/src/shippo/models/components/carrieraccountupscreaterequestparameters.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -83,3 +84,29 @@ class CarrierAccountUPSCreateRequestParameters(BaseModel): pickup_address_street2: Optional[str] = None r"""User's pickup street 2.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "billing_address_street2", + "company", + "email", + "full_name", + "phone", + "pickup_address_same_as_billing_address", + "pickup_address_street2", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrieraccountuspscreaterequest.py b/src/shippo/models/components/carrieraccountuspscreaterequest.py index 4f9698cc..4d7fca9a 100644 --- a/src/shippo/models/components/carrieraccountuspscreaterequest.py +++ b/src/shippo/models/components/carrieraccountuspscreaterequest.py @@ -29,3 +29,9 @@ class CarrierAccountUSPSCreateRequest(BaseModel): Annotated[Literal["usps"], AfterValidator(validate_const("usps"))], pydantic.Field(alias="carrier"), ] = "usps" + + +try: + CarrierAccountUSPSCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/carrieraccountwithextrainfo.py b/src/shippo/models/components/carrieraccountwithextrainfo.py index 50448e09..e31c5ea0 100644 --- a/src/shippo/models/components/carrieraccountwithextrainfo.py +++ b/src/shippo/models/components/carrieraccountwithextrainfo.py @@ -14,7 +14,8 @@ UPSConnectExistingOwnAccountParametersTypedDict, ) from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Any, Dict, List, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -68,11 +69,61 @@ class Authentication(BaseModel): status: Optional[CarrierAccountWithExtraInfoStatus] = None r"""Current authentication status. Possible values: 'disconnected' (authorization lost, reconnect needed), 'connected' (authorized and active), 'authorization_pending' (awaiting initial authorization flow).""" + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["type", "status"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +class Policy(str, Enum): + r"""Policy to indicate if the Account needs multi-factor verification.""" + + REQUIRED = "required" + NOT_REQUIRED = "not-required" + + +class VerificationTypedDict(TypedDict): + policy: NotRequired[Policy] + r"""Policy to indicate if the Account needs multi-factor verification.""" + + +class Verification(BaseModel): + policy: Optional[Policy] = None + r"""Policy to indicate if the Account needs multi-factor verification.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["policy"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class ObjectInfoTypedDict(TypedDict): r"""Holds internal state relevant to users.""" authentication: NotRequired[AuthenticationTypedDict] + verification: NotRequired[VerificationTypedDict] class ObjectInfo(BaseModel): @@ -80,16 +131,34 @@ class ObjectInfo(BaseModel): authentication: Optional[Authentication] = None + verification: Optional[Verification] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["authentication", "verification"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class CarrierAccountWithExtraInfoTypedDict(TypedDict): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: NotRequired[bool] r"""Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly @@ -97,7 +166,7 @@ class CarrierAccountWithExtraInfoTypedDict(TypedDict): """ parameters: NotRequired[CarrierAccountWithExtraInfoParametersTypedDict] carrier_name: NotRequired[Any] - r"""Carrier name, see Carriers
""" + r"""Carrier name, see [Carriers](/shippoapi/public-api/carriers)""" is_shippo_account: NotRequired[bool] metadata: NotRequired[str] object_id: NotRequired[str] @@ -113,14 +182,14 @@ class CarrierAccountWithExtraInfoTypedDict(TypedDict): class CarrierAccountWithExtraInfo(BaseModel): account_id: str - r"""Unique identifier of the account. Please check the carrier accounts tutorial - page for the `account_id` per carrier.
+ r"""Unique identifier of the account. Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) + page for the `account_id` per carrier. To protect account information, this field will be masked in any API response. """ carrier: str - r"""Carrier token, see Carriers
- Please check the carrier accounts tutorial page for all supported carriers. + r"""Carrier token, see [Carriers](/shippoapi/public-api/carriers) + Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for all supported carriers. """ active: Optional[bool] = None @@ -131,7 +200,7 @@ class CarrierAccountWithExtraInfo(BaseModel): parameters: Optional[CarrierAccountWithExtraInfoParameters] = None carrier_name: Optional[Any] = None - r"""Carrier name, see Carriers
""" + r"""Carrier name, see [Carriers](/shippoapi/public-api/carriers)""" is_shippo_account: Optional[bool] = None @@ -150,3 +219,32 @@ class CarrierAccountWithExtraInfo(BaseModel): object_info: Optional[ObjectInfo] = None r"""Holds internal state relevant to users.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "active", + "parameters", + "carrier_name", + "is_shippo_account", + "metadata", + "object_id", + "object_owner", + "service_levels", + "test", + "object_info", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrierparceltemplate.py b/src/shippo/models/components/carrierparceltemplate.py index dba6a839..209f8cd9 100644 --- a/src/shippo/models/components/carrierparceltemplate.py +++ b/src/shippo/models/components/carrierparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations from .distanceunitenum import DistanceUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -50,3 +51,30 @@ class CarrierParcelTemplate(BaseModel): width: Optional[str] = None r"""The width of the package, in units specified by the distance_unit attribute""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "carrier", + "distance_unit", + "height", + "is_variable_dimensions", + "length", + "name", + "token", + "width", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carrierparceltemplatelist.py b/src/shippo/models/components/carrierparceltemplatelist.py index f0f57041..68df40ca 100644 --- a/src/shippo/models/components/carrierparceltemplatelist.py +++ b/src/shippo/models/components/carrierparceltemplatelist.py @@ -2,14 +2,35 @@ from __future__ import annotations from .carrierparceltemplate import CarrierParcelTemplate, CarrierParcelTemplateTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class CarrierParcelTemplateListTypedDict(TypedDict): + r"""List of carrier parcel templates""" + results: NotRequired[List[CarrierParcelTemplateTypedDict]] class CarrierParcelTemplateList(BaseModel): + r"""List of carrier parcel templates""" + results: Optional[List[CarrierParcelTemplate]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/carriersenum.py b/src/shippo/models/components/carriersenum.py index d898552b..6b7d7c20 100644 --- a/src/shippo/models/components/carriersenum.py +++ b/src/shippo/models/components/carriersenum.py @@ -19,7 +19,6 @@ class CarriersEnum(str, Enum): | boxberry | Boxberry| | bring | Bring (also used for Posten Norge)| | canada_post | Canada Post| - | cdl | CDL| | chronopost | Chronopost| | collect_plus | CollectPlus| | correios_br | CorreiosBR| @@ -56,9 +55,9 @@ class CarriersEnum(str, Enum): | posti | Posti| | purolator | Purolator| | royal_mail | Royal Mail| + | royal_mail_sf | Royal Mail Storefeeder| | rr_donnelley | ePost Global| | russian_post | Russian Post| - | sendle | Sendle| | skypostal | SkyPostal| | stuart | Stuart| | swyft | Swyft| @@ -81,7 +80,6 @@ class CarriersEnum(str, Enum): BOXBERRY = "boxberry" BRING = "bring" CANADA_POST = "canada_post" - CDL = "cdl" CHRONOPOST = "chronopost" COLLECT_PLUS = "collect_plus" CORREIOS_BR = "correios_br" @@ -118,9 +116,9 @@ class CarriersEnum(str, Enum): POSTI = "posti" PUROLATOR = "purolator" ROYAL_MAIL = "royal_mail" + ROYAL_MAIL_SF = "royal_mail_sf" RR_DONNELLEY = "rr_donnelley" RUSSIAN_POST = "russian_post" - SENDLE = "sendle" SKYPOSTAL = "skypostal" STUART = "stuart" SWYFT = "swyft" diff --git a/src/shippo/models/components/cod.py b/src/shippo/models/components/cod.py index ae03b748..f7a9b7a9 100644 --- a/src/shippo/models/components/cod.py +++ b/src/shippo/models/components/cod.py @@ -2,14 +2,15 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class PaymentMethod(str, Enum): r"""Secured funds include money orders, certified cheques and others (see - UPS for details). + [UPS](https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html) for details). If no payment_method inputted the value defaults to \"ANY\".) """ @@ -27,7 +28,7 @@ class CodTypedDict(TypedDict): r"""Currency for the amount to be collected. Currently only USD is supported for UPS.""" payment_method: NotRequired[PaymentMethod] r"""Secured funds include money orders, certified cheques and others (see - UPS for details). + [UPS](https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html) for details). If no payment_method inputted the value defaults to \"ANY\".) """ @@ -43,6 +44,22 @@ class Cod(BaseModel): payment_method: Optional[PaymentMethod] = None r"""Secured funds include money orders, certified cheques and others (see - UPS for details). + [UPS](https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html) for details). If no payment_method inputted the value defaults to \"ANY\".) """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["amount", "currency", "payment_method"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/connectexistingownaccountrequest.py b/src/shippo/models/components/connectexistingownaccountrequest.py index f63fc1ea..9e1592b4 100644 --- a/src/shippo/models/components/connectexistingownaccountrequest.py +++ b/src/shippo/models/components/connectexistingownaccountrequest.py @@ -9,7 +9,8 @@ UPSConnectExistingOwnAccountParameters, UPSConnectExistingOwnAccountParametersTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Any, Dict, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -55,3 +56,19 @@ class ConnectExistingOwnAccountRequest(BaseModel): metadata: Optional[str] = None test: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["active", "metadata", "test"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/corerate.py b/src/shippo/models/components/corerate.py index 2009c4dc..7085b70e 100644 --- a/src/shippo/models/components/corerate.py +++ b/src/shippo/models/components/corerate.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -13,11 +14,11 @@ class CoreRateTypedDict(TypedDict): r"""Final Rate price, expressed in the currency used in the recipient's country.""" currency: NotRequired[str] r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: NotRequired[str] r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ object_id: NotRequired[str] r"""Unique identifier of the Rate object.""" @@ -28,12 +29,12 @@ class CoreRateTypedDict(TypedDict): servicelevel_name: NotRequired[str] r"""Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), - along with other properties. These names vary depending on the provider.
- See Service Levels. + along with other properties. These names vary depending on the provider. + See [Service Levels](/shippoapi/public-api/service-levels). """ servicelevel_token: NotRequired[str] r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ @@ -46,12 +47,12 @@ class CoreRate(BaseModel): currency: Optional[str] = None r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: Optional[str] = None r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ object_id: Optional[str] = None @@ -66,11 +67,39 @@ class CoreRate(BaseModel): servicelevel_name: Optional[str] = None r"""Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), - along with other properties. These names vary depending on the provider.
- See Service Levels. + along with other properties. These names vary depending on the provider. + See [Service Levels](/shippoapi/public-api/service-levels). """ servicelevel_token: Optional[str] = None r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "amount", + "amount_local", + "currency", + "currency_local", + "object_id", + "provider", + "carrier_account", + "servicelevel_name", + "servicelevel_token", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customerreference.py b/src/shippo/models/components/customerreference.py index 23166163..6f423e2e 100644 --- a/src/shippo/models/components/customerreference.py +++ b/src/shippo/models/components/customerreference.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -17,6 +18,11 @@ class CustomerReferenceTypedDict(TypedDict): value: NotRequired[str] r"""Optional text to be printed on the shipping label for customer reference. Up to 40 characters. If this is provided, reference_1 will be ignored. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | """ ref_sort: NotRequired[int] r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" @@ -34,7 +40,28 @@ class CustomerReference(BaseModel): value: Optional[str] = None r"""Optional text to be printed on the shipping label for customer reference. Up to 40 characters. If this is provided, reference_1 will be ignored. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | """ ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsdeclaration.py b/src/shippo/models/components/customsdeclaration.py index d172cd91..6a7c2d23 100644 --- a/src/shippo/models/components/customsdeclaration.py +++ b/src/shippo/models/components/customsdeclaration.py @@ -12,7 +12,8 @@ from .objectstateenum import ObjectStateEnum from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -44,6 +45,22 @@ class CustomsDeclarationAddress(BaseModel): country: Optional[str] = None r"""Country ISO code of account number to be billed.""" + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "zip", "country"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class CustomsDeclarationDutiesPayorTypedDict(TypedDict): r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" @@ -66,6 +83,22 @@ class CustomsDeclarationDutiesPayor(BaseModel): address: Optional[CustomsDeclarationAddress] = None + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["account", "type", "address"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class CustomsDeclarationTypedDict(TypedDict): certify: bool @@ -76,38 +109,45 @@ class CustomsDeclarationTypedDict(TypedDict): """ contents_type: str r"""Type of goods of the shipment. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-contents-type) """ items: List[str] r"""Distinct Parcel content items as Customs Items object_ids.""" non_delivery_option: str r"""Indicates how the carrier should proceed in case the shipment can't be delivered. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-non-delivery-option) """ aes_itn: NotRequired[str] - r"""**required if eel_pfc is `AES_ITN`**
+ r"""**required if eel_pfc is `AES_ITN`** + AES / ITN reference of the shipment. """ b13a_filing_option: NotRequired[str] r"""B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS). - More information on reporting commercial exports from Canada. - Allowed values available here + [More information on reporting commercial exports from Canada.](https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html) + Allowed values available [here](/shippoapi/public-api/customs-declaration-b13a-filing-option) """ b13a_number: NotRequired[str] - r"""**must be provided if and only if b13a_filing_option is provided**
- Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;
- the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;
- or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. + r"""**must be provided if and only if b13a_filing_option is provided** + + Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. """ certificate: NotRequired[str] r"""Certificate reference of the shipment.""" commercial_invoice: NotRequired[bool] contents_explanation: NotRequired[str] - r"""**required if contents_type is `OTHER`**
+ r"""**required if contents_type is `OTHER`** + Explanation of the type of goods of the shipment. """ disclaimer: NotRequired[str] - r"""Disclaimer for the shipment and customs information that have been provided.""" + r"""Disclaimer for the shipment and customs information that have been provided. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 554 characters | + """ duties_payor: NotRequired[CustomsDeclarationDutiesPayorTypedDict] r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" exporter_identification: NotRequired[CustomsExporterIdentificationTypedDict] @@ -133,13 +173,19 @@ class CustomsDeclarationTypedDict(TypedDict): eel_pfc: NotRequired[str] r"""EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most other shipments from the US, `NOEEI_30_37_a` is applicable. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-eelpfc) """ incoterm: NotRequired[str] r"""The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. - eDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK. + eDAP is available for DPD UK only. DAP is available for DHL Express, FedEx, and DPD UK. If expecting DAP for other carriers, please use DDU. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-incoterm) + Carrier-specific restrictions are in the table below. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Must be one of DDP, DDU, FCA, DAP | """ invoiced_charges: NotRequired[CustomsInvoicedChargesTypedDict] r"""Additional invoiced charges to be shown on the Customs Declaration Commercial Invoice.""" @@ -168,7 +214,7 @@ class CustomsDeclaration(BaseModel): contents_type: str r"""Type of goods of the shipment. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-contents-type) """ items: List[str] @@ -176,25 +222,25 @@ class CustomsDeclaration(BaseModel): non_delivery_option: str r"""Indicates how the carrier should proceed in case the shipment can't be delivered. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-non-delivery-option) """ aes_itn: Optional[str] = None - r"""**required if eel_pfc is `AES_ITN`**
+ r"""**required if eel_pfc is `AES_ITN`** + AES / ITN reference of the shipment. """ b13a_filing_option: Optional[str] = None r"""B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS). - More information on reporting commercial exports from Canada. - Allowed values available here + [More information on reporting commercial exports from Canada.](https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html) + Allowed values available [here](/shippoapi/public-api/customs-declaration-b13a-filing-option) """ b13a_number: Optional[str] = None - r"""**must be provided if and only if b13a_filing_option is provided**
- Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;
- the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;
- or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. + r"""**must be provided if and only if b13a_filing_option is provided** + + Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. """ certificate: Optional[str] = None @@ -203,12 +249,19 @@ class CustomsDeclaration(BaseModel): commercial_invoice: Optional[bool] = None contents_explanation: Optional[str] = None - r"""**required if contents_type is `OTHER`**
+ r"""**required if contents_type is `OTHER`** + Explanation of the type of goods of the shipment. """ disclaimer: Optional[str] = None - r"""Disclaimer for the shipment and customs information that have been provided.""" + r"""Disclaimer for the shipment and customs information that have been provided. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 554 characters | + """ duties_payor: Optional[CustomsDeclarationDutiesPayor] = None r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" @@ -245,14 +298,20 @@ class CustomsDeclaration(BaseModel): eel_pfc: Optional[str] = None r"""EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most other shipments from the US, `NOEEI_30_37_a` is applicable. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-eelpfc) """ incoterm: Optional[str] = None r"""The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. - eDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK. + eDAP is available for DPD UK only. DAP is available for DHL Express, FedEx, and DPD UK. If expecting DAP for other carriers, please use DDU. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-incoterm) + Carrier-specific restrictions are in the table below. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Must be one of DDP, DDU, FCA, DAP | """ invoiced_charges: Optional[CustomsInvoicedCharges] = None @@ -275,3 +334,48 @@ class CustomsDeclaration(BaseModel): test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "aes_itn", + "b13a_filing_option", + "b13a_number", + "certificate", + "commercial_invoice", + "contents_explanation", + "disclaimer", + "duties_payor", + "exporter_identification", + "exporter_reference", + "importer_reference", + "is_vat_collected", + "invoice", + "license", + "metadata", + "notes", + "address_importer", + "eel_pfc", + "incoterm", + "invoiced_charges", + "object_created", + "object_id", + "object_owner", + "object_state", + "object_updated", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsdeclarationb13afilingoptionenum.py b/src/shippo/models/components/customsdeclarationb13afilingoptionenum.py index 9a1745b4..8195f0f9 100644 --- a/src/shippo/models/components/customsdeclarationb13afilingoptionenum.py +++ b/src/shippo/models/components/customsdeclarationb13afilingoptionenum.py @@ -6,8 +6,8 @@ class CustomsDeclarationB13AFilingOptionEnum(str, Enum): r"""B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS). - More information on reporting commercial exports from Canada. - Allowed values available here + [More information on reporting commercial exports from Canada.](https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html) + Allowed values available [here](/shippoapi/public-api/customs-declaration-b13a-filing-option) """ FILED_ELECTRONICALLY = "FILED_ELECTRONICALLY" diff --git a/src/shippo/models/components/customsdeclarationcontentstypeenum.py b/src/shippo/models/components/customsdeclarationcontentstypeenum.py index c941b3cf..c73352fa 100644 --- a/src/shippo/models/components/customsdeclarationcontentstypeenum.py +++ b/src/shippo/models/components/customsdeclarationcontentstypeenum.py @@ -6,7 +6,7 @@ class CustomsDeclarationContentsTypeEnum(str, Enum): r"""Type of goods of the shipment. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-contents-type) """ DOCUMENTS = "DOCUMENTS" diff --git a/src/shippo/models/components/customsdeclarationcreaterequest.py b/src/shippo/models/components/customsdeclarationcreaterequest.py index 3794dc49..93ddd706 100644 --- a/src/shippo/models/components/customsdeclarationcreaterequest.py +++ b/src/shippo/models/components/customsdeclarationcreaterequest.py @@ -20,7 +20,8 @@ CustomsItemCreateRequestTypedDict, ) from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -52,6 +53,22 @@ class CustomsDeclarationCreateRequestAddress(BaseModel): country: Optional[str] = None r"""Country ISO code of account number to be billed.""" + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "zip", "country"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class CustomsDeclarationCreateRequestDutiesPayorTypedDict(TypedDict): r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" @@ -74,6 +91,22 @@ class CustomsDeclarationCreateRequestDutiesPayor(BaseModel): address: Optional[CustomsDeclarationCreateRequestAddress] = None + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["account", "type", "address"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class CustomsDeclarationCreateRequestTypedDict(TypedDict): certify: bool @@ -86,25 +119,32 @@ class CustomsDeclarationCreateRequestTypedDict(TypedDict): items: List[CustomsItemCreateRequestTypedDict] non_delivery_option: CustomsDeclarationNonDeliveryOptionEnum aes_itn: NotRequired[str] - r"""**required if eel_pfc is `AES_ITN`**
+ r"""**required if eel_pfc is `AES_ITN`** + AES / ITN reference of the shipment. """ b13a_filing_option: NotRequired[CustomsDeclarationB13AFilingOptionEnum] b13a_number: NotRequired[str] - r"""**must be provided if and only if b13a_filing_option is provided**
- Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;
- the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;
- or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. + r"""**must be provided if and only if b13a_filing_option is provided** + + Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. """ certificate: NotRequired[str] r"""Certificate reference of the shipment.""" commercial_invoice: NotRequired[bool] contents_explanation: NotRequired[str] - r"""**required if contents_type is `OTHER`**
+ r"""**required if contents_type is `OTHER`** + Explanation of the type of goods of the shipment. """ disclaimer: NotRequired[str] - r"""Disclaimer for the shipment and customs information that have been provided.""" + r"""Disclaimer for the shipment and customs information that have been provided. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 554 characters | + """ duties_payor: NotRequired[CustomsDeclarationCreateRequestDutiesPayorTypedDict] r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" exporter_identification: NotRequired[CustomsExporterIdentificationTypedDict] @@ -148,17 +188,17 @@ class CustomsDeclarationCreateRequest(BaseModel): non_delivery_option: CustomsDeclarationNonDeliveryOptionEnum aes_itn: Optional[str] = None - r"""**required if eel_pfc is `AES_ITN`**
+ r"""**required if eel_pfc is `AES_ITN`** + AES / ITN reference of the shipment. """ b13a_filing_option: Optional[CustomsDeclarationB13AFilingOptionEnum] = None b13a_number: Optional[str] = None - r"""**must be provided if and only if b13a_filing_option is provided**
- Represents:
the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;
- the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;
- or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. + r"""**must be provided if and only if b13a_filing_option is provided** + + Represents the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`; the Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`; or the Exemption Number when b13a_filing_option is `NOT_REQUIRED`. """ certificate: Optional[str] = None @@ -167,12 +207,19 @@ class CustomsDeclarationCreateRequest(BaseModel): commercial_invoice: Optional[bool] = None contents_explanation: Optional[str] = None - r"""**required if contents_type is `OTHER`**
+ r"""**required if contents_type is `OTHER`** + Explanation of the type of goods of the shipment. """ disclaimer: Optional[str] = None - r"""Disclaimer for the shipment and customs information that have been provided.""" + r"""Disclaimer for the shipment and customs information that have been provided. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 554 characters | + """ duties_payor: Optional[CustomsDeclarationCreateRequestDutiesPayor] = None r"""Specifies who will pay the duties for the shipment. Only accepted for FedEx shipments.""" @@ -211,3 +258,42 @@ class CustomsDeclarationCreateRequest(BaseModel): incoterm: Optional[CustomsDeclarationIncotermEnum] = None test: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "aes_itn", + "b13a_filing_option", + "b13a_number", + "certificate", + "commercial_invoice", + "contents_explanation", + "disclaimer", + "duties_payor", + "exporter_identification", + "exporter_reference", + "importer_reference", + "is_vat_collected", + "invoice", + "license", + "metadata", + "notes", + "address_importer", + "eel_pfc", + "incoterm", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsdeclarationeelpfcenum.py b/src/shippo/models/components/customsdeclarationeelpfcenum.py index e22c5779..5569a340 100644 --- a/src/shippo/models/components/customsdeclarationeelpfcenum.py +++ b/src/shippo/models/components/customsdeclarationeelpfcenum.py @@ -7,7 +7,7 @@ class CustomsDeclarationEelPfcEnum(str, Enum): r"""EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most other shipments from the US, `NOEEI_30_37_a` is applicable. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-eelpfc) """ NOEEI_30_37_A = "NOEEI_30_37_a" diff --git a/src/shippo/models/components/customsdeclarationincotermenum.py b/src/shippo/models/components/customsdeclarationincotermenum.py index f92fc9c1..0990decc 100644 --- a/src/shippo/models/components/customsdeclarationincotermenum.py +++ b/src/shippo/models/components/customsdeclarationincotermenum.py @@ -6,9 +6,15 @@ class CustomsDeclarationIncotermEnum(str, Enum): r"""The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. - eDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK. + eDAP is available for DPD UK only. DAP is available for DHL Express, FedEx, and DPD UK. If expecting DAP for other carriers, please use DDU. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-incoterm) + Carrier-specific restrictions are in the table below. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Must be one of DDP, DDU, FCA, DAP | """ DDP = "DDP" diff --git a/src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py b/src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py index cb01aff5..2e058ef7 100644 --- a/src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py +++ b/src/shippo/models/components/customsdeclarationnondeliveryoptionenum.py @@ -6,7 +6,7 @@ class CustomsDeclarationNonDeliveryOptionEnum(str, Enum): r"""Indicates how the carrier should proceed in case the shipment can't be delivered. - Allowed values available here + Allowed values available [here](/shippoapi/public-api/customs-declaration-non-delivery-option) """ ABANDON = "ABANDON" diff --git a/src/shippo/models/components/customsdeclarationpaginatedlist.py b/src/shippo/models/components/customsdeclarationpaginatedlist.py index c4a66b30..cb5ee009 100644 --- a/src/shippo/models/components/customsdeclarationpaginatedlist.py +++ b/src/shippo/models/components/customsdeclarationpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .customsdeclaration import CustomsDeclaration, CustomsDeclarationTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class CustomsDeclarationPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[CustomsDeclaration]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsexporteridentification.py b/src/shippo/models/components/customsexporteridentification.py index 2efbf4be..5167c7b4 100644 --- a/src/shippo/models/components/customsexporteridentification.py +++ b/src/shippo/models/components/customsexporteridentification.py @@ -5,7 +5,8 @@ CustomsTaxIdentification, CustomsTaxIdentificationTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -16,7 +17,7 @@ class CustomsExporterIdentificationTypedDict(TypedDict): eori_number: NotRequired[str] r"""Economic Operators' Registration and Identification (EORI) number. Must start with a 2 character country code followed by a 6-17 character alphanumeric identifier (e.g. PL1234567890ABCDE). - More information on EORI. + [More information on EORI.](https://ec.europa.eu/taxation_customs/business/customs-procedures/general-overview/economic-operators-registration-identification-number-eori_en) """ tax_id: NotRequired[CustomsTaxIdentificationTypedDict] r"""Tax identification that may be required to ship in certain countries. Typically used to assess duties on @@ -30,10 +31,26 @@ class CustomsExporterIdentification(BaseModel): eori_number: Optional[str] = None r"""Economic Operators' Registration and Identification (EORI) number. Must start with a 2 character country code followed by a 6-17 character alphanumeric identifier (e.g. PL1234567890ABCDE). - More information on EORI. + [More information on EORI.](https://ec.europa.eu/taxation_customs/business/customs-procedures/general-overview/economic-operators-registration-identification-number-eori_en) """ tax_id: Optional[CustomsTaxIdentification] = None r"""Tax identification that may be required to ship in certain countries. Typically used to assess duties on goods that are crossing a border. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["eori_number", "tax_id"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsinvoicedcharges.py b/src/shippo/models/components/customsinvoicedcharges.py index 6f196485..2d65ce37 100644 --- a/src/shippo/models/components/customsinvoicedcharges.py +++ b/src/shippo/models/components/customsinvoicedcharges.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -38,3 +39,21 @@ class CustomsInvoicedCharges(BaseModel): other_fees: Optional[str] = None r"""Other fees paid by the buyer.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["total_shipping", "total_taxes", "total_duties", "other_fees"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsitem.py b/src/shippo/models/components/customsitem.py index 062549b9..b9e2a18b 100644 --- a/src/shippo/models/components/customsitem.py +++ b/src/shippo/models/components/customsitem.py @@ -4,7 +4,8 @@ from .objectstateenum import ObjectStateEnum from .weightunitenum import WeightUnitEnum from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -18,14 +19,14 @@ class CustomsItemTypedDict(TypedDict): r"""Total weight of this item, i.e. quantity * weight per item.""" origin_country: str r"""Country of origin of the item. Example: `US` or `DE`. - All accepted values can be found on the Official ISO Website. + All accepted values can be found on the [Official ISO Website](http://www.iso.org/). """ quantity: int r"""Quantity of this item in the shipment you send. Must be greater than 0.""" value_amount: str r"""Total value of this item, i.e. quantity * value per item.""" value_currency: str - r"""Currency used for value_amount. The official ISO 4217 + r"""Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ eccn_ear99: NotRequired[str] @@ -66,7 +67,7 @@ class CustomsItem(BaseModel): origin_country: str r"""Country of origin of the item. Example: `US` or `DE`. - All accepted values can be found on the Official ISO Website. + All accepted values can be found on the [Official ISO Website](http://www.iso.org/). """ quantity: int @@ -76,7 +77,7 @@ class CustomsItem(BaseModel): r"""Total value of this item, i.e. quantity * value per item.""" value_currency: str - r"""Currency used for value_amount. The official ISO 4217 + r"""Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ @@ -114,3 +115,33 @@ class CustomsItem(BaseModel): test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "eccn_ear99", + "metadata", + "sku_code", + "hs_code", + "tariff_number", + "object_created", + "object_id", + "object_owner", + "object_state", + "object_updated", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsitemcreaterequest.py b/src/shippo/models/components/customsitemcreaterequest.py index 7406ca49..dde7abbb 100644 --- a/src/shippo/models/components/customsitemcreaterequest.py +++ b/src/shippo/models/components/customsitemcreaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -16,14 +17,14 @@ class CustomsItemCreateRequestTypedDict(TypedDict): r"""Total weight of this item, i.e. quantity * weight per item.""" origin_country: str r"""Country of origin of the item. Example: `US` or `DE`. - All accepted values can be found on the Official ISO Website. + All accepted values can be found on the [Official ISO Website](http://www.iso.org/). """ quantity: int r"""Quantity of this item in the shipment you send. Must be greater than 0.""" value_amount: str r"""Total value of this item, i.e. quantity * value per item.""" value_currency: str - r"""Currency used for value_amount. The official ISO 4217 + r"""Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ eccn_ear99: NotRequired[str] @@ -52,7 +53,7 @@ class CustomsItemCreateRequest(BaseModel): origin_country: str r"""Country of origin of the item. Example: `US` or `DE`. - All accepted values can be found on the Official ISO Website. + All accepted values can be found on the [Official ISO Website](http://www.iso.org/). """ quantity: int @@ -62,7 +63,7 @@ class CustomsItemCreateRequest(BaseModel): r"""Total value of this item, i.e. quantity * value per item.""" value_currency: str - r"""Currency used for value_amount. The official ISO 4217 + r"""Currency used for value_amount. The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ @@ -82,3 +83,21 @@ class CustomsItemCreateRequest(BaseModel): tariff_number: Optional[str] = None r"""The tariff number of the item. If `tariff_number` is not provided, `hs_code` will be used. If both `hs_code` and `tariff_number` are provided, `tariff_number` will be used. 12 character limit.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["eccn_ear99", "metadata", "sku_code", "hs_code", "tariff_number"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customsitempaginatedlist.py b/src/shippo/models/components/customsitempaginatedlist.py index d2cefe28..83cdbb93 100644 --- a/src/shippo/models/components/customsitempaginatedlist.py +++ b/src/shippo/models/components/customsitempaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .customsitem import CustomsItem, CustomsItemTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class CustomsItemPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[CustomsItem]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/customstaxidentification.py b/src/shippo/models/components/customstaxidentification.py index d0ff2e8c..64734cd5 100644 --- a/src/shippo/models/components/customstaxidentification.py +++ b/src/shippo/models/components/customstaxidentification.py @@ -2,7 +2,8 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -52,3 +53,19 @@ class CustomsTaxIdentification(BaseModel): * `IOSS` - Import One-Stop Shop * `ARN` - Australian Taxation Office Reference Number """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["number", "type"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/dangerousgoodsbiologicalmaterial.py b/src/shippo/models/components/dangerousgoodsbiologicalmaterial.py index cbc3952c..c153b9a5 100644 --- a/src/shippo/models/components/dangerousgoodsbiologicalmaterial.py +++ b/src/shippo/models/components/dangerousgoodsbiologicalmaterial.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -18,3 +19,19 @@ class DangerousGoodsBiologicalMaterial(BaseModel): contains: Optional[bool] = None r"""Indicates if the shipment contains biological material.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["contains"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/dangerousgoodslithiumbatteries.py b/src/shippo/models/components/dangerousgoodslithiumbatteries.py index 31e8d4cd..5222df39 100644 --- a/src/shippo/models/components/dangerousgoodslithiumbatteries.py +++ b/src/shippo/models/components/dangerousgoodslithiumbatteries.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -18,3 +19,19 @@ class DangerousGoodsLithiumBatteries(BaseModel): contains: Optional[bool] = None r"""Indicates if the shipment contains lithium batteries.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["contains"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/dangerousgoodsobject.py b/src/shippo/models/components/dangerousgoodsobject.py index ee8e383f..c35fc04d 100644 --- a/src/shippo/models/components/dangerousgoodsobject.py +++ b/src/shippo/models/components/dangerousgoodsobject.py @@ -9,7 +9,8 @@ DangerousGoodsLithiumBatteries, DangerousGoodsLithiumBatteriesTypedDict, ) -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -17,7 +18,7 @@ class DangerousGoodsObjectTypedDict(TypedDict): r"""Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents are provided, only certain USPS service levels will be eligible. For more information, see our - guide on hazardous or dangerous materials shipping. + [guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). """ contains: NotRequired[bool] @@ -31,7 +32,7 @@ class DangerousGoodsObjectTypedDict(TypedDict): class DangerousGoodsObject(BaseModel): r"""Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents are provided, only certain USPS service levels will be eligible. For more information, see our - guide on hazardous or dangerous materials shipping. + [guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). """ contains: Optional[bool] = None @@ -42,3 +43,19 @@ class DangerousGoodsObject(BaseModel): lithium_batteries: Optional[DangerousGoodsLithiumBatteries] = None r"""Container for specifying the presence of lithium batteries.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["contains", "biological_material", "lithium_batteries"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/defaultparceltemplate.py b/src/shippo/models/components/defaultparceltemplate.py index 579087f2..f6a6b1e7 100644 --- a/src/shippo/models/components/defaultparceltemplate.py +++ b/src/shippo/models/components/defaultparceltemplate.py @@ -2,14 +2,35 @@ from __future__ import annotations from .userparceltemplate import UserParcelTemplate, UserParcelTemplateTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class DefaultParcelTemplateTypedDict(TypedDict): + r"""Default parcel template""" + result: NotRequired[UserParcelTemplateTypedDict] class DefaultParcelTemplate(BaseModel): + r"""Default parcel template""" + result: Optional[UserParcelTemplate] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["result"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/defaultparceltemplateupdaterequest.py b/src/shippo/models/components/defaultparceltemplateupdaterequest.py index 3ffebb37..166f1b0b 100644 --- a/src/shippo/models/components/defaultparceltemplateupdaterequest.py +++ b/src/shippo/models/components/defaultparceltemplateupdaterequest.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -12,3 +13,19 @@ class DefaultParcelTemplateUpdateRequestTypedDict(TypedDict): class DefaultParcelTemplateUpdateRequest(BaseModel): object_id: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["object_id"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/departmentnumber.py b/src/shippo/models/components/departmentnumber.py index d6bb26d3..e3e4cf01 100644 --- a/src/shippo/models/components/departmentnumber.py +++ b/src/shippo/models/components/departmentnumber.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -15,7 +16,13 @@ class DepartmentNumberTypedDict(TypedDict): this property. """ value: NotRequired[str] - r"""Optional text to be printed on the shipping label for department number. Up to 40 characters.""" + r"""Optional text to be printed on the shipping label for department number. Up to 40 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ ref_sort: NotRequired[int] r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" @@ -30,7 +37,29 @@ class DepartmentNumber(BaseModel): """ value: Optional[str] = None - r"""Optional text to be printed on the shipping label for department number. Up to 40 characters.""" + r"""Optional text to be printed on the shipping label for department number. Up to 40 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/dryice.py b/src/shippo/models/components/dryice.py index 41897de5..5a88bb23 100644 --- a/src/shippo/models/components/dryice.py +++ b/src/shippo/models/components/dryice.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -23,3 +24,19 @@ class DryIce(BaseModel): weight: Optional[str] = None r"""Mandatory. Units must be in Kilograms. Cannot be greater than package weight.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["contains_dry_ice", "weight"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/fedexconnectexistingownaccountparameters.py b/src/shippo/models/components/fedexconnectexistingownaccountparameters.py index 6c404a37..057cadef 100644 --- a/src/shippo/models/components/fedexconnectexistingownaccountparameters.py +++ b/src/shippo/models/components/fedexconnectexistingownaccountparameters.py @@ -1,11 +1,38 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel -from typing_extensions import TypedDict +from datetime import date +from decimal import Decimal +from enum import Enum +from pydantic import model_serializer +from pydantic.functional_serializers import PlainSerializer +from pydantic.functional_validators import BeforeValidator +from shippo.types import BaseModel, UNSET_SENTINEL +from shippo.utils import serialize_decimal, validate_decimal +from typing import Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class VerificationOption(str, Enum): + r"""Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE).""" + + SMS = "SMS" + EMAIL = "EMAIL" + CALL = "CALL" + INVOICE = "INVOICE" class FedExConnectExistingOwnAccountParametersTypedDict(TypedDict): + r"""In the case of masked fields, they should be handled carefully. + + Fields also must consider: + - Not providing a *fields* in parameters will not result in a change to any configured value + - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value + - Providing *field* with null will clear the configured value + - Providing *field* with any other value will change the configured value and may affect the behavior of the account. + + """ + first_name: str r"""First name of the account holder""" last_name: str @@ -22,9 +49,33 @@ class FedExConnectExistingOwnAccountParametersTypedDict(TypedDict): r"""Zip code of the account holder""" from_address_country_iso2: str r"""Country of the account holder""" + use_multi_factor_registration: bool + r"""Must be true. FedEx accounts are registered using the multi-factor registration workflow.""" + verification_option: VerificationOption + r"""Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE).""" + verification_pin: NotRequired[str] + r"""(optional) The PIN to verify the account.""" + verification_invoice_number: NotRequired[str] + r"""(optional) The invoice number to verify the account.""" + verification_invoice_amount: NotRequired[Decimal] + r"""(optional) The invoice amount to verify the account.""" + verification_invoice_date: NotRequired[date] + r"""(optional) The invoice date to verify the account. In the format `YYYY-MM-DD`.""" + verification_invoice_currency: NotRequired[str] + r"""(optional) The invoice currency to verify the account.""" class FedExConnectExistingOwnAccountParameters(BaseModel): + r"""In the case of masked fields, they should be handled carefully. + + Fields also must consider: + - Not providing a *fields* in parameters will not result in a change to any configured value + - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value + - Providing *field* with null will clear the configured value + - Providing *field* with any other value will change the configured value and may affect the behavior of the account. + + """ + first_name: str r"""First name of the account holder""" @@ -48,3 +99,52 @@ class FedExConnectExistingOwnAccountParameters(BaseModel): from_address_country_iso2: str r"""Country of the account holder""" + + use_multi_factor_registration: bool + r"""Must be true. FedEx accounts are registered using the multi-factor registration workflow.""" + + verification_option: VerificationOption + r"""Determines the verification option to use for the account registration (Enum: SMS, EMAIL, CALL, INVOICE).""" + + verification_pin: Optional[str] = None + r"""(optional) The PIN to verify the account.""" + + verification_invoice_number: Optional[str] = None + r"""(optional) The invoice number to verify the account.""" + + verification_invoice_amount: Annotated[ + Optional[Decimal], + BeforeValidator(validate_decimal), + PlainSerializer(serialize_decimal(True)), + ] = None + r"""(optional) The invoice amount to verify the account.""" + + verification_invoice_date: Optional[date] = None + r"""(optional) The invoice date to verify the account. In the format `YYYY-MM-DD`.""" + + verification_invoice_currency: Optional[str] = None + r"""(optional) The invoice currency to verify the account.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "verification_pin", + "verification_invoice_number", + "verification_invoice_amount", + "verification_invoice_date", + "verification_invoice_currency", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/instanttransactioncreaterequest.py b/src/shippo/models/components/instanttransactioncreaterequest.py index 8ca88189..4f8afbc7 100644 --- a/src/shippo/models/components/instanttransactioncreaterequest.py +++ b/src/shippo/models/components/instanttransactioncreaterequest.py @@ -4,7 +4,8 @@ from .shipmentcreaterequest import ShipmentCreateRequest, ShipmentCreateRequestTypedDict from enum import Enum import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -45,3 +46,25 @@ class InstantTransactionCreateRequest(BaseModel): metadata: Optional[str] = None order: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["async", "label_file_type", "metadata", "order"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + InstantTransactionCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/insurance.py b/src/shippo/models/components/insurance.py index df2938ad..559ce54e 100644 --- a/src/shippo/models/components/insurance.py +++ b/src/shippo/models/components/insurance.py @@ -2,7 +2,8 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -16,9 +17,11 @@ class InsuranceProvider(str, Enum): class InsuranceTypedDict(TypedDict): - r"""To add 3rd party insurance powered by XCover, - specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance - by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance + r"""To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/), + specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance + by additionally specifying `provider` (UPS, FedEx and OnTrac only). + + If you do not want to add insurance to your shipment, do not set these parameters. """ @@ -35,9 +38,11 @@ class InsuranceTypedDict(TypedDict): class Insurance(BaseModel): - r"""To add 3rd party insurance powered by XCover, - specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance - by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance + r"""To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/), + specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance + by additionally specifying `provider` (UPS, FedEx and OnTrac only). + + If you do not want to add insurance to your shipment, do not set these parameters. """ @@ -54,3 +59,19 @@ class Insurance(BaseModel): provider: Optional[InsuranceProvider] = None r"""To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set `provider` to `FEDEX`, `UPS`, or `ONTRAC`.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["amount", "content", "currency", "provider"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/invoicenumber.py b/src/shippo/models/components/invoicenumber.py index 0c117111..a6d425cb 100644 --- a/src/shippo/models/components/invoicenumber.py +++ b/src/shippo/models/components/invoicenumber.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -17,6 +18,11 @@ class InvoiceNumberTypedDict(TypedDict): value: NotRequired[str] r"""Optional text to be printed on the shipping label for invoice number. Up to 40 characters. If provided, this will be used on the label instead of shipment.customs_declaration.invoice. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | """ ref_sort: NotRequired[int] r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" @@ -34,7 +40,28 @@ class InvoiceNumber(BaseModel): value: Optional[str] = None r"""Optional text to be printed on the shipping label for invoice number. Up to 40 characters. If provided, this will be used on the label instead of shipment.customs_declaration.invoice. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | """ ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/labelfiletypeenum.py b/src/shippo/models/components/labelfiletypeenum.py index 955facb5..a389192a 100644 --- a/src/shippo/models/components/labelfiletypeenum.py +++ b/src/shippo/models/components/labelfiletypeenum.py @@ -5,8 +5,8 @@ class LabelFileTypeEnum(str, Enum): - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ PNG = "PNG" diff --git a/src/shippo/models/components/lineitem.py b/src/shippo/models/components/lineitem.py index a96e0e2c..b1558371 100644 --- a/src/shippo/models/components/lineitem.py +++ b/src/shippo/models/components/lineitem.py @@ -3,14 +3,21 @@ from __future__ import annotations from .weightunitenum import WeightUnitEnum from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class LineItemTypedDict(TypedDict): + r"""Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource + in the future. Currently it's a nested object within the order resource. + + A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. + """ + currency: NotRequired[str] - r"""Currency of the total_price amount.""" + r"""Currency of the `total_price` amount.""" manufacture_country: NotRequired[str] r"""Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order.""" max_delivery_time: NotRequired[datetime] @@ -38,7 +45,7 @@ class LineItemTypedDict(TypedDict): """ weight: NotRequired[str] r"""Total weight of this/these item(s). Instead of specifying the weight of all items, - you can also set the total_weight value of the order object. + you can also set the `total_weight` value of the order object. """ weight_unit: NotRequired[WeightUnitEnum] r"""The unit used for weight.""" @@ -47,8 +54,14 @@ class LineItemTypedDict(TypedDict): class LineItem(BaseModel): + r"""Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource + in the future. Currently it's a nested object within the order resource. + + A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. + """ + currency: Optional[str] = None - r"""Currency of the total_price amount.""" + r"""Currency of the `total_price` amount.""" manufacture_country: Optional[str] = None r"""Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order.""" @@ -85,7 +98,7 @@ class LineItem(BaseModel): weight: Optional[str] = None r"""Total weight of this/these item(s). Instead of specifying the weight of all items, - you can also set the total_weight value of the order object. + you can also set the `total_weight` value of the order object. """ weight_unit: Optional[WeightUnitEnum] = None @@ -93,3 +106,34 @@ class LineItem(BaseModel): object_id: Optional[str] = None r"""Unique identifier of the line item object.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "currency", + "manufacture_country", + "max_delivery_time", + "max_ship_time", + "quantity", + "sku", + "title", + "total_price", + "variant_title", + "weight", + "weight_unit", + "object_id", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/lineitembase.py b/src/shippo/models/components/lineitembase.py index 990a6fc7..13afa9ae 100644 --- a/src/shippo/models/components/lineitembase.py +++ b/src/shippo/models/components/lineitembase.py @@ -3,14 +3,15 @@ from __future__ import annotations from .weightunitenum import WeightUnitEnum from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class LineItemBaseTypedDict(TypedDict): currency: NotRequired[str] - r"""Currency of the total_price amount.""" + r"""Currency of the `total_price` amount.""" manufacture_country: NotRequired[str] r"""Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order.""" max_delivery_time: NotRequired[datetime] @@ -38,7 +39,7 @@ class LineItemBaseTypedDict(TypedDict): """ weight: NotRequired[str] r"""Total weight of this/these item(s). Instead of specifying the weight of all items, - you can also set the total_weight value of the order object. + you can also set the `total_weight` value of the order object. """ weight_unit: NotRequired[WeightUnitEnum] r"""The unit used for weight.""" @@ -46,7 +47,7 @@ class LineItemBaseTypedDict(TypedDict): class LineItemBase(BaseModel): currency: Optional[str] = None - r"""Currency of the total_price amount.""" + r"""Currency of the `total_price` amount.""" manufacture_country: Optional[str] = None r"""Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order.""" @@ -83,8 +84,38 @@ class LineItemBase(BaseModel): weight: Optional[str] = None r"""Total weight of this/these item(s). Instead of specifying the weight of all items, - you can also set the total_weight value of the order object. + you can also set the `total_weight` value of the order object. """ weight_unit: Optional[WeightUnitEnum] = None r"""The unit used for weight.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "currency", + "manufacture_country", + "max_delivery_time", + "max_ship_time", + "quantity", + "sku", + "title", + "total_price", + "variant_title", + "weight", + "weight_unit", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/liverate.py b/src/shippo/models/components/liverate.py index b936dc44..3bfc6d14 100644 --- a/src/shippo/models/components/liverate.py +++ b/src/shippo/models/components/liverate.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -13,11 +14,11 @@ class LiveRateTypedDict(TypedDict): r"""Final Rate price, expressed in the currency used in the recipient's country.""" currency: NotRequired[str] r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: NotRequired[str] r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ estimated_days: NotRequired[int] r"""The estimated days in transit of the rate that powers the shipping option, if available.""" @@ -34,12 +35,12 @@ class LiveRate(BaseModel): currency: Optional[str] = None r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: Optional[str] = None r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ estimated_days: Optional[int] = None @@ -47,3 +48,28 @@ class LiveRate(BaseModel): title: Optional[str] = None r"""The name of the service group being returned""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "amount", + "amount_local", + "currency", + "currency_local", + "estimated_days", + "title", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/liveratecreaterequest.py b/src/shippo/models/components/liveratecreaterequest.py index da173db5..9c5a3eea 100644 --- a/src/shippo/models/components/liveratecreaterequest.py +++ b/src/shippo/models/components/liveratecreaterequest.py @@ -7,7 +7,8 @@ ) from .lineitem import LineItem, LineItemTypedDict from .parcel import Parcel, ParcelTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -97,3 +98,19 @@ class LiveRateCreateRequest(BaseModel): parcel: Optional[LiveRateCreateRequestParcel] = None r"""Object ID for an existing User Parcel Template OR a fully formed Parcel object.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["address_from", "parcel"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/liveratepaginatedlist.py b/src/shippo/models/components/liveratepaginatedlist.py index 72f06f7f..8e8b1133 100644 --- a/src/shippo/models/components/liveratepaginatedlist.py +++ b/src/shippo/models/components/liveratepaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .liverate import LiveRate, LiveRateTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -22,3 +23,19 @@ class LiveRatePaginatedList(BaseModel): count: Optional[int] = None results: Optional[List[LiveRate]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "count", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/location.py b/src/shippo/models/components/location.py index 23e16c75..f8a0f292 100644 --- a/src/shippo/models/components/location.py +++ b/src/shippo/models/components/location.py @@ -6,7 +6,8 @@ AddressCompleteCreateRequestTypedDict, ) from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -78,3 +79,19 @@ class Location(BaseModel): instructions: Optional[str] = None r"""Pickup instructions for the courier. This is a mandatory field if the building_location_type is \"Other\".""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["building_type", "instructions"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/manifest.py b/src/shippo/models/components/manifest.py index 60996ff7..84972107 100644 --- a/src/shippo/models/components/manifest.py +++ b/src/shippo/models/components/manifest.py @@ -3,7 +3,8 @@ from __future__ import annotations from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -86,3 +87,19 @@ class Manifest(BaseModel): errors: Optional[List[str]] = None r"""An array of codes and messages describing the error that occurred if any.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["transactions", "errors"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/manifestcreaterequest.py b/src/shippo/models/components/manifestcreaterequest.py index 569c0b15..7ba9a587 100644 --- a/src/shippo/models/components/manifestcreaterequest.py +++ b/src/shippo/models/components/manifestcreaterequest.py @@ -3,7 +3,8 @@ from __future__ import annotations from .addresscreaterequest import AddressCreateRequest, AddressCreateRequestTypedDict import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -51,3 +52,25 @@ class ManifestCreateRequest(BaseModel): """ async_: Annotated[Optional[bool], pydantic.Field(alias="async")] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["transactions", "async"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ManifestCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/manifestpaginatedlist.py b/src/shippo/models/components/manifestpaginatedlist.py index d00e9223..9a67a634 100644 --- a/src/shippo/models/components/manifestpaginatedlist.py +++ b/src/shippo/models/components/manifestpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .manifest import Manifest, ManifestTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class ManifestPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Manifest]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/order.py b/src/shippo/models/components/order.py index 8a34b699..a939b0e5 100644 --- a/src/shippo/models/components/order.py +++ b/src/shippo/models/components/order.py @@ -6,7 +6,8 @@ from .ordershopappenum import OrderShopAppEnum from .orderstatusenum import OrderStatusEnum from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -23,24 +24,26 @@ class OrderTypedDict(TypedDict): placed_at: str r"""Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo.""" to_address: AddressTypedDict - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" currency: NotRequired[str] - r"""**Required if total_price is provided**
- Currency of the total_price and total_tax amounts. + r"""**Required if total_price is provided** + + Currency of the `total_price` and `total_tax` amounts. """ notes: NotRequired[str] r"""Custom buyer- or seller-provided notes about the order.""" order_number: NotRequired[str] r"""An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique.""" order_status: NotRequired[OrderStatusEnum] - r"""Current state of the order. See the orders tutorial + r"""Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. """ shipping_cost: NotRequired[str] r"""Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping.""" shipping_cost_currency: NotRequired[str] - r"""**Required if shipping_cost is provided**
- Currency of the shipping_cost amount. + r"""**Required if shipping_cost is provided** + + Currency of the `shipping_cost` amount. """ shipping_method: NotRequired[str] r"""Shipping method (carrier + service or other free text description) chosen by the buyer. @@ -56,9 +59,9 @@ class OrderTypedDict(TypedDict): weight_unit: NotRequired[WeightUnitEnum] r"""The unit used for weight.""" from_address: NotRequired[AddressTypedDict] - r"""Address object of the sender / seller. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default.""" line_items: NotRequired[List[LineItemTypedDict]] - r"""Array of line item objects representing the items in this order. + r"""Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order. All objects will be returned expanded by default. """ object_id: NotRequired[str] @@ -70,7 +73,7 @@ class OrderTypedDict(TypedDict): Orders created via the Shippo API or dashboard will have the value \"Shippo\". """ transactions: NotRequired[List[OrderTransactionTypedDict]] - r"""Array of transaction objects representing all shipping labels purchased for this order. + r"""Array of [transaction](/shippoapi/public-api/transactions) objects representing all shipping labels purchased for this order. All objects are returned expanded with a limited number of fields by default. """ @@ -80,11 +83,12 @@ class Order(BaseModel): r"""Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo.""" to_address: Address - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" currency: Optional[str] = None - r"""**Required if total_price is provided**
- Currency of the total_price and total_tax amounts. + r"""**Required if total_price is provided** + + Currency of the `total_price` and `total_tax` amounts. """ notes: Optional[str] = None @@ -94,7 +98,7 @@ class Order(BaseModel): r"""An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique.""" order_status: Optional[OrderStatusEnum] = None - r"""Current state of the order. See the orders tutorial + r"""Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. """ @@ -102,8 +106,9 @@ class Order(BaseModel): r"""Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping.""" shipping_cost_currency: Optional[str] = None - r"""**Required if shipping_cost is provided**
- Currency of the shipping_cost amount. + r"""**Required if shipping_cost is provided** + + Currency of the `shipping_cost` amount. """ shipping_method: Optional[str] = None @@ -126,10 +131,10 @@ class Order(BaseModel): r"""The unit used for weight.""" from_address: Optional[Address] = None - r"""Address object of the sender / seller. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default.""" line_items: Optional[List[LineItem]] = None - r"""Array of line item objects representing the items in this order. + r"""Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order. All objects will be returned expanded by default. """ @@ -145,6 +150,43 @@ class Order(BaseModel): """ transactions: Optional[List[OrderTransaction]] = None - r"""Array of transaction objects representing all shipping labels purchased for this order. + r"""Array of [transaction](/shippoapi/public-api/transactions) objects representing all shipping labels purchased for this order. All objects are returned expanded with a limited number of fields by default. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "currency", + "notes", + "order_number", + "order_status", + "shipping_cost", + "shipping_cost_currency", + "shipping_method", + "subtotal_price", + "total_price", + "total_tax", + "weight", + "weight_unit", + "from_address", + "line_items", + "object_id", + "object_owner", + "shop_app", + "transactions", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/ordercreaterequest.py b/src/shippo/models/components/ordercreaterequest.py index ca63f256..d1a1b8f9 100644 --- a/src/shippo/models/components/ordercreaterequest.py +++ b/src/shippo/models/components/ordercreaterequest.py @@ -5,7 +5,8 @@ from .lineitembase import LineItemBase, LineItemBaseTypedDict from .orderstatusenum import OrderStatusEnum from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -14,24 +15,26 @@ class OrderCreateRequestTypedDict(TypedDict): placed_at: str r"""Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo.""" to_address: AddressCreateRequestTypedDict - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" currency: NotRequired[str] - r"""**Required if total_price is provided**
- Currency of the total_price and total_tax amounts. + r"""**Required if total_price is provided** + + Currency of the `total_price` and `total_tax` amounts. """ notes: NotRequired[str] r"""Custom buyer- or seller-provided notes about the order.""" order_number: NotRequired[str] r"""An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique.""" order_status: NotRequired[OrderStatusEnum] - r"""Current state of the order. See the orders tutorial + r"""Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. """ shipping_cost: NotRequired[str] r"""Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping.""" shipping_cost_currency: NotRequired[str] - r"""**Required if shipping_cost is provided**
- Currency of the shipping_cost amount. + r"""**Required if shipping_cost is provided** + + Currency of the `shipping_cost` amount. """ shipping_method: NotRequired[str] r"""Shipping method (carrier + service or other free text description) chosen by the buyer. @@ -47,9 +50,9 @@ class OrderCreateRequestTypedDict(TypedDict): weight_unit: NotRequired[WeightUnitEnum] r"""The unit used for weight.""" from_address: NotRequired[AddressCreateRequestTypedDict] - r"""Address object of the sender / seller. Will be returned expanded by default..""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default..""" line_items: NotRequired[List[LineItemBaseTypedDict]] - r"""Array of line item objects representing the items in this order. + r"""Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order. All objects will be returned expanded by default. """ @@ -59,11 +62,12 @@ class OrderCreateRequest(BaseModel): r"""Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo.""" to_address: AddressCreateRequest - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" currency: Optional[str] = None - r"""**Required if total_price is provided**
- Currency of the total_price and total_tax amounts. + r"""**Required if total_price is provided** + + Currency of the `total_price` and `total_tax` amounts. """ notes: Optional[str] = None @@ -73,7 +77,7 @@ class OrderCreateRequest(BaseModel): r"""An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique.""" order_status: Optional[OrderStatusEnum] = None - r"""Current state of the order. See the orders tutorial + r"""Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. """ @@ -81,8 +85,9 @@ class OrderCreateRequest(BaseModel): r"""Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping.""" shipping_cost_currency: Optional[str] = None - r"""**Required if shipping_cost is provided**
- Currency of the shipping_cost amount. + r"""**Required if shipping_cost is provided** + + Currency of the `shipping_cost` amount. """ shipping_method: Optional[str] = None @@ -105,9 +110,42 @@ class OrderCreateRequest(BaseModel): r"""The unit used for weight.""" from_address: Optional[AddressCreateRequest] = None - r"""Address object of the sender / seller. Will be returned expanded by default..""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default..""" line_items: Optional[List[LineItemBase]] = None - r"""Array of line item objects representing the items in this order. + r"""Array of [line item](/shippoapi/public-api/orders/lineitem) objects representing the items in this order. All objects will be returned expanded by default. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "currency", + "notes", + "order_number", + "order_status", + "shipping_cost", + "shipping_cost_currency", + "shipping_method", + "subtotal_price", + "total_price", + "total_tax", + "weight", + "weight_unit", + "from_address", + "line_items", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/orderpaginatedlist.py b/src/shippo/models/components/orderpaginatedlist.py index 8e0ab12c..45f5c1c3 100644 --- a/src/shippo/models/components/orderpaginatedlist.py +++ b/src/shippo/models/components/orderpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .order import Order, OrderTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class OrderPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Order]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/orderstatusenum.py b/src/shippo/models/components/orderstatusenum.py index 4595b730..cd7536dc 100644 --- a/src/shippo/models/components/orderstatusenum.py +++ b/src/shippo/models/components/orderstatusenum.py @@ -5,7 +5,7 @@ class OrderStatusEnum(str, Enum): - r"""Current state of the order. See the orders tutorial + r"""Current state of the order. See the [orders tutorial](https://docs.goshippo.com/docs/orders/orders/) for the logic of how the status is handled. """ diff --git a/src/shippo/models/components/parcel.py b/src/shippo/models/components/parcel.py index b3c3d264..66330e86 100644 --- a/src/shippo/models/components/parcel.py +++ b/src/shippo/models/components/parcel.py @@ -7,7 +7,8 @@ from .weightunitenum import WeightUnitEnum from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -33,7 +34,7 @@ class ParcelTypedDict(TypedDict): r"""Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted.""" extra: NotRequired[ParcelExtraTypedDict] r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: NotRequired[str] object_created: NotRequired[datetime] @@ -73,7 +74,7 @@ class Parcel(BaseModel): extra: Optional[ParcelExtra] = None r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: Optional[str] = None @@ -98,3 +99,31 @@ class Parcel(BaseModel): test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "extra", + "metadata", + "object_created", + "object_id", + "object_owner", + "object_state", + "object_updated", + "template", + "test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/parcelcreatefromtemplaterequest.py b/src/shippo/models/components/parcelcreatefromtemplaterequest.py index 91056e47..7424595e 100644 --- a/src/shippo/models/components/parcelcreatefromtemplaterequest.py +++ b/src/shippo/models/components/parcelcreatefromtemplaterequest.py @@ -4,7 +4,8 @@ from .parcelextra import ParcelExtra, ParcelExtraTypedDict from .parceltemplateenumset import ParcelTemplateEnumSet, ParcelTemplateEnumSetTypedDict from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -18,7 +19,7 @@ class ParcelCreateFromTemplateRequestTypedDict(TypedDict): r"""If template is passed, `length`, `width`, `height`, and `distance_unit` are not required""" extra: NotRequired[ParcelExtraTypedDict] r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: NotRequired[str] @@ -35,7 +36,23 @@ class ParcelCreateFromTemplateRequest(BaseModel): extra: Optional[ParcelExtra] = None r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["extra", "metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/parcelcreaterequest.py b/src/shippo/models/components/parcelcreaterequest.py index abdfb9df..6365bf4a 100644 --- a/src/shippo/models/components/parcelcreaterequest.py +++ b/src/shippo/models/components/parcelcreaterequest.py @@ -4,7 +4,8 @@ from .distanceunitenum import DistanceUnitEnum from .parcelextra import ParcelExtra, ParcelExtraTypedDict from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -24,7 +25,7 @@ class ParcelCreateRequestTypedDict(TypedDict): r"""Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted.""" extra: NotRequired[ParcelExtraTypedDict] r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: NotRequired[str] @@ -50,7 +51,23 @@ class ParcelCreateRequest(BaseModel): extra: Optional[ParcelExtra] = None r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ metadata: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["extra", "metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/parcelextra.py b/src/shippo/models/components/parcelextra.py index 6192ec19..df7ac461 100644 --- a/src/shippo/models/components/parcelextra.py +++ b/src/shippo/models/components/parcelextra.py @@ -4,39 +4,86 @@ from .cod import Cod, CodTypedDict from .parcelinsurance import ParcelInsurance, ParcelInsuranceTypedDict import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict class ParcelExtraTypedDict(TypedDict): r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ cod: NotRequired[CodTypedDict] r"""Specify collection on delivery details (UPS only).""" insurance: NotRequired[ParcelInsuranceTypedDict] - r"""To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters.""" + r"""To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters.""" reference_1: NotRequired[str] - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | + """ reference_2: NotRequired[str] - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ class ParcelExtra(BaseModel): r"""An object holding optional extra services to be requested for each parcel in a multi-piece shipment. - See the Parcel Extra table below for all available services. + The following values are supported for the `extra` field of the parcel object. """ cod: Annotated[Optional[Cod], pydantic.Field(alias="COD")] = None r"""Specify collection on delivery details (UPS only).""" insurance: Optional[ParcelInsurance] = None - r"""To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters.""" + r"""To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters.""" reference_1: Optional[str] = None - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | + """ reference_2: Optional[str] = None - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["COD", "insurance", "reference_1", "reference_2"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ParcelExtra.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/parcelinsurance.py b/src/shippo/models/components/parcelinsurance.py index 4f237c79..4333098b 100644 --- a/src/shippo/models/components/parcelinsurance.py +++ b/src/shippo/models/components/parcelinsurance.py @@ -2,7 +2,8 @@ from __future__ import annotations from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -16,7 +17,7 @@ class ParcelInsuranceProvider(str, Enum): class ParcelInsuranceTypedDict(TypedDict): - r"""To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters.""" + r"""To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters.""" amount: NotRequired[str] r"""Declared value of the goods you want to insure.""" @@ -29,7 +30,7 @@ class ParcelInsuranceTypedDict(TypedDict): class ParcelInsurance(BaseModel): - r"""To add insurace to your parcel, specify `amount`, `content` and `currency`.

If you do not want to add insurance to you parcel, do not set these parameters.""" + r"""To add insurance to your parcel, specify `amount`, `content` and `currency`. If you do not want to add insurance to your parcel, do not set these parameters.""" amount: Optional[str] = None r"""Declared value of the goods you want to insure.""" @@ -42,3 +43,19 @@ class ParcelInsurance(BaseModel): provider: Optional[ParcelInsuranceProvider] = None r"""To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set provider to `FEDEX`, `UPS`, or `ONTRAC`.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["amount", "content", "currency", "provider"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/parcelpaginatedlist.py b/src/shippo/models/components/parcelpaginatedlist.py index cc8a6f84..7d223a12 100644 --- a/src/shippo/models/components/parcelpaginatedlist.py +++ b/src/shippo/models/components/parcelpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .parcel import Parcel, ParcelTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class ParcelPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Parcel]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/parceltemplatefedexenum.py b/src/shippo/models/components/parceltemplatefedexenum.py index 1cad07c9..6deec8af 100644 --- a/src/shippo/models/components/parceltemplatefedexenum.py +++ b/src/shippo/models/components/parceltemplatefedexenum.py @@ -16,7 +16,7 @@ class ParcelTemplateFedExEnum(str, Enum): | FedEx_Box_Medium_1 | FedEx® Medium Box (M1) | 13.25 x 11.50 x 2.38 in| | FedEx_Box_Medium_2 | FedEx® Medium Box (M2) | 11.25 x 8.75 x 4.38 in| | FedEx_Box_Small_1 | FedEx® Small Box (S1) | 12.38 x 10.88 x 1.50 in| - | FedEx_Box_Small_2 | FedEx® Small Box (S2) | 11.25 x 8.75 x 4.38 in| + | FedEx_Box_Small_2 | FedEx® Small Box (S2) | 11.25 x 8.75 x 2.38 in| | FedEx_Envelope | FedEx® Envelope | 12.50 x 9.50 x 0.80 in| | FedEx_Padded_Pak | FedEx® Padded Pak | 11.75 x 14.75 x 2.00 in| | FedEx_Pak_1 | FedEx® Large Pak | 15.50 x 12.00 x 0.80 in| diff --git a/src/shippo/models/components/pickup.py b/src/shippo/models/components/pickup.py index 59e2310e..ebfb8a41 100644 --- a/src/shippo/models/components/pickup.py +++ b/src/shippo/models/components/pickup.py @@ -4,7 +4,8 @@ from .location import Location, LocationTypedDict from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -21,7 +22,7 @@ class PickupStatus(str, Enum): class PickupTypedDict(TypedDict): carrier_account: str r"""The object ID of your USPS or DHL Express carrier account. - You can retrieve this from your Rate requests or our Carrier Accounts endpoint. + You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. """ location: LocationTypedDict r"""Location where the parcel(s) will be picked up.""" @@ -75,7 +76,7 @@ class PickupTypedDict(TypedDict): class Pickup(BaseModel): carrier_account: str r"""The object ID of your USPS or DHL Express carrier account. - You can retrieve this from your Rate requests or our Carrier Accounts endpoint. + You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. """ location: Location @@ -140,3 +141,34 @@ class Pickup(BaseModel): is_test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "metadata", + "object_created", + "object_id", + "object_updated", + "confirmed_start_time", + "confirmed_end_time", + "cancel_by_time", + "status", + "confirmation_code", + "timezone", + "messages", + "is_test", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/pickupbase.py b/src/shippo/models/components/pickupbase.py index acbee7a2..87a1b7ac 100644 --- a/src/shippo/models/components/pickupbase.py +++ b/src/shippo/models/components/pickupbase.py @@ -3,7 +3,8 @@ from __future__ import annotations from .location import Location, LocationTypedDict from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -11,7 +12,7 @@ class PickupBaseTypedDict(TypedDict): carrier_account: str r"""The object ID of your USPS or DHL Express carrier account. - You can retrieve this from your Rate requests or our Carrier Accounts endpoint. + You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. """ location: LocationTypedDict r"""Location where the parcel(s) will be picked up.""" @@ -34,7 +35,7 @@ class PickupBaseTypedDict(TypedDict): class PickupBase(BaseModel): carrier_account: str r"""The object ID of your USPS or DHL Express carrier account. - You can retrieve this from your Rate requests or our Carrier Accounts endpoint. + You can retrieve this from your Rate requests or our [Carrier Accounts](/shippoapi/public-api/carrier-accounts) endpoint. """ location: Location @@ -57,3 +58,19 @@ class PickupBase(BaseModel): r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/ponumber.py b/src/shippo/models/components/ponumber.py index 784de515..a2da5b21 100644 --- a/src/shippo/models/components/ponumber.py +++ b/src/shippo/models/components/ponumber.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -17,6 +18,11 @@ class PoNumberTypedDict(TypedDict): value: NotRequired[str] r"""Optional text to be printed on the shipping label for PO number. Up to 40 characters. If this is provided, reference_2 will be ignored. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | """ ref_sort: NotRequired[int] r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" @@ -34,7 +40,28 @@ class PoNumber(BaseModel): value: Optional[str] = None r"""Optional text to be printed on the shipping label for PO number. Up to 40 characters. If this is provided, reference_2 will be ignored. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | """ ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/rate.py b/src/shippo/models/components/rate.py index 79a5e5ed..1d2aca5a 100644 --- a/src/shippo/models/components/rate.py +++ b/src/shippo/models/components/rate.py @@ -8,7 +8,8 @@ ) from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -26,11 +27,11 @@ class RateTypedDict(TypedDict): r"""Final Rate price, expressed in the currency used in the recipient's country.""" currency: str r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: str r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ attributes: List[Attribute] r"""An array containing specific attributes of this Rate in context of the entire shipment. @@ -88,12 +89,12 @@ class Rate(BaseModel): currency: str r"""Currency used in the sender's country, refers to `amount`. - The official ISO 4217 currency codes are used, e.g. `USD` or `EUR`. + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or `EUR`. """ currency_local: str r"""Currency used in the recipient's country, refers to `amount_local`. - The official ISO 4217 currency codes are used, e.g. `USD` or \"EUR\". + The [official ISO 4217](http://www.xe.com/iso4217.php) currency codes are used, e.g. `USD` or \"EUR\". """ attributes: List[Attribute] @@ -157,3 +158,31 @@ class Rate(BaseModel): zone: Optional[str] = None r"""The parcel's transit zone token. These tokens can vary depending on the provider.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "arrives_by", + "duration_terms", + "estimated_days", + "included_insurance_price", + "messages", + "provider_image_75", + "provider_image_200", + "test", + "zone", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/ratepaginatedlist.py b/src/shippo/models/components/ratepaginatedlist.py index 54f48394..4f87810c 100644 --- a/src/shippo/models/components/ratepaginatedlist.py +++ b/src/shippo/models/components/ratepaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .rate import Rate, RateTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class RatePaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Rate]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/refund.py b/src/shippo/models/components/refund.py index b0a3e179..20dba7b4 100644 --- a/src/shippo/models/components/refund.py +++ b/src/shippo/models/components/refund.py @@ -3,7 +3,8 @@ from __future__ import annotations from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -18,6 +19,8 @@ class RefundStatus(str, Enum): class RefundTypedDict(TypedDict): + r"""Refund""" + object_created: NotRequired[datetime] r"""Date and time of object creation.""" object_id: NotRequired[str] @@ -35,6 +38,8 @@ class RefundTypedDict(TypedDict): class Refund(BaseModel): + r"""Refund""" + object_created: Optional[datetime] = None r"""Date and time of object creation.""" @@ -55,3 +60,29 @@ class Refund(BaseModel): transaction: Optional[str] = None r"""Object ID of the Transaction to be refunded.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "object_created", + "object_id", + "object_owner", + "object_updated", + "status", + "test", + "transaction", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/refundpaginatedlist.py b/src/shippo/models/components/refundpaginatedlist.py index 30bbb4a5..27e9b148 100644 --- a/src/shippo/models/components/refundpaginatedlist.py +++ b/src/shippo/models/components/refundpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .refund import Refund, RefundTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class RefundPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Refund]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/refundrequestbody.py b/src/shippo/models/components/refundrequestbody.py index 75e578b1..5357da95 100644 --- a/src/shippo/models/components/refundrequestbody.py +++ b/src/shippo/models/components/refundrequestbody.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -16,3 +17,25 @@ class RefundRequestBody(BaseModel): transaction: str async_: Annotated[Optional[bool], pydantic.Field(alias="async")] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["async"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + RefundRequestBody.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/responsemessage.py b/src/shippo/models/components/responsemessage.py index 705a0ae8..45e36b5c 100644 --- a/src/shippo/models/components/responsemessage.py +++ b/src/shippo/models/components/responsemessage.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -32,3 +33,19 @@ class ResponseMessage(BaseModel): text: Optional[str] = None r"""Message content""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["source", "code", "text"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/rmanumber.py b/src/shippo/models/components/rmanumber.py index dee93401..d67e0dd2 100644 --- a/src/shippo/models/components/rmanumber.py +++ b/src/shippo/models/components/rmanumber.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -15,7 +16,13 @@ class RmaNumberTypedDict(TypedDict): this property. """ value: NotRequired[str] - r"""Optional text to be printed on the shipping label for RMA number. Up to 40 characters.""" + r"""Optional text to be printed on the shipping label for RMA number. Up to 40 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 20 characters | + """ ref_sort: NotRequired[int] r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" @@ -30,7 +37,29 @@ class RmaNumber(BaseModel): """ value: Optional[str] = None - r"""Optional text to be printed on the shipping label for RMA number. Up to 40 characters.""" + r"""Optional text to be printed on the shipping label for RMA number. Up to 40 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 20 characters | + """ ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicegroup.py b/src/shippo/models/components/servicegroup.py index 61ebf695..60b1c3ed 100644 --- a/src/shippo/models/components/servicegroup.py +++ b/src/shippo/models/components/servicegroup.py @@ -6,7 +6,8 @@ ServiceGroupAccountAndServiceLevelTypedDict, ) from .servicegrouptypeenum import ServiceGroupTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -17,10 +18,11 @@ class ServiceGroupTypedDict(TypedDict): name: str r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ object_id: str r"""The unique identifier of the given Service Group object.""" @@ -55,10 +57,11 @@ class ServiceGroup(BaseModel): r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ object_id: str @@ -91,3 +94,28 @@ class ServiceGroup(BaseModel): is_active: Optional[bool] = None r"""True if the service group is enabled, false otherwise.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "flat_rate", + "flat_rate_currency", + "free_shipping_threshold_currency", + "free_shipping_threshold_min", + "rate_adjustment", + "is_active", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicegroupaccountandservicelevel.py b/src/shippo/models/components/servicegroupaccountandservicelevel.py index b84c0824..85f0af29 100644 --- a/src/shippo/models/components/servicegroupaccountandservicelevel.py +++ b/src/shippo/models/components/servicegroupaccountandservicelevel.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -10,8 +11,8 @@ class ServiceGroupAccountAndServiceLevelTypedDict(TypedDict): account_object_id: NotRequired[str] r"""ID of a Carrier Account object""" service_level_token: NotRequired[str] - r"""Service level token, e.g. `usps_priority` or `fedex_ground`.
- See Service Levels. + r"""Service level token, e.g. `usps_priority` or `fedex_ground`. + See [Service Levels](/shippoapi/public-api/service-levels). """ @@ -20,6 +21,22 @@ class ServiceGroupAccountAndServiceLevel(BaseModel): r"""ID of a Carrier Account object""" service_level_token: Optional[str] = None - r"""Service level token, e.g. `usps_priority` or `fedex_ground`.
- See Service Levels. + r"""Service level token, e.g. `usps_priority` or `fedex_ground`. + See [Service Levels](/shippoapi/public-api/service-levels). """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["account_object_id", "service_level_token"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicegroupcreaterequest.py b/src/shippo/models/components/servicegroupcreaterequest.py index 3732af59..a464b201 100644 --- a/src/shippo/models/components/servicegroupcreaterequest.py +++ b/src/shippo/models/components/servicegroupcreaterequest.py @@ -6,7 +6,8 @@ ServiceGroupAccountAndServiceLevelTypedDict, ) from .servicegrouptypeenum import ServiceGroupTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -17,10 +18,11 @@ class ServiceGroupCreateRequestTypedDict(TypedDict): name: str r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ service_levels: List[ServiceGroupAccountAndServiceLevelTypedDict] flat_rate: NotRequired[str] @@ -51,10 +53,11 @@ class ServiceGroupCreateRequest(BaseModel): r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ service_levels: List[ServiceGroupAccountAndServiceLevel] @@ -81,3 +84,27 @@ class ServiceGroupCreateRequest(BaseModel): rate_adjustment: Optional[int] = None r"""The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "flat_rate", + "flat_rate_currency", + "free_shipping_threshold_currency", + "free_shipping_threshold_min", + "rate_adjustment", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicegrouptypeenum.py b/src/shippo/models/components/servicegrouptypeenum.py index 784c0073..98f6bbec 100644 --- a/src/shippo/models/components/servicegrouptypeenum.py +++ b/src/shippo/models/components/servicegrouptypeenum.py @@ -5,10 +5,11 @@ class ServiceGroupTypeEnum(str, Enum): - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ LIVE_RATE = "LIVE_RATE" diff --git a/src/shippo/models/components/servicegroupupdaterequest.py b/src/shippo/models/components/servicegroupupdaterequest.py index 47deca33..7e4bad45 100644 --- a/src/shippo/models/components/servicegroupupdaterequest.py +++ b/src/shippo/models/components/servicegroupupdaterequest.py @@ -6,7 +6,8 @@ ServiceGroupAccountAndServiceLevelTypedDict, ) from .servicegrouptypeenum import ServiceGroupTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -17,10 +18,11 @@ class ServiceGroupUpdateRequestTypedDict(TypedDict): name: str r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ object_id: str r"""The unique identifier of the given Service Group object.""" @@ -55,10 +57,11 @@ class ServiceGroupUpdateRequest(BaseModel): r"""Name for the service group that will be shown to customers in the response""" type: ServiceGroupTypeEnum - r"""The type of the service group.
- `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.
- `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.
- `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` + r"""The type of the service group. + + - `LIVE_RATE`: Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group. + - `FLAT_RATE`: returns a shipping option with the specified flat rate amount. + - `FREE_SHIPPING`: returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min` """ object_id: str @@ -91,3 +94,27 @@ class ServiceGroupUpdateRequest(BaseModel): rate_adjustment: Optional[int] = None r"""The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "flat_rate", + "flat_rate_currency", + "free_shipping_threshold_currency", + "free_shipping_threshold_min", + "rate_adjustment", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicelevel.py b/src/shippo/models/components/servicelevel.py index 05e1e637..3dedbd01 100644 --- a/src/shippo/models/components/servicelevel.py +++ b/src/shippo/models/components/servicelevel.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -22,7 +23,7 @@ class ServiceLevelTypedDict(TypedDict): r"""Further clarification of the service.""" token: NotRequired[str] r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ extended_token: NotRequired[str] r"""Unique, extended version of the Service Level \"token\". @@ -48,10 +49,26 @@ class ServiceLevel(BaseModel): token: Optional[str] = None r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ extended_token: Optional[str] = None r"""Unique, extended version of the Service Level \"token\". Guaranteed to be unique across all Service Levels, and may help offer insight into the specific Service Level it describes. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name", "terms", "token", "extended_token"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/servicelevelcdlenum.py b/src/shippo/models/components/servicelevelcdlenum.py deleted file mode 100644 index 2c33dfb3..00000000 --- a/src/shippo/models/components/servicelevelcdlenum.py +++ /dev/null @@ -1,14 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from enum import Enum - - -class ServiceLevelCDLEnum(str, Enum): - r"""|Token | Service name| - |:---|:---| - | cdl_next_day | Next Day| - - """ - - CDL_NEXT_DAY = "cdl_next_day" diff --git a/src/shippo/models/components/servicelevelenumset.py b/src/shippo/models/components/servicelevelenumset.py index 908d3400..26e354b1 100644 --- a/src/shippo/models/components/servicelevelenumset.py +++ b/src/shippo/models/components/servicelevelenumset.py @@ -9,7 +9,6 @@ from .servicelevelaustraliapostenum import ServiceLevelAustraliaPostEnum from .servicelevelbettertrucksenum import ServiceLevelBetterTrucksEnum from .servicelevelcanadapostenum import ServiceLevelCanadaPostEnum -from .servicelevelcdlenum import ServiceLevelCDLEnum from .servicelevelchronopostenum import ServiceLevelChronopostEnum from .servicelevelcolissimoenum import ServiceLevelColissimoEnum from .servicelevelcorreosespanaenum import ServiceLevelCorreosEspanaEnum @@ -33,7 +32,7 @@ from .servicelevelpostitalianeenum import ServiceLevelPostItalianeEnum from .servicelevelpurolatorenum import ServiceLevelPurolatorEnum from .servicelevelroyalmailenum import ServiceLevelRoyalMailEnum -from .servicelevelsendleenum import ServiceLevelSendleEnum +from .servicelevelroyalmailsfenum import ServiceLevelRoyalMailSFEnum from .servicelevelswyftenum import ServiceLevelSwyftEnum from .serviceleveludsenum import ServiceLevelUDSEnum from .servicelevelupsenum import ServiceLevelUPSEnum @@ -56,7 +55,6 @@ ServiceLevelAPGEnum, ServiceLevelBetterTrucksEnum, ServiceLevelCanadaPostEnum, - ServiceLevelCDLEnum, ServiceLevelChronopostEnum, ServiceLevelCorreosEspanaEnum, ServiceLevelColissimoEnum, @@ -76,7 +74,7 @@ ServiceLevelPostItalianeEnum, ServiceLevelePostGlobalEnum, ServiceLevelRoyalMailEnum, - ServiceLevelSendleEnum, + ServiceLevelRoyalMailSFEnum, ServiceLevelOnTracEnum, ServiceLevelJitsuEnum, ServiceLevelLasershipEnum, @@ -101,7 +99,6 @@ ServiceLevelAPGEnum, ServiceLevelBetterTrucksEnum, ServiceLevelCanadaPostEnum, - ServiceLevelCDLEnum, ServiceLevelChronopostEnum, ServiceLevelCorreosEspanaEnum, ServiceLevelColissimoEnum, @@ -121,7 +118,7 @@ ServiceLevelPostItalianeEnum, ServiceLevelePostGlobalEnum, ServiceLevelRoyalMailEnum, - ServiceLevelSendleEnum, + ServiceLevelRoyalMailSFEnum, ServiceLevelOnTracEnum, ServiceLevelJitsuEnum, ServiceLevelLasershipEnum, diff --git a/src/shippo/models/components/servicelevelroyalmailenum.py b/src/shippo/models/components/servicelevelroyalmailenum.py index e6e8cfc9..ebfa30e6 100644 --- a/src/shippo/models/components/servicelevelroyalmailenum.py +++ b/src/shippo/models/components/servicelevelroyalmailenum.py @@ -20,7 +20,7 @@ class ServiceLevelRoyalMailEnum(str, Enum): | royal_mail_standard_first_class | Standard First Class | royal_mail_standard_second_class | Standard Second Class | royal_mail_tracked_24_no_signature | Royal Mail Tracked 24 No Signature - | royal_mail_tracked_48_no_signature | Royal Mail Ttacked 48 No Signature + | royal_mail_tracked_48_no_signature | Royal Mail Tracked 48 No Signature | royal_mail_intl_bus_mail_lrg_ltr_zone_sort_pri | International Business Mail Large Letter Zone Sort Priority | royal_mail_intl_bus_parcels_tracked_zone_sort | International Business Parcels Tracked Zone Sort | royal_mail_intl_bus_parcels_tracked_country_priced | International Business Parcels Tracked Country Priced diff --git a/src/shippo/models/components/servicelevelroyalmailsfenum.py b/src/shippo/models/components/servicelevelroyalmailsfenum.py new file mode 100644 index 00000000..e5608a2d --- /dev/null +++ b/src/shippo/models/components/servicelevelroyalmailsfenum.py @@ -0,0 +1,48 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum + + +class ServiceLevelRoyalMailSFEnum(str, Enum): + r"""|Token | Service name| + |:---|:---| + | royal_mail_sf_tracked_48 | Royal Mail Tracked 48| + | royal_mail_sf_tracked_48_for_post_office_drop | Royal Mail Tracked 48 for Post Office Drop| + | royal_mail_sf_international_tracked | Royal Mail International Tracked | + | royal_mail_sf_tracked_48_with_signature_confirmation | Royal Mail Tracked 48 with Signature | + | royal_mail_sf_tracked_48_for_post_office_drop_with_signature_confirmation | Royal Mail Tracked 48 for Post Office Drop with Signature | + | royal_mail_sf_tracked_24 | Royal Mail Tracked 24 | + | royal_mail_sf_tracked_24_for_post_office_drop | Royal Mail Tracked 24 for Post Office Drop | + | royal_mail_sf_tracked_24_for_post_office_drop_with_signature_confirmation | Royal Mail Tracked 24 for Post Office Drop with Signature | + | royal_mail_sf_international_tracked_for_post_office_drop | Royal Mail International Tracked for Post Office Drop | + | royal_mail_sf_international_tracked_with_signature_confirmation | Royal Mail International Tracked with Signature | + | royal_mail_sf_international_tracked_for_post_office_drop_with_signature_confirmation | Royal Mail International Tracked for Post Office Drop with Signature | + + """ + + ROYAL_MAIL_SF_TRACKED_48 = "royal_mail_sf_tracked_48" + ROYAL_MAIL_SF_TRACKED_48_FOR_POST_OFFICE_DROP = ( + "royal_mail_sf_tracked_48_for_post_office_drop" + ) + ROYAL_MAIL_SF_INTERNATIONAL_TRACKED = "royal_mail_sf_international_tracked" + ROYAL_MAIL_SF_TRACKED_48_WITH_SIGNATURE_CONFIRMATION = ( + "royal_mail_sf_tracked_48_with_signature_confirmation" + ) + ROYAL_MAIL_SF_TRACKED_48_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION = ( + "royal_mail_sf_tracked_48_for_post_office_drop_with_signature_confirmation" + ) + ROYAL_MAIL_SF_TRACKED_24 = "royal_mail_sf_tracked_24" + ROYAL_MAIL_SF_TRACKED_24_FOR_POST_OFFICE_DROP = ( + "royal_mail_sf_tracked_24_for_post_office_drop" + ) + ROYAL_MAIL_SF_TRACKED_24_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION = ( + "royal_mail_sf_tracked_24_for_post_office_drop_with_signature_confirmation" + ) + ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_FOR_POST_OFFICE_DROP = ( + "royal_mail_sf_international_tracked_for_post_office_drop" + ) + ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_WITH_SIGNATURE_CONFIRMATION = ( + "royal_mail_sf_international_tracked_with_signature_confirmation" + ) + ROYAL_MAIL_SF_INTERNATIONAL_TRACKED_FOR_POST_OFFICE_DROP_WITH_SIGNATURE_CONFIRMATION = "royal_mail_sf_international_tracked_for_post_office_drop_with_signature_confirmation" diff --git a/src/shippo/models/components/servicelevelsendleenum.py b/src/shippo/models/components/servicelevelsendleenum.py deleted file mode 100644 index ccd42e48..00000000 --- a/src/shippo/models/components/servicelevelsendleenum.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from enum import Enum - - -class ServiceLevelSendleEnum(str, Enum): - r"""|Token | Service name| - |:---|:---| - | sendle_parcel | Sendle Parcel| - | sendle_standard_dropoff | Sendle Standard Dropoff| - - """ - - SENDLE_PARCEL = "sendle_parcel" - SENDLE_STANDARD_DROPOFF = "sendle_standard_dropoff" diff --git a/src/shippo/models/components/servicelevelwithparent.py b/src/shippo/models/components/servicelevelwithparent.py index 1eb745ad..3ba095df 100644 --- a/src/shippo/models/components/servicelevelwithparent.py +++ b/src/shippo/models/components/servicelevelwithparent.py @@ -2,7 +2,8 @@ from __future__ import annotations from .servicelevel import ServiceLevel, ServiceLevelTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -19,7 +20,7 @@ class ServiceLevelWithParentTypedDict(TypedDict): r"""Further clarification of the service.""" token: NotRequired[str] r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ extended_token: NotRequired[str] r"""Unique, extended version of the Service Level \"token\". @@ -42,7 +43,7 @@ class ServiceLevelWithParent(BaseModel): token: Optional[str] = None r"""Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. - See servicelevels. + See [servicelevels](/shippoapi/public-api/service-levels). """ extended_token: Optional[str] = None @@ -51,3 +52,21 @@ class ServiceLevelWithParent(BaseModel): """ parent_servicelevel: Optional[ServiceLevel] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["name", "terms", "token", "extended_token", "parent_servicelevel"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/shipment.py b/src/shippo/models/components/shipment.py index a0021e31..1ab8f957 100644 --- a/src/shippo/models/components/shipment.py +++ b/src/shippo/models/components/shipment.py @@ -9,7 +9,8 @@ from .shipmentextra import ShipmentExtra, ShipmentExtraTypedDict from datetime import datetime from enum import Enum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -33,9 +34,9 @@ class ShipmentTypedDict(TypedDict): metadata: str r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" address_from: AddressTypedDict - r"""Address object of the sender / seller. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default.""" address_to: AddressTypedDict - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" carrier_accounts: List[str] r"""An array of object_ids of the carrier account objects to be used for getting shipping rates for this shipment. If no carrier account object_ids are set in this field, Shippo will attempt to generate rates using all the @@ -53,7 +54,7 @@ class ShipmentTypedDict(TypedDict): parcels: List[ParcelTypedDict] r"""List of Parcel objects to be shipped.""" rates: List[RateTypedDict] - r"""An array with all available rates. If async has been set to false in the request, + r"""An array with all available rates. If `async` has been set to `false` in the request, this will be populated with all available rates in the response. Otherwise rates will be created asynchronously and this array will initially be empty. """ @@ -71,8 +72,8 @@ class ShipmentTypedDict(TypedDict): be in the future, on a working day, or similar. """ address_return: NotRequired[AddressTypedDict] - r"""ID of the Address object where the shipment will be sent back to if it is not delivered - (Only available for UPS, USPS, and Fedex shipments).
+ r"""ID of the Address object where the shipment will be sent back to if it is not delivered (Only available for UPS, USPS, and Fedex shipments). + If this field is not set, your shipments will be returned to the address_from. """ customs_declaration: NotRequired[CustomsDeclarationTypedDict] @@ -87,10 +88,10 @@ class Shipment(BaseModel): r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" address_from: Address - r"""Address object of the sender / seller. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the sender / seller. Will be returned expanded by default.""" address_to: Address - r"""Address object of the recipient / buyer. Will be returned expanded by default.""" + r"""[Address](/shippoapi/public-api/addresses) object of the recipient / buyer. Will be returned expanded by default.""" carrier_accounts: List[str] r"""An array of object_ids of the carrier account objects to be used for getting shipping rates for this shipment. @@ -116,7 +117,7 @@ class Shipment(BaseModel): r"""List of Parcel objects to be shipped.""" rates: List[Rate] - r"""An array with all available rates. If async has been set to false in the request, + r"""An array with all available rates. If `async` has been set to `false` in the request, this will be populated with all available rates in the response. Otherwise rates will be created asynchronously and this array will initially be empty. """ @@ -138,8 +139,8 @@ class Shipment(BaseModel): """ address_return: Optional[Address] = None - r"""ID of the Address object where the shipment will be sent back to if it is not delivered - (Only available for UPS, USPS, and Fedex shipments).
+ r"""ID of the Address object where the shipment will be sent back to if it is not delivered (Only available for UPS, USPS, and Fedex shipments). + If this field is not set, your shipments will be returned to the address_from. """ @@ -147,3 +148,21 @@ class Shipment(BaseModel): test: Optional[bool] = None r"""Indicates whether the object has been created in test mode.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["extra", "shipment_date", "address_return", "customs_declaration", "test"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/shipmentcreaterequest.py b/src/shippo/models/components/shipmentcreaterequest.py index 0d13e6eb..48cb178a 100644 --- a/src/shippo/models/components/shipmentcreaterequest.py +++ b/src/shippo/models/components/shipmentcreaterequest.py @@ -13,7 +13,8 @@ from .parcelcreaterequest import ParcelCreateRequest, ParcelCreateRequestTypedDict from .shipmentextra import ShipmentExtra, ShipmentExtraTypedDict import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -74,6 +75,13 @@ class ShipmentCreateRequestTypedDict(TypedDict): address_from: ShipmentCreateRequestAddressFromTypedDict address_to: ShipmentCreateRequestAddressToTypedDict parcels: List[ShipmentCreateRequestParcelTypedDict] + r"""List of parcels to be shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 items | + """ extra: NotRequired[ShipmentExtraTypedDict] r"""An object holding optional extra services to be requested.""" metadata: NotRequired[str] @@ -87,7 +95,7 @@ class ShipmentCreateRequestTypedDict(TypedDict): customs_declaration: NotRequired[CustomsDeclarationUnionTypedDict] async_: NotRequired[bool] carrier_accounts: NotRequired[List[str]] - r"""List of Carrier Accounts `object_id`s used to filter + r"""List of [Carrier Accounts](/shippoapi/public-api/carrier-accounts) `object_id`s used to filter the returned rates. If set, only rates from these carriers will be returned. """ @@ -98,6 +106,13 @@ class ShipmentCreateRequest(BaseModel): address_to: ShipmentCreateRequestAddressTo parcels: List[ShipmentCreateRequestParcel] + r"""List of parcels to be shipped. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 items | + """ extra: Optional[ShipmentExtra] = None r"""An object holding optional extra services to be requested.""" @@ -118,6 +133,38 @@ class ShipmentCreateRequest(BaseModel): async_: Annotated[Optional[bool], pydantic.Field(alias="async")] = None carrier_accounts: Optional[List[str]] = None - r"""List of Carrier Accounts `object_id`s used to filter + r"""List of [Carrier Accounts](/shippoapi/public-api/carrier-accounts) `object_id`s used to filter the returned rates. If set, only rates from these carriers will be returned. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "extra", + "metadata", + "shipment_date", + "address_return", + "customs_declaration", + "async", + "carrier_accounts", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ShipmentCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/shipmentextra.py b/src/shippo/models/components/shipmentextra.py index d6d0d21a..a714c33a 100644 --- a/src/shippo/models/components/shipmentextra.py +++ b/src/shippo/models/components/shipmentextra.py @@ -20,7 +20,8 @@ from .upsreferencefields import UPSReferenceFields, UPSReferenceFieldsTypedDict from enum import Enum import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -33,7 +34,7 @@ class AncillaryEndorsement(str, Enum): class DangerousGoodsCode(str, Enum): - r"""Dangerous Goods Code (DHL eCommerce only). See Category Codes""" + r"""Dangerous Goods Code (DHL eCommerce only). See [Category Codes](https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods)""" ONE = "01" TWO = "02" @@ -130,10 +131,10 @@ class ShipmentExtraTypedDict(TypedDict): dangerous_goods: NotRequired[DangerousGoodsObjectTypedDict] r"""Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents are provided, only certain USPS service levels will be eligible. For more information, see our - guide on hazardous or dangerous materials shipping. + [guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). """ dangerous_goods_code: NotRequired[DangerousGoodsCode] - r"""Dangerous Goods Code (DHL eCommerce only). See Category Codes""" + r"""Dangerous Goods Code (DHL eCommerce only). See [Category Codes](https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods)""" dealer_order_number: NotRequired[UPSReferenceFieldsTypedDict] delivery_instructions: NotRequired[str] r"""Specify delivery instructions. Up to 500 characters. (FedEx and OnTrac only).""" @@ -145,15 +146,17 @@ class ShipmentExtraTypedDict(TypedDict): fulfillment_center: NotRequired[str] r"""The fulfilment center where the package originates from.""" insurance: NotRequired[InsuranceTypedDict] - r"""To add 3rd party insurance powered by XCover, - specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance - by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance + r"""To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/), + specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance + by additionally specifying `provider` (UPS, FedEx and OnTrac only). + + If you do not want to add insurance to your shipment, do not set these parameters. """ invoice_number: NotRequired[InvoiceNumberTypedDict] r"""Specify the invoice number field on the label (FedEx and UPS only).""" is_return: NotRequired[bool] - r"""This field specifies if it is a scan-based return shipment. See the Create a return shipment section for more details.""" + r"""This field specifies if it is a scan-based return shipment. See the [Create a return shipment](https://docs.goshippo.com/docs/shipments/returns/) section for more details.""" lasership_attrs: NotRequired[List[ShipmentExtraLasershipAttributesEnum]] r"""Specify Lasership Attributes (Lasership only). Multiple options accepted.""" lasership_declared_value: NotRequired[str] @@ -172,9 +175,21 @@ class ShipmentExtraTypedDict(TypedDict): qr_code_requested: NotRequired[bool] r"""Request a QR code for a given transaction when creating a shipping label (USPS domestic and Evri UK only).""" reference_1: NotRequired[str] - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | + """ reference_2: NotRequired[str] - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ request_retail_rates: NotRequired[bool] r"""Returns retail rates instead of account-based rates (UPS and FedEx only).""" return_service_type: NotRequired[ReturnServiceTypeTypedDict] @@ -191,6 +206,17 @@ class ShipmentExtraTypedDict(TypedDict): """ store_number: NotRequired[UPSReferenceFieldsTypedDict] transaction_reference_number: NotRequired[UPSReferenceFieldsTypedDict] + usmca_eligible: NotRequired[bool] + r"""UPS only. Request USMCA (United States-Mexico-Canada Agreement) preferential tariff treatment. + When enabled, it includes the USMCA eligibility declaration in customs documentation. + + Supported routes and value limits: + - USA/Canada → Mexico: ≤ $1,000 USD + - Canada/Mexico → USA: ≤ $2,500 USD + - USA/Mexico → Canada: ≤ $3,300 CAD + + Only for declaration-only shipments, full USMCA - FormType 04 (Certificate of Origin) is not supported. + """ class ShipmentExtra(BaseModel): @@ -251,11 +277,11 @@ class ShipmentExtra(BaseModel): dangerous_goods: Optional[DangerousGoodsObject] = None r"""Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents are provided, only certain USPS service levels will be eligible. For more information, see our - guide on hazardous or dangerous materials shipping. + [guide on hazardous or dangerous materials shipping](https://docs.goshippo.com/docs/shipments/hazmat/). """ dangerous_goods_code: Optional[DangerousGoodsCode] = None - r"""Dangerous Goods Code (DHL eCommerce only). See Category Codes""" + r"""Dangerous Goods Code (DHL eCommerce only). See [Category Codes](https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods)""" dealer_order_number: Optional[UPSReferenceFields] = None @@ -274,9 +300,11 @@ class ShipmentExtra(BaseModel): r"""The fulfilment center where the package originates from.""" insurance: Optional[Insurance] = None - r"""To add 3rd party insurance powered by XCover, - specify
`amount`, `content`, and `currency`.
Alternatively, you can choose carrier provided insurance - by additionally specifying `provider` (UPS, FedEx and OnTrac only).

If you do not want to add insurance + r"""To add 3rd party insurance powered by [XCover](https://docs.goshippo.com/docs/shipments/shippinginsurance/), + specify `amount`, `content`, and `currency`. Alternatively, you can choose carrier provided insurance + by additionally specifying `provider` (UPS, FedEx and OnTrac only). + + If you do not want to add insurance to your shipment, do not set these parameters. """ @@ -284,7 +312,7 @@ class ShipmentExtra(BaseModel): r"""Specify the invoice number field on the label (FedEx and UPS only).""" is_return: Optional[bool] = None - r"""This field specifies if it is a scan-based return shipment. See the Create a return shipment section for more details.""" + r"""This field specifies if it is a scan-based return shipment. See the [Create a return shipment](https://docs.goshippo.com/docs/shipments/returns/) section for more details.""" lasership_attrs: Optional[List[ShipmentExtraLasershipAttributesEnum]] = None r"""Specify Lasership Attributes (Lasership only). Multiple options accepted.""" @@ -315,10 +343,22 @@ class ShipmentExtra(BaseModel): r"""Request a QR code for a given transaction when creating a shipping label (USPS domestic and Evri UK only).""" reference_1: Optional[str] = None - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 40 characters (Express services); Max 30 characters (Ground services) | + """ reference_2: Optional[str] = None - r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference.""" + r"""Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference. + + **Carrier-Specific Constraints:** + | Carrier | Constraints | + |:---|:---| + | FedEx | Max 30 characters | + """ request_retail_rates: Optional[bool] = None r"""Returns retail rates instead of account-based rates (UPS and FedEx only).""" @@ -344,3 +384,91 @@ class ShipmentExtra(BaseModel): store_number: Optional[UPSReferenceFields] = None transaction_reference_number: Optional[UPSReferenceFields] = None + + usmca_eligible: Optional[bool] = None + r"""UPS only. Request USMCA (United States-Mexico-Canada Agreement) preferential tariff treatment. + When enabled, it includes the USMCA eligibility declaration in customs documentation. + + Supported routes and value limits: + - USA/Canada → Mexico: ≤ $1,000 USD + - Canada/Mexico → USA: ≤ $2,500 USD + - USA/Mexico → Canada: ≤ $3,300 CAD + + Only for declaration-only shipments, full USMCA - FormType 04 (Certificate of Origin) is not supported. + """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "accounts_receivable_customer_account", + "alcohol", + "ancillary_endorsement", + "appropriation_number", + "authority_to_leave", + "bill_of_lading_number", + "billing", + "bypass_address_validation", + "carbon_neutral", + "carrier_hub_id", + "carrier_hub_travel_time", + "COD", + "cod_number", + "container_type", + "critical_pull_time", + "customer_branch", + "customer_reference", + "dangerous_goods", + "dangerous_goods_code", + "dealer_order_number", + "delivery_instructions", + "dept_number", + "dry_ice", + "fda_product_code", + "fulfillment_center", + "insurance", + "invoice_number", + "is_return", + "lasership_attrs", + "lasership_declared_value", + "manifest_number", + "model_number", + "part_number", + "po_number", + "preferred_delivery_timeframe", + "premium", + "production_code", + "purchase_request_number", + "qr_code_requested", + "reference_1", + "reference_2", + "request_retail_rates", + "return_service_type", + "rma_number", + "saturday_delivery", + "salesperson_number", + "serial_number", + "signature_confirmation", + "store_number", + "transaction_reference_number", + "usmca_eligible", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + ShipmentExtra.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/shipmentpaginatedlist.py b/src/shippo/models/components/shipmentpaginatedlist.py index 86561ecb..b2d27288 100644 --- a/src/shippo/models/components/shipmentpaginatedlist.py +++ b/src/shippo/models/components/shipmentpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .shipment import Shipment, ShipmentTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class ShipmentPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Shipment]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/shippoaccount.py b/src/shippo/models/components/shippoaccount.py index c131c879..47e90da0 100644 --- a/src/shippo/models/components/shippoaccount.py +++ b/src/shippo/models/components/shippoaccount.py @@ -2,7 +2,8 @@ from __future__ import annotations from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -31,3 +32,21 @@ class ShippoAccount(BaseModel): object_id: Optional[str] = None object_updated: Optional[datetime] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["company_name", "object_created", "object_id", "object_updated"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/shippoaccountpaginatedlist.py b/src/shippo/models/components/shippoaccountpaginatedlist.py index ae7b10c1..f545f8db 100644 --- a/src/shippo/models/components/shippoaccountpaginatedlist.py +++ b/src/shippo/models/components/shippoaccountpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .shippoaccount import ShippoAccount, ShippoAccountTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class ShippoAccountPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[ShippoAccount]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/track.py b/src/shippo/models/components/track.py index 51b22452..1f196e9b 100644 --- a/src/shippo/models/components/track.py +++ b/src/shippo/models/components/track.py @@ -11,17 +11,20 @@ TrackingStatusLocationBaseTypedDict, ) from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class TrackTypedDict(TypedDict): + r"""Tracking status""" + carrier: str - r"""Name of the carrier of the shipment to track. See Carriers.""" + r"""Name of the carrier of the shipment to track. See [Carriers](/shippoapi/public-api/carriers).""" messages: List[str] tracking_history: List[TrackingStatusTypedDict] - r"""A list of tracking events, following the same structure as tracking_status. + r"""A list of tracking events, following the same structure as `tracking_status`. It contains a full history of all tracking statuses, starting with the earlier tracking event first. """ tracking_number: str @@ -40,19 +43,21 @@ class TrackTypedDict(TypedDict): tracking_status: NotRequired[TrackingStatusTypedDict] r"""The latest tracking information of this shipment.""" transaction: NotRequired[str] - r"""The object_id of the transaction associated with this tracking object. + r"""The `object_id` of the transaction associated with this tracking object. This field is visible only to the object owner of the transaction. """ class Track(BaseModel): + r"""Tracking status""" + carrier: str - r"""Name of the carrier of the shipment to track. See Carriers.""" + r"""Name of the carrier of the shipment to track. See [Carriers](/shippoapi/public-api/carriers).""" messages: List[str] tracking_history: List[TrackingStatus] - r"""A list of tracking events, following the same structure as tracking_status. + r"""A list of tracking events, following the same structure as `tracking_status`. It contains a full history of all tracking statuses, starting with the earlier tracking event first. """ @@ -80,6 +85,33 @@ class Track(BaseModel): r"""The latest tracking information of this shipment.""" transaction: Optional[str] = None - r"""The object_id of the transaction associated with this tracking object. + r"""The `object_id` of the transaction associated with this tracking object. This field is visible only to the object owner of the transaction. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "address_from", + "address_to", + "eta", + "metadata", + "original_eta", + "servicelevel", + "tracking_status", + "transaction", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/trackingstatus.py b/src/shippo/models/components/trackingstatus.py index 626f55e3..d075a1c7 100644 --- a/src/shippo/models/components/trackingstatus.py +++ b/src/shippo/models/components/trackingstatus.py @@ -11,7 +11,8 @@ TrackingStatusSubstatusTypedDict, ) from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -57,3 +58,19 @@ class TrackingStatus(BaseModel): status_date: Optional[datetime] = None r"""Date and time when the carrier scanned this tracking event. This is displayed in UTC.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["location", "substatus", "status_date"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/trackingstatuslocationbase.py b/src/shippo/models/components/trackingstatuslocationbase.py index c5363544..ba3007d3 100644 --- a/src/shippo/models/components/trackingstatuslocationbase.py +++ b/src/shippo/models/components/trackingstatuslocationbase.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -21,3 +22,19 @@ class TrackingStatusLocationBase(BaseModel): state: Optional[str] = None zip: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["city", "country", "state", "zip"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/trackingstatussubstatus.py b/src/shippo/models/components/trackingstatussubstatus.py index b3f2a08b..2d2edaba 100644 --- a/src/shippo/models/components/trackingstatussubstatus.py +++ b/src/shippo/models/components/trackingstatussubstatus.py @@ -9,9 +9,9 @@ class TrackingStatusSubstatusTypedDict(TypedDict): r"""A finer-grained classification of the tracking event.""" code: str - r"""A code that represents the substatus of the shipment. See the Event Definitions for more information.""" + r"""A code that represents the substatus of the shipment. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information.""" text: str - r"""A human-readable description of the substatus. See the Event Definitions for more information.""" + r"""A human-readable description of the substatus. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information.""" action_required: bool r"""Indicates whether the substatus requires action from the shipper or recipient to complete delivery.""" @@ -20,10 +20,10 @@ class TrackingStatusSubstatus(BaseModel): r"""A finer-grained classification of the tracking event.""" code: str - r"""A code that represents the substatus of the shipment. See the Event Definitions for more information.""" + r"""A code that represents the substatus of the shipment. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information.""" text: str - r"""A human-readable description of the substatus. See the Event Definitions for more information.""" + r"""A human-readable description of the substatus. See the [Event Definitions](https://docs.goshippo.com/docs/tracking/tracking/#event-definitions) for more information.""" action_required: bool r"""Indicates whether the substatus requires action from the shipper or recipient to complete delivery.""" diff --git a/src/shippo/models/components/tracksrequest.py b/src/shippo/models/components/tracksrequest.py index 63c5c9b6..dbe86fad 100644 --- a/src/shippo/models/components/tracksrequest.py +++ b/src/shippo/models/components/tracksrequest.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -24,3 +25,19 @@ class TracksRequest(BaseModel): metadata: Optional[str] = None r"""A string of up to 100 characters that can be filled with any additional information you want to attach to the object.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["metadata"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/transaction.py b/src/shippo/models/components/transaction.py index 273d208b..59dde7c5 100644 --- a/src/shippo/models/components/transaction.py +++ b/src/shippo/models/components/transaction.py @@ -39,12 +39,28 @@ class CreatedBy(BaseModel): username: Optional[str] = None + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["first_name", "last_name", "username"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + RateUnionTypedDict = TypeAliasType("RateUnionTypedDict", Union[CoreRateTypedDict, str]) r"""ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. -
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. +Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. """ @@ -52,7 +68,7 @@ class CreatedBy(BaseModel): r"""ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. -
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. +Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. """ @@ -65,8 +81,8 @@ class TransactionTypedDict(TypedDict): eta: NotRequired[str] r"""The estimated time of arrival according to the carrier.""" label_file_type: NotRequired[LabelFileTypeEnum] - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ label_url: NotRequired[str] r"""A URL pointing directly to the label in the format you've set in your settings. @@ -97,7 +113,7 @@ class TransactionTypedDict(TypedDict): r"""ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. -
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. + Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. """ status: NotRequired[TransactionStatusEnum] r"""Indicates the status of the Transaction.""" @@ -127,8 +143,8 @@ class Transaction(BaseModel): r"""The estimated time of arrival according to the carrier.""" label_file_type: Optional[LabelFileTypeEnum] = None - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ label_url: Optional[str] = None @@ -170,7 +186,7 @@ class Transaction(BaseModel): r"""ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. -
Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. + Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing. """ status: Optional[TransactionStatusEnum] = None @@ -194,51 +210,48 @@ class Transaction(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = [ - "commercial_invoice_url", - "created_by", - "eta", - "label_file_type", - "label_url", - "messages", - "metadata", - "object_created", - "object_id", - "object_owner", - "object_state", - "object_updated", - "parcel", - "qr_code_url", - "rate", - "status", - "test", - "tracking_number", - "tracking_status", - "tracking_url_provider", - ] - nullable_fields = ["created_by"] - null_default_fields = [] - + optional_fields = set( + [ + "commercial_invoice_url", + "created_by", + "eta", + "label_file_type", + "label_url", + "messages", + "metadata", + "object_created", + "object_id", + "object_owner", + "object_state", + "object_updated", + "parcel", + "qr_code_url", + "rate", + "status", + "test", + "tracking_number", + "tracking_status", + "tracking_url_provider", + ] + ) + nullable_fields = set(["created_by"]) serialized = handler(self) - m = {} - for n, f in self.model_fields.items(): + for n, f in type(self).model_fields.items(): k = f.alias or n - val = serialized.get(k) - serialized.pop(k, None) - - optional_nullable = k in optional_fields and k in nullable_fields - is_set = ( - self.__pydantic_fields_set__.intersection({n}) - or k in null_default_fields - ) # pylint: disable=no-member - - if val is not None and val != UNSET_SENTINEL: - m[k] = val - elif val != UNSET_SENTINEL and ( - not k in optional_fields or (optional_nullable and is_set) - ): - m[k] = val + val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val return m diff --git a/src/shippo/models/components/transactioncreaterequest.py b/src/shippo/models/components/transactioncreaterequest.py index 85036ec1..042e59c6 100644 --- a/src/shippo/models/components/transactioncreaterequest.py +++ b/src/shippo/models/components/transactioncreaterequest.py @@ -3,7 +3,8 @@ from __future__ import annotations from .labelfiletypeenum import LabelFileTypeEnum import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -12,8 +13,8 @@ class TransactionCreateRequestTypedDict(TypedDict): rate: str async_: NotRequired[bool] label_file_type: NotRequired[LabelFileTypeEnum] - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: NotRequired[str] order: NotRequired[str] @@ -25,10 +26,32 @@ class TransactionCreateRequest(BaseModel): async_: Annotated[Optional[bool], pydantic.Field(alias="async")] = True label_file_type: Optional[LabelFileTypeEnum] = None - r"""Print format of the label. If empty, will use the default format set from - the Shippo dashboard. + r"""Print format of the [label](https://docs.goshippo.com/docs/shipments/shippinglabelsizes/). If empty, will use the default format set from + [the Shippo dashboard.](https://apps.goshippo.com/settings/labels) """ metadata: Optional[str] = None order: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["async", "label_file_type", "metadata", "order"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + TransactionCreateRequest.model_rebuild() +except NameError: + pass diff --git a/src/shippo/models/components/transactionpaginatedlist.py b/src/shippo/models/components/transactionpaginatedlist.py index acca0cd3..f4b70fbe 100644 --- a/src/shippo/models/components/transactionpaginatedlist.py +++ b/src/shippo/models/components/transactionpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .transaction import Transaction, TransactionTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -19,3 +20,19 @@ class TransactionPaginatedList(BaseModel): previous: Optional[str] = None results: Optional[List[Transaction]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/upsconnectexistingownaccountparameters.py b/src/shippo/models/components/upsconnectexistingownaccountparameters.py index aea15005..29e35fbc 100644 --- a/src/shippo/models/components/upsconnectexistingownaccountparameters.py +++ b/src/shippo/models/components/upsconnectexistingownaccountparameters.py @@ -1,15 +1,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict class UPSConnectExistingOwnAccountParametersTypedDict(TypedDict): r"""An array of additional parameters for the account, such as e.g. password or token. - Please check the carrier accounts tutorial page for the parameters per carrier.
+ Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the parameters per carrier. To protect account information, this field will be masked in any API response. + In the case of masked fields, they should be handled carefully. + + Fields also must consider: + - Not providing a *fields* in parameters will not result in a change to any configured value + - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value + - Providing *field* with null will clear the configured value + - Providing *field* with any other value will change the configured value and may affect the behavior of the account. """ account_number: str @@ -50,8 +58,15 @@ class UPSConnectExistingOwnAccountParametersTypedDict(TypedDict): class UPSConnectExistingOwnAccountParameters(BaseModel): r"""An array of additional parameters for the account, such as e.g. password or token. - Please check the carrier accounts tutorial page for the parameters per carrier.
+ Please check the [carrier accounts tutorial](https://docs.goshippo.com/docs/carriers/carrieraccounts/) page for the parameters per carrier. To protect account information, this field will be masked in any API response. + In the case of masked fields, they should be handled carefully. + + Fields also must consider: + - Not providing a *fields* in parameters will not result in a change to any configured value + - Providing a value in a *masked field* with ****** (exactly 6 asterisks) will not change the configured value + - Providing *field* with null will clear the configured value + - Providing *field* with any other value will change the configured value and may affect the behavior of the account. """ account_number: str @@ -109,3 +124,29 @@ class UPSConnectExistingOwnAccountParameters(BaseModel): invoice_value: Optional[str] = None r"""Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "aia_country_iso2", + "billing_address_street2", + "currency_code", + "invoice_controlid", + "invoice_date", + "invoice_number", + "invoice_value", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/upsreferencefields.py b/src/shippo/models/components/upsreferencefields.py index 69e52438..9b078b0f 100644 --- a/src/shippo/models/components/upsreferencefields.py +++ b/src/shippo/models/components/upsreferencefields.py @@ -1,7 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -24,3 +25,19 @@ class UPSReferenceFields(BaseModel): ref_sort: Optional[int] = None r"""Order UPS reference fields are printed on ZPL labels. For UPS shipments, if you choose to set `ref_sort` for one reference, you must set `ref_sort` for all other supported UPS references using unique integers.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["prefix", "value", "ref_sort"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/userparceltemplate.py b/src/shippo/models/components/userparceltemplate.py index e30c105b..c14b7eb8 100644 --- a/src/shippo/models/components/userparceltemplate.py +++ b/src/shippo/models/components/userparceltemplate.py @@ -5,7 +5,8 @@ from .distanceunitenum import DistanceUnitEnum from .weightunitenum import WeightUnitEnum from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -71,3 +72,34 @@ class UserParcelTemplate(BaseModel): r"""Date and time of last update on User Parcel Template""" template: Optional[CarrierParcelTemplate] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "distance_unit", + "height", + "length", + "name", + "weight", + "weight_unit", + "width", + "object_created", + "object_id", + "object_owner", + "object_updated", + "template", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/userparceltemplatelist.py b/src/shippo/models/components/userparceltemplatelist.py index 88e228a7..225b10d3 100644 --- a/src/shippo/models/components/userparceltemplatelist.py +++ b/src/shippo/models/components/userparceltemplatelist.py @@ -2,14 +2,35 @@ from __future__ import annotations from .userparceltemplate import UserParcelTemplate, UserParcelTemplateTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict class UserParcelTemplateListTypedDict(TypedDict): + r"""List of user parcel templates""" + results: NotRequired[List[UserParcelTemplateTypedDict]] class UserParcelTemplateList(BaseModel): + r"""List of user parcel templates""" + results: Optional[List[UserParcelTemplate]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/userparceltemplateupdaterequest.py b/src/shippo/models/components/userparceltemplateupdaterequest.py index f8c14070..c3054ace 100644 --- a/src/shippo/models/components/userparceltemplateupdaterequest.py +++ b/src/shippo/models/components/userparceltemplateupdaterequest.py @@ -3,7 +3,8 @@ from __future__ import annotations from .distanceunitenum import DistanceUnitEnum from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -46,3 +47,19 @@ class UserParcelTemplateUpdateRequest(BaseModel): weight_unit: Optional[WeightUnitEnum] = None r"""The unit used for weight.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["weight", "weight_unit"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py b/src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py index 241fdc48..e515edb6 100644 --- a/src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py +++ b/src/shippo/models/components/userparceltemplatewithcarriertemplatecreaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -25,3 +26,19 @@ class UserParcelTemplateWithCarrierTemplateCreateRequest(BaseModel): weight_unit: Optional[WeightUnitEnum] = None r"""The unit used for weight.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["template", "weight", "weight_unit"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py b/src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py index 7f744faf..3a43b031 100644 --- a/src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py +++ b/src/shippo/models/components/userparceltemplatewithoutcarriertemplatecreaterequest.py @@ -3,7 +3,8 @@ from __future__ import annotations from .distanceunitenum import DistanceUnitEnum from .weightunitenum import WeightUnitEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -46,3 +47,19 @@ class UserParcelTemplateWithoutCarrierTemplateCreateRequest(BaseModel): weight_unit: Optional[WeightUnitEnum] = None r"""The unit used for weight.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["weight", "weight_unit"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhook.py b/src/shippo/models/components/webhook.py index 083485a2..7d8efc5c 100644 --- a/src/shippo/models/components/webhook.py +++ b/src/shippo/models/components/webhook.py @@ -2,7 +2,8 @@ from __future__ import annotations from datetime import datetime -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -50,3 +51,28 @@ class Webhook(BaseModel): object_owner: Optional[str] = None r"""Username of the user who created the webhook.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "active", + "is_test", + "object_created", + "object_id", + "object_updated", + "object_owner", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhookpaginatedlist.py b/src/shippo/models/components/webhookpaginatedlist.py index cc5a09f8..e8748764 100644 --- a/src/shippo/models/components/webhookpaginatedlist.py +++ b/src/shippo/models/components/webhookpaginatedlist.py @@ -2,7 +2,8 @@ from __future__ import annotations from .webhook import Webhook, WebhookTypedDict -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -22,3 +23,19 @@ class WebhookPaginatedList(BaseModel): count: Optional[int] = None results: Optional[List[Webhook]] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["next", "previous", "count", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhookpayload.py b/src/shippo/models/components/webhookpayload.py index 258cb7d7..7bcbf15b 100644 --- a/src/shippo/models/components/webhookpayload.py +++ b/src/shippo/models/components/webhookpayload.py @@ -21,6 +21,7 @@ WebhookPayloadTransactionTypedDict, ], ) +r"""The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration.""" WebhookPayload = Annotated[ @@ -33,3 +34,4 @@ ], Discriminator(lambda m: get_discriminator(m, "event", "event")), ] +r"""The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration.""" diff --git a/src/shippo/models/components/webhookpayloadbatch.py b/src/shippo/models/components/webhookpayloadbatch.py index 3ab0eb8b..e87de328 100644 --- a/src/shippo/models/components/webhookpayloadbatch.py +++ b/src/shippo/models/components/webhookpayloadbatch.py @@ -2,7 +2,8 @@ from __future__ import annotations from .webhookeventtypeenum import WebhookEventTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -29,3 +30,19 @@ class WebhookPayloadBatch(BaseModel): data: Optional[str] = None r"""A string containing the batch object ID, of the form 'batch {batchId} (created|processing complete)'.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["event", "test", "data"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhookpayloadtrack.py b/src/shippo/models/components/webhookpayloadtrack.py index 4a6aa323..c514ebf4 100644 --- a/src/shippo/models/components/webhookpayloadtrack.py +++ b/src/shippo/models/components/webhookpayloadtrack.py @@ -3,7 +3,8 @@ from __future__ import annotations from .track import Track, TrackTypedDict from .webhookeventtypeenum import WebhookEventTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -28,3 +29,19 @@ class WebhookPayloadTrack(BaseModel): r"""Determines whether the webhook is a test webhook or not.""" data: Optional[Track] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["event", "test", "data"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhookpayloadtransaction.py b/src/shippo/models/components/webhookpayloadtransaction.py index d0dee958..4fca88ee 100644 --- a/src/shippo/models/components/webhookpayloadtransaction.py +++ b/src/shippo/models/components/webhookpayloadtransaction.py @@ -3,7 +3,8 @@ from __future__ import annotations from .transaction import Transaction, TransactionTypedDict from .webhookeventtypeenum import WebhookEventTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -28,3 +29,19 @@ class WebhookPayloadTransaction(BaseModel): r"""Determines whether the webhook is a test webhook or not.""" data: Optional[Transaction] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["event", "test", "data"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/components/webhookupdaterequest.py b/src/shippo/models/components/webhookupdaterequest.py index 94dceff2..fb30f051 100644 --- a/src/shippo/models/components/webhookupdaterequest.py +++ b/src/shippo/models/components/webhookupdaterequest.py @@ -2,7 +2,8 @@ from __future__ import annotations from .webhookeventtypeenum import WebhookEventTypeEnum -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -30,3 +31,19 @@ class WebhookUpdateRequest(BaseModel): is_test: Optional[bool] = None r"""Determines whether the webhook is a test webhook or not.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["active", "is_test"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/errors/__init__.py b/src/shippo/models/errors/__init__.py index 7f31aafd..d942d6fa 100644 --- a/src/shippo/models/errors/__init__.py +++ b/src/shippo/models/errors/__init__.py @@ -1,22 +1,54 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .initiateoauth2signin import ( - BadRequestError, - BadRequestErrorData, - NotFoundError, - NotFoundErrorData, - UnauthorizedError, - UnauthorizedErrorData, -) -from .sdkerror import SDKError +from .shippoerror import ShippoError +from typing import Any, TYPE_CHECKING +from shippo.utils.dynamic_imports import lazy_getattr, lazy_dir + +if TYPE_CHECKING: + from .initiateoauth2signin import ( + BadRequestError, + BadRequestErrorData, + NotFoundError, + NotFoundErrorData, + UnauthorizedError, + UnauthorizedErrorData, + ) + from .no_response_error import NoResponseError + from .responsevalidationerror import ResponseValidationError + from .sdkerror import SDKError __all__ = [ "BadRequestError", "BadRequestErrorData", + "NoResponseError", "NotFoundError", "NotFoundErrorData", + "ResponseValidationError", "SDKError", + "ShippoError", "UnauthorizedError", "UnauthorizedErrorData", ] + +_dynamic_imports: dict[str, str] = { + "BadRequestError": ".initiateoauth2signin", + "BadRequestErrorData": ".initiateoauth2signin", + "NotFoundError": ".initiateoauth2signin", + "NotFoundErrorData": ".initiateoauth2signin", + "UnauthorizedError": ".initiateoauth2signin", + "UnauthorizedErrorData": ".initiateoauth2signin", + "NoResponseError": ".no_response_error", + "ResponseValidationError": ".responsevalidationerror", + "SDKError": ".sdkerror", +} + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) + + +def __dir__(): + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/shippo/models/errors/initiateoauth2signin.py b/src/shippo/models/errors/initiateoauth2signin.py index df6ce246..f6221602 100644 --- a/src/shippo/models/errors/initiateoauth2signin.py +++ b/src/shippo/models/errors/initiateoauth2signin.py @@ -1,60 +1,74 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from shippo import utils +from dataclasses import dataclass, field +import httpx +from shippo.models.errors import ShippoError from shippo.types import BaseModel from typing import Optional class NotFoundErrorData(BaseModel): title: Optional[str] = None - detail: Optional[str] = None -class NotFoundError(Exception): +@dataclass(unsafe_hash=True) +class NotFoundError(ShippoError): r"""Invalid carrier account provided by the user""" - data: NotFoundErrorData - - def __init__(self, data: NotFoundErrorData): - self.data = data + data: NotFoundErrorData = field(hash=False) - def __str__(self) -> str: - return utils.marshal_json(self.data, NotFoundErrorData) + def __init__( + self, + data: NotFoundErrorData, + raw_response: httpx.Response, + body: Optional[str] = None, + ): + message = body or raw_response.text + super().__init__(message, raw_response, body) + object.__setattr__(self, "data", data) class UnauthorizedErrorData(BaseModel): title: Optional[str] = None - detail: Optional[str] = None -class UnauthorizedError(Exception): +@dataclass(unsafe_hash=True) +class UnauthorizedError(ShippoError): r"""Invalid ShippoToken or unsupported carrier account provided by the user""" - data: UnauthorizedErrorData - - def __init__(self, data: UnauthorizedErrorData): - self.data = data + data: UnauthorizedErrorData = field(hash=False) - def __str__(self) -> str: - return utils.marshal_json(self.data, UnauthorizedErrorData) + def __init__( + self, + data: UnauthorizedErrorData, + raw_response: httpx.Response, + body: Optional[str] = None, + ): + message = body or raw_response.text + super().__init__(message, raw_response, body) + object.__setattr__(self, "data", data) class BadRequestErrorData(BaseModel): title: Optional[str] = None - detail: Optional[str] = None -class BadRequestError(Exception): +@dataclass(unsafe_hash=True) +class BadRequestError(ShippoError): r"""Invalid parameters provided by the user""" - data: BadRequestErrorData - - def __init__(self, data: BadRequestErrorData): - self.data = data - - def __str__(self) -> str: - return utils.marshal_json(self.data, BadRequestErrorData) + data: BadRequestErrorData = field(hash=False) + + def __init__( + self, + data: BadRequestErrorData, + raw_response: httpx.Response, + body: Optional[str] = None, + ): + message = body or raw_response.text + super().__init__(message, raw_response, body) + object.__setattr__(self, "data", data) diff --git a/src/shippo/models/errors/no_response_error.py b/src/shippo/models/errors/no_response_error.py new file mode 100644 index 00000000..1deab64b --- /dev/null +++ b/src/shippo/models/errors/no_response_error.py @@ -0,0 +1,17 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from dataclasses import dataclass + + +@dataclass(unsafe_hash=True) +class NoResponseError(Exception): + """Error raised when no HTTP response is received from the server.""" + + message: str + + def __init__(self, message: str = "No response received"): + object.__setattr__(self, "message", message) + super().__init__(message) + + def __str__(self): + return self.message diff --git a/src/shippo/models/errors/responsevalidationerror.py b/src/shippo/models/errors/responsevalidationerror.py new file mode 100644 index 00000000..405687f4 --- /dev/null +++ b/src/shippo/models/errors/responsevalidationerror.py @@ -0,0 +1,27 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +import httpx +from typing import Optional +from dataclasses import dataclass + +from shippo.models.errors import ShippoError + + +@dataclass(unsafe_hash=True) +class ResponseValidationError(ShippoError): + """Error raised when there is a type mismatch between the response data and the expected Pydantic model.""" + + def __init__( + self, + message: str, + raw_response: httpx.Response, + cause: Exception, + body: Optional[str] = None, + ): + message = f"{message}: {cause}" + super().__init__(message, raw_response, body) + + @property + def cause(self): + """Normally the Pydantic ValidationError""" + return self.__cause__ diff --git a/src/shippo/models/errors/sdkerror.py b/src/shippo/models/errors/sdkerror.py index 03216cbf..37cff16b 100644 --- a/src/shippo/models/errors/sdkerror.py +++ b/src/shippo/models/errors/sdkerror.py @@ -1,22 +1,40 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from dataclasses import dataclass -from typing import Optional import httpx +from typing import Optional +from dataclasses import dataclass + +from shippo.models.errors import ShippoError + +MAX_MESSAGE_LEN = 10_000 + + +@dataclass(unsafe_hash=True) +class SDKError(ShippoError): + """The fallback error class if no more specific error class is matched.""" + + def __init__( + self, message: str, raw_response: httpx.Response, body: Optional[str] = None + ): + body_display = body or raw_response.text or '""' + if message: + message += ": " + message += f"Status {raw_response.status_code}" -@dataclass -class SDKError(Exception): - """Represents an error returned by the API.""" + headers = raw_response.headers + content_type = headers.get("content-type", '""') + if content_type != "application/json": + if " " in content_type: + content_type = f'"{content_type}"' + message += f" Content-Type {content_type}" - message: str - status_code: int = -1 - body: str = "" - raw_response: Optional[httpx.Response] = None + if len(body_display) > MAX_MESSAGE_LEN: + truncated = body_display[:MAX_MESSAGE_LEN] + remaining = len(body_display) - MAX_MESSAGE_LEN + body_display = f"{truncated}...and {remaining} more chars" - def __str__(self): - body = "" - if len(self.body) > 0: - body = f"\n{self.body}" + message += f". Body: {body_display}" + message = message.strip() - return f"{self.message}: Status {self.status_code}{body}" + super().__init__(message, raw_response, body) diff --git a/src/shippo/models/errors/shippoerror.py b/src/shippo/models/errors/shippoerror.py new file mode 100644 index 00000000..54e48029 --- /dev/null +++ b/src/shippo/models/errors/shippoerror.py @@ -0,0 +1,30 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +import httpx +from typing import Optional +from dataclasses import dataclass, field + + +@dataclass(unsafe_hash=True) +class ShippoError(Exception): + """The base class for all HTTP error responses.""" + + message: str + status_code: int + body: str + headers: httpx.Headers = field(hash=False) + raw_response: httpx.Response = field(hash=False) + + def __init__( + self, message: str, raw_response: httpx.Response, body: Optional[str] = None + ): + object.__setattr__(self, "message", message) + object.__setattr__(self, "status_code", raw_response.status_code) + object.__setattr__( + self, "body", body if body is not None else raw_response.text + ) + object.__setattr__(self, "headers", raw_response.headers) + object.__setattr__(self, "raw_response", raw_response) + + def __str__(self): + return self.message diff --git a/src/shippo/models/internal/__init__.py b/src/shippo/models/internal/__init__.py index d49aa0f3..7aa1e937 100644 --- a/src/shippo/models/internal/__init__.py +++ b/src/shippo/models/internal/__init__.py @@ -1,6 +1,25 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .globals import Globals, GlobalsTypedDict +from typing import Any, TYPE_CHECKING +from shippo.utils.dynamic_imports import lazy_getattr, lazy_dir + +if TYPE_CHECKING: + from .globals import Globals, GlobalsTypedDict __all__ = ["Globals", "GlobalsTypedDict"] + +_dynamic_imports: dict[str, str] = { + "Globals": ".globals", + "GlobalsTypedDict": ".globals", +} + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) + + +def __dir__(): + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/shippo/models/internal/globals.py b/src/shippo/models/internal/globals.py index 54dd243c..26b3aec9 100644 --- a/src/shippo/models/internal/globals.py +++ b/src/shippo/models/internal/globals.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class Globals(BaseModel): @@ -18,5 +19,21 @@ class Globals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/__init__.py b/src/shippo/models/operations/__init__.py index e69a5043..4df6313e 100644 --- a/src/shippo/models/operations/__init__.py +++ b/src/shippo/models/operations/__init__.py @@ -1,342 +1,346 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .addshipmentstobatch import ( - AddShipmentsToBatchGlobals, - AddShipmentsToBatchGlobalsTypedDict, - AddShipmentsToBatchRequest, - AddShipmentsToBatchRequestTypedDict, -) -from .createaddress import CreateAddressGlobals, CreateAddressGlobalsTypedDict -from .createbatch import CreateBatchGlobals, CreateBatchGlobalsTypedDict -from .createcarrieraccount import ( - CreateCarrierAccountGlobals, - CreateCarrierAccountGlobalsTypedDict, -) -from .createcustomsdeclaration import ( - CreateCustomsDeclarationGlobals, - CreateCustomsDeclarationGlobalsTypedDict, -) -from .createcustomsitem import ( - CreateCustomsItemGlobals, - CreateCustomsItemGlobalsTypedDict, -) -from .createliverate import CreateLiveRateGlobals, CreateLiveRateGlobalsTypedDict -from .createmanifest import CreateManifestGlobals, CreateManifestGlobalsTypedDict -from .createorder import CreateOrderGlobals, CreateOrderGlobalsTypedDict -from .createparcel import ( - CreateParcelGlobals, - CreateParcelGlobalsTypedDict, - CreateParcelRequest, - CreateParcelRequestTypedDict, -) -from .createpickup import CreatePickupGlobals, CreatePickupGlobalsTypedDict -from .createrefund import CreateRefundGlobals, CreateRefundGlobalsTypedDict -from .createservicegroup import ( - CreateServiceGroupGlobals, - CreateServiceGroupGlobalsTypedDict, -) -from .createshipment import CreateShipmentGlobals, CreateShipmentGlobalsTypedDict -from .createshippoaccount import ( - CreateShippoAccountGlobals, - CreateShippoAccountGlobalsTypedDict, -) -from .createtrack import CreateTrackGlobals, CreateTrackGlobalsTypedDict -from .createtransaction import ( - CreateTransactionGlobals, - CreateTransactionGlobalsTypedDict, - CreateTransactionRequest, - CreateTransactionRequestTypedDict, -) -from .createuserparceltemplate import ( - CreateUserParcelTemplateGlobals, - CreateUserParcelTemplateGlobalsTypedDict, -) -from .deletedefaultparceltemplate import ( - DeleteDefaultParcelTemplateGlobals, - DeleteDefaultParcelTemplateGlobalsTypedDict, - DeleteDefaultParcelTemplateRequest, - DeleteDefaultParcelTemplateRequestTypedDict, -) -from .deleteservicegroup import ( - DeleteServiceGroupGlobals, - DeleteServiceGroupGlobalsTypedDict, - DeleteServiceGroupRequest, - DeleteServiceGroupRequestTypedDict, -) -from .deleteuserparceltemplate import ( - DeleteUserParcelTemplateGlobals, - DeleteUserParcelTemplateGlobalsTypedDict, - DeleteUserParcelTemplateRequest, - DeleteUserParcelTemplateRequestTypedDict, -) -from .deletewebhook import DeleteWebhookRequest, DeleteWebhookRequestTypedDict -from .getaddress import ( - GetAddressGlobals, - GetAddressGlobalsTypedDict, - GetAddressRequest, - GetAddressRequestTypedDict, -) -from .getbatch import ( - GetBatchGlobals, - GetBatchGlobalsTypedDict, - GetBatchRequest, - GetBatchRequestTypedDict, -) -from .getcarrieraccount import ( - GetCarrierAccountGlobals, - GetCarrierAccountGlobalsTypedDict, - GetCarrierAccountRequest, - GetCarrierAccountRequestTypedDict, -) -from .getcarrierparceltemplate import ( - GetCarrierParcelTemplateGlobals, - GetCarrierParcelTemplateGlobalsTypedDict, - GetCarrierParcelTemplateRequest, - GetCarrierParcelTemplateRequestTypedDict, -) -from .getcarrierregistrationstatus import ( - Carrier, - GetCarrierRegistrationStatusGlobals, - GetCarrierRegistrationStatusGlobalsTypedDict, - GetCarrierRegistrationStatusRequest, - GetCarrierRegistrationStatusRequestTypedDict, -) -from .getcustomsdeclaration import ( - GetCustomsDeclarationGlobals, - GetCustomsDeclarationGlobalsTypedDict, - GetCustomsDeclarationRequest, - GetCustomsDeclarationRequestTypedDict, -) -from .getcustomsitem import ( - GetCustomsItemGlobals, - GetCustomsItemGlobalsTypedDict, - GetCustomsItemRequest, - GetCustomsItemRequestTypedDict, -) -from .getdefaultparceltemplate import ( - GetDefaultParcelTemplateGlobals, - GetDefaultParcelTemplateGlobalsTypedDict, - GetDefaultParcelTemplateRequest, - GetDefaultParcelTemplateRequestTypedDict, -) -from .getmanifest import ( - GetManifestGlobals, - GetManifestGlobalsTypedDict, - GetManifestRequest, - GetManifestRequestTypedDict, -) -from .getorder import ( - GetOrderGlobals, - GetOrderGlobalsTypedDict, - GetOrderRequest, - GetOrderRequestTypedDict, -) -from .getparcel import ( - GetParcelGlobals, - GetParcelGlobalsTypedDict, - GetParcelRequest, - GetParcelRequestTypedDict, -) -from .getrate import ( - GetRateGlobals, - GetRateGlobalsTypedDict, - GetRateRequest, - GetRateRequestTypedDict, -) -from .getrefund import ( - GetRefundGlobals, - GetRefundGlobalsTypedDict, - GetRefundRequest, - GetRefundRequestTypedDict, -) -from .getshipment import ( - GetShipmentGlobals, - GetShipmentGlobalsTypedDict, - GetShipmentRequest, - GetShipmentRequestTypedDict, -) -from .getshippoaccount import ( - GetShippoAccountGlobals, - GetShippoAccountGlobalsTypedDict, - GetShippoAccountRequest, - GetShippoAccountRequestTypedDict, -) -from .gettrack import ( - GetTrackGlobals, - GetTrackGlobalsTypedDict, - GetTrackRequest, - GetTrackRequestTypedDict, -) -from .gettransaction import ( - GetTransactionGlobals, - GetTransactionGlobalsTypedDict, - GetTransactionRequest, - GetTransactionRequestTypedDict, -) -from .getuserparceltemplate import ( - GetUserParcelTemplateGlobals, - GetUserParcelTemplateGlobalsTypedDict, - GetUserParcelTemplateRequest, - GetUserParcelTemplateRequestTypedDict, -) -from .getwebhook import GetWebhookRequest, GetWebhookRequestTypedDict -from .initiateoauth2signin import ( - InitiateOauth2SigninGlobals, - InitiateOauth2SigninGlobalsTypedDict, - InitiateOauth2SigninRequest, - InitiateOauth2SigninRequestTypedDict, - InitiateOauth2SigninResponse, - InitiateOauth2SigninResponseTypedDict, -) -from .listaddresses import ( - ListAddressesGlobals, - ListAddressesGlobalsTypedDict, - ListAddressesRequest, - ListAddressesRequestTypedDict, -) -from .listcarrieraccounts import ( - ListCarrierAccountsGlobals, - ListCarrierAccountsGlobalsTypedDict, - ListCarrierAccountsRequest, - ListCarrierAccountsRequestTypedDict, -) -from .listcarrierparceltemplates import ( - Include, - ListCarrierParcelTemplatesGlobals, - ListCarrierParcelTemplatesGlobalsTypedDict, - ListCarrierParcelTemplatesRequest, - ListCarrierParcelTemplatesRequestTypedDict, -) -from .listcustomsdeclarations import ( - ListCustomsDeclarationsGlobals, - ListCustomsDeclarationsGlobalsTypedDict, - ListCustomsDeclarationsRequest, - ListCustomsDeclarationsRequestTypedDict, -) -from .listcustomsitems import ( - ListCustomsItemsGlobals, - ListCustomsItemsGlobalsTypedDict, - ListCustomsItemsRequest, - ListCustomsItemsRequestTypedDict, -) -from .listmanifests import ( - ListManifestsGlobals, - ListManifestsGlobalsTypedDict, - ListManifestsRequest, - ListManifestsRequestTypedDict, -) -from .listorders import ( - ListOrdersGlobals, - ListOrdersGlobalsTypedDict, - ListOrdersRequest, - ListOrdersRequestTypedDict, -) -from .listparcels import ( - ListParcelsGlobals, - ListParcelsGlobalsTypedDict, - ListParcelsRequest, - ListParcelsRequestTypedDict, -) -from .listrefunds import ( - ListRefundsGlobals, - ListRefundsGlobalsTypedDict, - ListRefundsRequest, - ListRefundsRequestTypedDict, -) -from .listservicegroups import ( - ListServiceGroupsGlobals, - ListServiceGroupsGlobalsTypedDict, - ListServiceGroupsRequest, - ListServiceGroupsRequestTypedDict, -) -from .listshipmentrates import ( - ListShipmentRatesGlobals, - ListShipmentRatesGlobalsTypedDict, - ListShipmentRatesRequest, - ListShipmentRatesRequestTypedDict, -) -from .listshipmentratesbycurrencycode import ( - ListShipmentRatesByCurrencyCodeGlobals, - ListShipmentRatesByCurrencyCodeGlobalsTypedDict, - ListShipmentRatesByCurrencyCodeRequest, - ListShipmentRatesByCurrencyCodeRequestTypedDict, -) -from .listshipments import ( - ListShipmentsGlobals, - ListShipmentsGlobalsTypedDict, - ListShipmentsRequest, - ListShipmentsRequestTypedDict, -) -from .listshippoaccounts import ( - ListShippoAccountsGlobals, - ListShippoAccountsGlobalsTypedDict, - ListShippoAccountsRequest, - ListShippoAccountsRequestTypedDict, -) -from .listtransactions import ( - ListTransactionsGlobals, - ListTransactionsGlobalsTypedDict, - ListTransactionsRequest, - ListTransactionsRequestTypedDict, -) -from .listuserparceltemplates import ( - ListUserParcelTemplatesGlobals, - ListUserParcelTemplatesGlobalsTypedDict, - ListUserParcelTemplatesRequest, - ListUserParcelTemplatesRequestTypedDict, -) -from .purchasebatch import ( - PurchaseBatchGlobals, - PurchaseBatchGlobalsTypedDict, - PurchaseBatchRequest, - PurchaseBatchRequestTypedDict, -) -from .registercarrieraccount import ( - RegisterCarrierAccountGlobals, - RegisterCarrierAccountGlobalsTypedDict, - RegisterCarrierAccountRequest, - RegisterCarrierAccountRequestTypedDict, -) -from .removeshipmentsfrombatch import ( - RemoveShipmentsFromBatchGlobals, - RemoveShipmentsFromBatchGlobalsTypedDict, - RemoveShipmentsFromBatchRequest, - RemoveShipmentsFromBatchRequestTypedDict, -) -from .updatecarrieraccount import ( - UpdateCarrierAccountGlobals, - UpdateCarrierAccountGlobalsTypedDict, - UpdateCarrierAccountRequest, - UpdateCarrierAccountRequestTypedDict, -) -from .updatedefaultparceltemplate import ( - UpdateDefaultParcelTemplateGlobals, - UpdateDefaultParcelTemplateGlobalsTypedDict, -) -from .updateservicegroup import ( - UpdateServiceGroupGlobals, - UpdateServiceGroupGlobalsTypedDict, -) -from .updateshippoaccount import ( - UpdateShippoAccountGlobals, - UpdateShippoAccountGlobalsTypedDict, - UpdateShippoAccountRequest, - UpdateShippoAccountRequestTypedDict, -) -from .updateuserparceltemplate import ( - UpdateUserParcelTemplateGlobals, - UpdateUserParcelTemplateGlobalsTypedDict, - UpdateUserParcelTemplateRequest, - UpdateUserParcelTemplateRequestTypedDict, -) -from .updatewebhook import UpdateWebhookRequest, UpdateWebhookRequestTypedDict -from .validateaddress import ( - ValidateAddressGlobals, - ValidateAddressGlobalsTypedDict, - ValidateAddressRequest, - ValidateAddressRequestTypedDict, -) +from typing import Any, TYPE_CHECKING +from shippo.utils.dynamic_imports import lazy_getattr, lazy_dir + +if TYPE_CHECKING: + from .addshipmentstobatch import ( + AddShipmentsToBatchGlobals, + AddShipmentsToBatchGlobalsTypedDict, + AddShipmentsToBatchRequest, + AddShipmentsToBatchRequestTypedDict, + ) + from .createaddress import CreateAddressGlobals, CreateAddressGlobalsTypedDict + from .createbatch import CreateBatchGlobals, CreateBatchGlobalsTypedDict + from .createcarrieraccount import ( + CreateCarrierAccountGlobals, + CreateCarrierAccountGlobalsTypedDict, + ) + from .createcustomsdeclaration import ( + CreateCustomsDeclarationGlobals, + CreateCustomsDeclarationGlobalsTypedDict, + ) + from .createcustomsitem import ( + CreateCustomsItemGlobals, + CreateCustomsItemGlobalsTypedDict, + ) + from .createliverate import CreateLiveRateGlobals, CreateLiveRateGlobalsTypedDict + from .createmanifest import CreateManifestGlobals, CreateManifestGlobalsTypedDict + from .createorder import CreateOrderGlobals, CreateOrderGlobalsTypedDict + from .createparcel import ( + CreateParcelGlobals, + CreateParcelGlobalsTypedDict, + CreateParcelRequest, + CreateParcelRequestTypedDict, + ) + from .createpickup import CreatePickupGlobals, CreatePickupGlobalsTypedDict + from .createrefund import CreateRefundGlobals, CreateRefundGlobalsTypedDict + from .createservicegroup import ( + CreateServiceGroupGlobals, + CreateServiceGroupGlobalsTypedDict, + ) + from .createshipment import CreateShipmentGlobals, CreateShipmentGlobalsTypedDict + from .createshippoaccount import ( + CreateShippoAccountGlobals, + CreateShippoAccountGlobalsTypedDict, + ) + from .createtrack import CreateTrackGlobals, CreateTrackGlobalsTypedDict + from .createtransaction import ( + CreateTransactionGlobals, + CreateTransactionGlobalsTypedDict, + CreateTransactionRequest, + CreateTransactionRequestTypedDict, + ) + from .createuserparceltemplate import ( + CreateUserParcelTemplateGlobals, + CreateUserParcelTemplateGlobalsTypedDict, + ) + from .deletedefaultparceltemplate import ( + DeleteDefaultParcelTemplateGlobals, + DeleteDefaultParcelTemplateGlobalsTypedDict, + DeleteDefaultParcelTemplateRequest, + DeleteDefaultParcelTemplateRequestTypedDict, + ) + from .deleteservicegroup import ( + DeleteServiceGroupGlobals, + DeleteServiceGroupGlobalsTypedDict, + DeleteServiceGroupRequest, + DeleteServiceGroupRequestTypedDict, + ) + from .deleteuserparceltemplate import ( + DeleteUserParcelTemplateGlobals, + DeleteUserParcelTemplateGlobalsTypedDict, + DeleteUserParcelTemplateRequest, + DeleteUserParcelTemplateRequestTypedDict, + ) + from .deletewebhook import DeleteWebhookRequest, DeleteWebhookRequestTypedDict + from .getaddress import ( + GetAddressGlobals, + GetAddressGlobalsTypedDict, + GetAddressRequest, + GetAddressRequestTypedDict, + ) + from .getbatch import ( + GetBatchGlobals, + GetBatchGlobalsTypedDict, + GetBatchRequest, + GetBatchRequestTypedDict, + ) + from .getcarrieraccount import ( + GetCarrierAccountGlobals, + GetCarrierAccountGlobalsTypedDict, + GetCarrierAccountRequest, + GetCarrierAccountRequestTypedDict, + ) + from .getcarrierparceltemplate import ( + GetCarrierParcelTemplateGlobals, + GetCarrierParcelTemplateGlobalsTypedDict, + GetCarrierParcelTemplateRequest, + GetCarrierParcelTemplateRequestTypedDict, + ) + from .getcarrierregistrationstatus import ( + Carrier, + GetCarrierRegistrationStatusGlobals, + GetCarrierRegistrationStatusGlobalsTypedDict, + GetCarrierRegistrationStatusRequest, + GetCarrierRegistrationStatusRequestTypedDict, + ) + from .getcustomsdeclaration import ( + GetCustomsDeclarationGlobals, + GetCustomsDeclarationGlobalsTypedDict, + GetCustomsDeclarationRequest, + GetCustomsDeclarationRequestTypedDict, + ) + from .getcustomsitem import ( + GetCustomsItemGlobals, + GetCustomsItemGlobalsTypedDict, + GetCustomsItemRequest, + GetCustomsItemRequestTypedDict, + ) + from .getdefaultparceltemplate import ( + GetDefaultParcelTemplateGlobals, + GetDefaultParcelTemplateGlobalsTypedDict, + GetDefaultParcelTemplateRequest, + GetDefaultParcelTemplateRequestTypedDict, + ) + from .getmanifest import ( + GetManifestGlobals, + GetManifestGlobalsTypedDict, + GetManifestRequest, + GetManifestRequestTypedDict, + ) + from .getorder import ( + GetOrderGlobals, + GetOrderGlobalsTypedDict, + GetOrderRequest, + GetOrderRequestTypedDict, + ) + from .getparcel import ( + GetParcelGlobals, + GetParcelGlobalsTypedDict, + GetParcelRequest, + GetParcelRequestTypedDict, + ) + from .getrate import ( + GetRateGlobals, + GetRateGlobalsTypedDict, + GetRateRequest, + GetRateRequestTypedDict, + ) + from .getrefund import ( + GetRefundGlobals, + GetRefundGlobalsTypedDict, + GetRefundRequest, + GetRefundRequestTypedDict, + ) + from .getshipment import ( + GetShipmentGlobals, + GetShipmentGlobalsTypedDict, + GetShipmentRequest, + GetShipmentRequestTypedDict, + ) + from .getshippoaccount import ( + GetShippoAccountGlobals, + GetShippoAccountGlobalsTypedDict, + GetShippoAccountRequest, + GetShippoAccountRequestTypedDict, + ) + from .gettrack import ( + GetTrackGlobals, + GetTrackGlobalsTypedDict, + GetTrackRequest, + GetTrackRequestTypedDict, + ) + from .gettransaction import ( + GetTransactionGlobals, + GetTransactionGlobalsTypedDict, + GetTransactionRequest, + GetTransactionRequestTypedDict, + ) + from .getuserparceltemplate import ( + GetUserParcelTemplateGlobals, + GetUserParcelTemplateGlobalsTypedDict, + GetUserParcelTemplateRequest, + GetUserParcelTemplateRequestTypedDict, + ) + from .getwebhook import GetWebhookRequest, GetWebhookRequestTypedDict + from .initiateoauth2signin import ( + InitiateOauth2SigninGlobals, + InitiateOauth2SigninGlobalsTypedDict, + InitiateOauth2SigninRequest, + InitiateOauth2SigninRequestTypedDict, + InitiateOauth2SigninResponse, + InitiateOauth2SigninResponseTypedDict, + ) + from .listaddresses import ( + ListAddressesGlobals, + ListAddressesGlobalsTypedDict, + ListAddressesRequest, + ListAddressesRequestTypedDict, + ) + from .listcarrieraccounts import ( + ListCarrierAccountsGlobals, + ListCarrierAccountsGlobalsTypedDict, + ListCarrierAccountsRequest, + ListCarrierAccountsRequestTypedDict, + ) + from .listcarrierparceltemplates import ( + Include, + ListCarrierParcelTemplatesGlobals, + ListCarrierParcelTemplatesGlobalsTypedDict, + ListCarrierParcelTemplatesRequest, + ListCarrierParcelTemplatesRequestTypedDict, + ) + from .listcustomsdeclarations import ( + ListCustomsDeclarationsGlobals, + ListCustomsDeclarationsGlobalsTypedDict, + ListCustomsDeclarationsRequest, + ListCustomsDeclarationsRequestTypedDict, + ) + from .listcustomsitems import ( + ListCustomsItemsGlobals, + ListCustomsItemsGlobalsTypedDict, + ListCustomsItemsRequest, + ListCustomsItemsRequestTypedDict, + ) + from .listmanifests import ( + ListManifestsGlobals, + ListManifestsGlobalsTypedDict, + ListManifestsRequest, + ListManifestsRequestTypedDict, + ) + from .listorders import ( + ListOrdersGlobals, + ListOrdersGlobalsTypedDict, + ListOrdersRequest, + ListOrdersRequestTypedDict, + ) + from .listparcels import ( + ListParcelsGlobals, + ListParcelsGlobalsTypedDict, + ListParcelsRequest, + ListParcelsRequestTypedDict, + ) + from .listrefunds import ( + ListRefundsGlobals, + ListRefundsGlobalsTypedDict, + ListRefundsRequest, + ListRefundsRequestTypedDict, + ) + from .listservicegroups import ( + ListServiceGroupsGlobals, + ListServiceGroupsGlobalsTypedDict, + ListServiceGroupsRequest, + ListServiceGroupsRequestTypedDict, + ) + from .listshipmentrates import ( + ListShipmentRatesGlobals, + ListShipmentRatesGlobalsTypedDict, + ListShipmentRatesRequest, + ListShipmentRatesRequestTypedDict, + ) + from .listshipmentratesbycurrencycode import ( + ListShipmentRatesByCurrencyCodeGlobals, + ListShipmentRatesByCurrencyCodeGlobalsTypedDict, + ListShipmentRatesByCurrencyCodeRequest, + ListShipmentRatesByCurrencyCodeRequestTypedDict, + ) + from .listshipments import ( + ListShipmentsGlobals, + ListShipmentsGlobalsTypedDict, + ListShipmentsRequest, + ListShipmentsRequestTypedDict, + ) + from .listshippoaccounts import ( + ListShippoAccountsGlobals, + ListShippoAccountsGlobalsTypedDict, + ListShippoAccountsRequest, + ListShippoAccountsRequestTypedDict, + ) + from .listtransactions import ( + ListTransactionsGlobals, + ListTransactionsGlobalsTypedDict, + ListTransactionsRequest, + ListTransactionsRequestTypedDict, + ) + from .listuserparceltemplates import ( + ListUserParcelTemplatesGlobals, + ListUserParcelTemplatesGlobalsTypedDict, + ListUserParcelTemplatesRequest, + ListUserParcelTemplatesRequestTypedDict, + ) + from .purchasebatch import ( + PurchaseBatchGlobals, + PurchaseBatchGlobalsTypedDict, + PurchaseBatchRequest, + PurchaseBatchRequestTypedDict, + ) + from .registercarrieraccount import ( + RegisterCarrierAccountGlobals, + RegisterCarrierAccountGlobalsTypedDict, + RegisterCarrierAccountRequest, + RegisterCarrierAccountRequestTypedDict, + ) + from .removeshipmentsfrombatch import ( + RemoveShipmentsFromBatchGlobals, + RemoveShipmentsFromBatchGlobalsTypedDict, + RemoveShipmentsFromBatchRequest, + RemoveShipmentsFromBatchRequestTypedDict, + ) + from .updatecarrieraccount import ( + UpdateCarrierAccountGlobals, + UpdateCarrierAccountGlobalsTypedDict, + UpdateCarrierAccountRequest, + UpdateCarrierAccountRequestTypedDict, + ) + from .updatedefaultparceltemplate import ( + UpdateDefaultParcelTemplateGlobals, + UpdateDefaultParcelTemplateGlobalsTypedDict, + ) + from .updateservicegroup import ( + UpdateServiceGroupGlobals, + UpdateServiceGroupGlobalsTypedDict, + ) + from .updateshippoaccount import ( + UpdateShippoAccountGlobals, + UpdateShippoAccountGlobalsTypedDict, + UpdateShippoAccountRequest, + UpdateShippoAccountRequestTypedDict, + ) + from .updateuserparceltemplate import ( + UpdateUserParcelTemplateGlobals, + UpdateUserParcelTemplateGlobalsTypedDict, + UpdateUserParcelTemplateRequest, + UpdateUserParcelTemplateRequestTypedDict, + ) + from .updatewebhook import UpdateWebhookRequest, UpdateWebhookRequestTypedDict + from .validateaddress import ( + ValidateAddressGlobals, + ValidateAddressGlobalsTypedDict, + ValidateAddressRequest, + ValidateAddressRequestTypedDict, + ) __all__ = [ "AddShipmentsToBatchGlobals", @@ -576,3 +580,252 @@ "ValidateAddressRequest", "ValidateAddressRequestTypedDict", ] + +_dynamic_imports: dict[str, str] = { + "AddShipmentsToBatchGlobals": ".addshipmentstobatch", + "AddShipmentsToBatchGlobalsTypedDict": ".addshipmentstobatch", + "AddShipmentsToBatchRequest": ".addshipmentstobatch", + "AddShipmentsToBatchRequestTypedDict": ".addshipmentstobatch", + "CreateAddressGlobals": ".createaddress", + "CreateAddressGlobalsTypedDict": ".createaddress", + "CreateBatchGlobals": ".createbatch", + "CreateBatchGlobalsTypedDict": ".createbatch", + "CreateCarrierAccountGlobals": ".createcarrieraccount", + "CreateCarrierAccountGlobalsTypedDict": ".createcarrieraccount", + "CreateCustomsDeclarationGlobals": ".createcustomsdeclaration", + "CreateCustomsDeclarationGlobalsTypedDict": ".createcustomsdeclaration", + "CreateCustomsItemGlobals": ".createcustomsitem", + "CreateCustomsItemGlobalsTypedDict": ".createcustomsitem", + "CreateLiveRateGlobals": ".createliverate", + "CreateLiveRateGlobalsTypedDict": ".createliverate", + "CreateManifestGlobals": ".createmanifest", + "CreateManifestGlobalsTypedDict": ".createmanifest", + "CreateOrderGlobals": ".createorder", + "CreateOrderGlobalsTypedDict": ".createorder", + "CreateParcelGlobals": ".createparcel", + "CreateParcelGlobalsTypedDict": ".createparcel", + "CreateParcelRequest": ".createparcel", + "CreateParcelRequestTypedDict": ".createparcel", + "CreatePickupGlobals": ".createpickup", + "CreatePickupGlobalsTypedDict": ".createpickup", + "CreateRefundGlobals": ".createrefund", + "CreateRefundGlobalsTypedDict": ".createrefund", + "CreateServiceGroupGlobals": ".createservicegroup", + "CreateServiceGroupGlobalsTypedDict": ".createservicegroup", + "CreateShipmentGlobals": ".createshipment", + "CreateShipmentGlobalsTypedDict": ".createshipment", + "CreateShippoAccountGlobals": ".createshippoaccount", + "CreateShippoAccountGlobalsTypedDict": ".createshippoaccount", + "CreateTrackGlobals": ".createtrack", + "CreateTrackGlobalsTypedDict": ".createtrack", + "CreateTransactionGlobals": ".createtransaction", + "CreateTransactionGlobalsTypedDict": ".createtransaction", + "CreateTransactionRequest": ".createtransaction", + "CreateTransactionRequestTypedDict": ".createtransaction", + "CreateUserParcelTemplateGlobals": ".createuserparceltemplate", + "CreateUserParcelTemplateGlobalsTypedDict": ".createuserparceltemplate", + "DeleteDefaultParcelTemplateGlobals": ".deletedefaultparceltemplate", + "DeleteDefaultParcelTemplateGlobalsTypedDict": ".deletedefaultparceltemplate", + "DeleteDefaultParcelTemplateRequest": ".deletedefaultparceltemplate", + "DeleteDefaultParcelTemplateRequestTypedDict": ".deletedefaultparceltemplate", + "DeleteServiceGroupGlobals": ".deleteservicegroup", + "DeleteServiceGroupGlobalsTypedDict": ".deleteservicegroup", + "DeleteServiceGroupRequest": ".deleteservicegroup", + "DeleteServiceGroupRequestTypedDict": ".deleteservicegroup", + "DeleteUserParcelTemplateGlobals": ".deleteuserparceltemplate", + "DeleteUserParcelTemplateGlobalsTypedDict": ".deleteuserparceltemplate", + "DeleteUserParcelTemplateRequest": ".deleteuserparceltemplate", + "DeleteUserParcelTemplateRequestTypedDict": ".deleteuserparceltemplate", + "DeleteWebhookRequest": ".deletewebhook", + "DeleteWebhookRequestTypedDict": ".deletewebhook", + "GetAddressGlobals": ".getaddress", + "GetAddressGlobalsTypedDict": ".getaddress", + "GetAddressRequest": ".getaddress", + "GetAddressRequestTypedDict": ".getaddress", + "GetBatchGlobals": ".getbatch", + "GetBatchGlobalsTypedDict": ".getbatch", + "GetBatchRequest": ".getbatch", + "GetBatchRequestTypedDict": ".getbatch", + "GetCarrierAccountGlobals": ".getcarrieraccount", + "GetCarrierAccountGlobalsTypedDict": ".getcarrieraccount", + "GetCarrierAccountRequest": ".getcarrieraccount", + "GetCarrierAccountRequestTypedDict": ".getcarrieraccount", + "GetCarrierParcelTemplateGlobals": ".getcarrierparceltemplate", + "GetCarrierParcelTemplateGlobalsTypedDict": ".getcarrierparceltemplate", + "GetCarrierParcelTemplateRequest": ".getcarrierparceltemplate", + "GetCarrierParcelTemplateRequestTypedDict": ".getcarrierparceltemplate", + "Carrier": ".getcarrierregistrationstatus", + "GetCarrierRegistrationStatusGlobals": ".getcarrierregistrationstatus", + "GetCarrierRegistrationStatusGlobalsTypedDict": ".getcarrierregistrationstatus", + "GetCarrierRegistrationStatusRequest": ".getcarrierregistrationstatus", + "GetCarrierRegistrationStatusRequestTypedDict": ".getcarrierregistrationstatus", + "GetCustomsDeclarationGlobals": ".getcustomsdeclaration", + "GetCustomsDeclarationGlobalsTypedDict": ".getcustomsdeclaration", + "GetCustomsDeclarationRequest": ".getcustomsdeclaration", + "GetCustomsDeclarationRequestTypedDict": ".getcustomsdeclaration", + "GetCustomsItemGlobals": ".getcustomsitem", + "GetCustomsItemGlobalsTypedDict": ".getcustomsitem", + "GetCustomsItemRequest": ".getcustomsitem", + "GetCustomsItemRequestTypedDict": ".getcustomsitem", + "GetDefaultParcelTemplateGlobals": ".getdefaultparceltemplate", + "GetDefaultParcelTemplateGlobalsTypedDict": ".getdefaultparceltemplate", + "GetDefaultParcelTemplateRequest": ".getdefaultparceltemplate", + "GetDefaultParcelTemplateRequestTypedDict": ".getdefaultparceltemplate", + "GetManifestGlobals": ".getmanifest", + "GetManifestGlobalsTypedDict": ".getmanifest", + "GetManifestRequest": ".getmanifest", + "GetManifestRequestTypedDict": ".getmanifest", + "GetOrderGlobals": ".getorder", + "GetOrderGlobalsTypedDict": ".getorder", + "GetOrderRequest": ".getorder", + "GetOrderRequestTypedDict": ".getorder", + "GetParcelGlobals": ".getparcel", + "GetParcelGlobalsTypedDict": ".getparcel", + "GetParcelRequest": ".getparcel", + "GetParcelRequestTypedDict": ".getparcel", + "GetRateGlobals": ".getrate", + "GetRateGlobalsTypedDict": ".getrate", + "GetRateRequest": ".getrate", + "GetRateRequestTypedDict": ".getrate", + "GetRefundGlobals": ".getrefund", + "GetRefundGlobalsTypedDict": ".getrefund", + "GetRefundRequest": ".getrefund", + "GetRefundRequestTypedDict": ".getrefund", + "GetShipmentGlobals": ".getshipment", + "GetShipmentGlobalsTypedDict": ".getshipment", + "GetShipmentRequest": ".getshipment", + "GetShipmentRequestTypedDict": ".getshipment", + "GetShippoAccountGlobals": ".getshippoaccount", + "GetShippoAccountGlobalsTypedDict": ".getshippoaccount", + "GetShippoAccountRequest": ".getshippoaccount", + "GetShippoAccountRequestTypedDict": ".getshippoaccount", + "GetTrackGlobals": ".gettrack", + "GetTrackGlobalsTypedDict": ".gettrack", + "GetTrackRequest": ".gettrack", + "GetTrackRequestTypedDict": ".gettrack", + "GetTransactionGlobals": ".gettransaction", + "GetTransactionGlobalsTypedDict": ".gettransaction", + "GetTransactionRequest": ".gettransaction", + "GetTransactionRequestTypedDict": ".gettransaction", + "GetUserParcelTemplateGlobals": ".getuserparceltemplate", + "GetUserParcelTemplateGlobalsTypedDict": ".getuserparceltemplate", + "GetUserParcelTemplateRequest": ".getuserparceltemplate", + "GetUserParcelTemplateRequestTypedDict": ".getuserparceltemplate", + "GetWebhookRequest": ".getwebhook", + "GetWebhookRequestTypedDict": ".getwebhook", + "InitiateOauth2SigninGlobals": ".initiateoauth2signin", + "InitiateOauth2SigninGlobalsTypedDict": ".initiateoauth2signin", + "InitiateOauth2SigninRequest": ".initiateoauth2signin", + "InitiateOauth2SigninRequestTypedDict": ".initiateoauth2signin", + "InitiateOauth2SigninResponse": ".initiateoauth2signin", + "InitiateOauth2SigninResponseTypedDict": ".initiateoauth2signin", + "ListAddressesGlobals": ".listaddresses", + "ListAddressesGlobalsTypedDict": ".listaddresses", + "ListAddressesRequest": ".listaddresses", + "ListAddressesRequestTypedDict": ".listaddresses", + "ListCarrierAccountsGlobals": ".listcarrieraccounts", + "ListCarrierAccountsGlobalsTypedDict": ".listcarrieraccounts", + "ListCarrierAccountsRequest": ".listcarrieraccounts", + "ListCarrierAccountsRequestTypedDict": ".listcarrieraccounts", + "Include": ".listcarrierparceltemplates", + "ListCarrierParcelTemplatesGlobals": ".listcarrierparceltemplates", + "ListCarrierParcelTemplatesGlobalsTypedDict": ".listcarrierparceltemplates", + "ListCarrierParcelTemplatesRequest": ".listcarrierparceltemplates", + "ListCarrierParcelTemplatesRequestTypedDict": ".listcarrierparceltemplates", + "ListCustomsDeclarationsGlobals": ".listcustomsdeclarations", + "ListCustomsDeclarationsGlobalsTypedDict": ".listcustomsdeclarations", + "ListCustomsDeclarationsRequest": ".listcustomsdeclarations", + "ListCustomsDeclarationsRequestTypedDict": ".listcustomsdeclarations", + "ListCustomsItemsGlobals": ".listcustomsitems", + "ListCustomsItemsGlobalsTypedDict": ".listcustomsitems", + "ListCustomsItemsRequest": ".listcustomsitems", + "ListCustomsItemsRequestTypedDict": ".listcustomsitems", + "ListManifestsGlobals": ".listmanifests", + "ListManifestsGlobalsTypedDict": ".listmanifests", + "ListManifestsRequest": ".listmanifests", + "ListManifestsRequestTypedDict": ".listmanifests", + "ListOrdersGlobals": ".listorders", + "ListOrdersGlobalsTypedDict": ".listorders", + "ListOrdersRequest": ".listorders", + "ListOrdersRequestTypedDict": ".listorders", + "ListParcelsGlobals": ".listparcels", + "ListParcelsGlobalsTypedDict": ".listparcels", + "ListParcelsRequest": ".listparcels", + "ListParcelsRequestTypedDict": ".listparcels", + "ListRefundsGlobals": ".listrefunds", + "ListRefundsGlobalsTypedDict": ".listrefunds", + "ListRefundsRequest": ".listrefunds", + "ListRefundsRequestTypedDict": ".listrefunds", + "ListServiceGroupsGlobals": ".listservicegroups", + "ListServiceGroupsGlobalsTypedDict": ".listservicegroups", + "ListServiceGroupsRequest": ".listservicegroups", + "ListServiceGroupsRequestTypedDict": ".listservicegroups", + "ListShipmentRatesGlobals": ".listshipmentrates", + "ListShipmentRatesGlobalsTypedDict": ".listshipmentrates", + "ListShipmentRatesRequest": ".listshipmentrates", + "ListShipmentRatesRequestTypedDict": ".listshipmentrates", + "ListShipmentRatesByCurrencyCodeGlobals": ".listshipmentratesbycurrencycode", + "ListShipmentRatesByCurrencyCodeGlobalsTypedDict": ".listshipmentratesbycurrencycode", + "ListShipmentRatesByCurrencyCodeRequest": ".listshipmentratesbycurrencycode", + "ListShipmentRatesByCurrencyCodeRequestTypedDict": ".listshipmentratesbycurrencycode", + "ListShipmentsGlobals": ".listshipments", + "ListShipmentsGlobalsTypedDict": ".listshipments", + "ListShipmentsRequest": ".listshipments", + "ListShipmentsRequestTypedDict": ".listshipments", + "ListShippoAccountsGlobals": ".listshippoaccounts", + "ListShippoAccountsGlobalsTypedDict": ".listshippoaccounts", + "ListShippoAccountsRequest": ".listshippoaccounts", + "ListShippoAccountsRequestTypedDict": ".listshippoaccounts", + "ListTransactionsGlobals": ".listtransactions", + "ListTransactionsGlobalsTypedDict": ".listtransactions", + "ListTransactionsRequest": ".listtransactions", + "ListTransactionsRequestTypedDict": ".listtransactions", + "ListUserParcelTemplatesGlobals": ".listuserparceltemplates", + "ListUserParcelTemplatesGlobalsTypedDict": ".listuserparceltemplates", + "ListUserParcelTemplatesRequest": ".listuserparceltemplates", + "ListUserParcelTemplatesRequestTypedDict": ".listuserparceltemplates", + "PurchaseBatchGlobals": ".purchasebatch", + "PurchaseBatchGlobalsTypedDict": ".purchasebatch", + "PurchaseBatchRequest": ".purchasebatch", + "PurchaseBatchRequestTypedDict": ".purchasebatch", + "RegisterCarrierAccountGlobals": ".registercarrieraccount", + "RegisterCarrierAccountGlobalsTypedDict": ".registercarrieraccount", + "RegisterCarrierAccountRequest": ".registercarrieraccount", + "RegisterCarrierAccountRequestTypedDict": ".registercarrieraccount", + "RemoveShipmentsFromBatchGlobals": ".removeshipmentsfrombatch", + "RemoveShipmentsFromBatchGlobalsTypedDict": ".removeshipmentsfrombatch", + "RemoveShipmentsFromBatchRequest": ".removeshipmentsfrombatch", + "RemoveShipmentsFromBatchRequestTypedDict": ".removeshipmentsfrombatch", + "UpdateCarrierAccountGlobals": ".updatecarrieraccount", + "UpdateCarrierAccountGlobalsTypedDict": ".updatecarrieraccount", + "UpdateCarrierAccountRequest": ".updatecarrieraccount", + "UpdateCarrierAccountRequestTypedDict": ".updatecarrieraccount", + "UpdateDefaultParcelTemplateGlobals": ".updatedefaultparceltemplate", + "UpdateDefaultParcelTemplateGlobalsTypedDict": ".updatedefaultparceltemplate", + "UpdateServiceGroupGlobals": ".updateservicegroup", + "UpdateServiceGroupGlobalsTypedDict": ".updateservicegroup", + "UpdateShippoAccountGlobals": ".updateshippoaccount", + "UpdateShippoAccountGlobalsTypedDict": ".updateshippoaccount", + "UpdateShippoAccountRequest": ".updateshippoaccount", + "UpdateShippoAccountRequestTypedDict": ".updateshippoaccount", + "UpdateUserParcelTemplateGlobals": ".updateuserparceltemplate", + "UpdateUserParcelTemplateGlobalsTypedDict": ".updateuserparceltemplate", + "UpdateUserParcelTemplateRequest": ".updateuserparceltemplate", + "UpdateUserParcelTemplateRequestTypedDict": ".updateuserparceltemplate", + "UpdateWebhookRequest": ".updatewebhook", + "UpdateWebhookRequestTypedDict": ".updatewebhook", + "ValidateAddressGlobals": ".validateaddress", + "ValidateAddressGlobalsTypedDict": ".validateaddress", + "ValidateAddressRequest": ".validateaddress", + "ValidateAddressRequestTypedDict": ".validateaddress", +} + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) + + +def __dir__(): + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/shippo/models/operations/addshipmentstobatch.py b/src/shippo/models/operations/addshipmentstobatch.py index 161d1d4e..7c5502c4 100644 --- a/src/shippo/models/operations/addshipmentstobatch.py +++ b/src/shippo/models/operations/addshipmentstobatch.py @@ -2,10 +2,11 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( batchshipmentcreaterequest as components_batchshipmentcreaterequest, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -18,7 +19,7 @@ class AddShipmentsToBatchGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class AddShipmentsToBatchGlobals(BaseModel): @@ -26,8 +27,24 @@ class AddShipmentsToBatchGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class AddShipmentsToBatchRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/createaddress.py b/src/shippo/models/operations/createaddress.py index 9aa72f6f..e9651064 100644 --- a/src/shippo/models/operations/createaddress.py +++ b/src/shippo/models/operations/createaddress.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateAddressGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateAddressGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateAddressGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createbatch.py b/src/shippo/models/operations/createbatch.py index 7cc94155..385d0812 100644 --- a/src/shippo/models/operations/createbatch.py +++ b/src/shippo/models/operations/createbatch.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateBatchGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateBatchGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateBatchGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createcarrieraccount.py b/src/shippo/models/operations/createcarrieraccount.py index e1826637..542abe7e 100644 --- a/src/shippo/models/operations/createcarrieraccount.py +++ b/src/shippo/models/operations/createcarrieraccount.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateCarrierAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateCarrierAccountGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateCarrierAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createcustomsdeclaration.py b/src/shippo/models/operations/createcustomsdeclaration.py index ff0e908a..de251f4f 100644 --- a/src/shippo/models/operations/createcustomsdeclaration.py +++ b/src/shippo/models/operations/createcustomsdeclaration.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateCustomsDeclarationGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateCustomsDeclarationGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateCustomsDeclarationGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createcustomsitem.py b/src/shippo/models/operations/createcustomsitem.py index e2b80222..2a03a7f0 100644 --- a/src/shippo/models/operations/createcustomsitem.py +++ b/src/shippo/models/operations/createcustomsitem.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateCustomsItemGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateCustomsItemGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateCustomsItemGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createliverate.py b/src/shippo/models/operations/createliverate.py index 5c0fa6fc..80656547 100644 --- a/src/shippo/models/operations/createliverate.py +++ b/src/shippo/models/operations/createliverate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateLiveRateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateLiveRateGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateLiveRateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createmanifest.py b/src/shippo/models/operations/createmanifest.py index fe0abc52..1d12336c 100644 --- a/src/shippo/models/operations/createmanifest.py +++ b/src/shippo/models/operations/createmanifest.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateManifestGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateManifestGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateManifestGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createorder.py b/src/shippo/models/operations/createorder.py index 9927686f..31065dd9 100644 --- a/src/shippo/models/operations/createorder.py +++ b/src/shippo/models/operations/createorder.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateOrderGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateOrderGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateOrderGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createparcel.py b/src/shippo/models/operations/createparcel.py index 99f4941f..9af84c7e 100644 --- a/src/shippo/models/operations/createparcel.py +++ b/src/shippo/models/operations/createparcel.py @@ -2,11 +2,12 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( parcelcreatefromtemplaterequest as components_parcelcreatefromtemplaterequest, parcelcreaterequest as components_parcelcreaterequest, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -14,7 +15,7 @@ class CreateParcelGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateParcelGlobals(BaseModel): @@ -22,8 +23,24 @@ class CreateParcelGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m CreateParcelRequestTypedDict = TypeAliasType( diff --git a/src/shippo/models/operations/createpickup.py b/src/shippo/models/operations/createpickup.py index 567b16ec..a9c38d87 100644 --- a/src/shippo/models/operations/createpickup.py +++ b/src/shippo/models/operations/createpickup.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreatePickupGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreatePickupGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreatePickupGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createrefund.py b/src/shippo/models/operations/createrefund.py index 866222a6..a4f725ca 100644 --- a/src/shippo/models/operations/createrefund.py +++ b/src/shippo/models/operations/createrefund.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateRefundGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateRefundGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateRefundGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createservicegroup.py b/src/shippo/models/operations/createservicegroup.py index 03bc33b4..08613ce3 100644 --- a/src/shippo/models/operations/createservicegroup.py +++ b/src/shippo/models/operations/createservicegroup.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateServiceGroupGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateServiceGroupGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateServiceGroupGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createshipment.py b/src/shippo/models/operations/createshipment.py index cd07c324..cfc61439 100644 --- a/src/shippo/models/operations/createshipment.py +++ b/src/shippo/models/operations/createshipment.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateShipmentGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateShipmentGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateShipmentGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createshippoaccount.py b/src/shippo/models/operations/createshippoaccount.py index 0d2cc454..1bade7b4 100644 --- a/src/shippo/models/operations/createshippoaccount.py +++ b/src/shippo/models/operations/createshippoaccount.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateShippoAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateShippoAccountGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateShippoAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createtrack.py b/src/shippo/models/operations/createtrack.py index 1d174540..5d3d686c 100644 --- a/src/shippo/models/operations/createtrack.py +++ b/src/shippo/models/operations/createtrack.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateTrackGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateTrackGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateTrackGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/createtransaction.py b/src/shippo/models/operations/createtransaction.py index 444ed0f9..bf2e8612 100644 --- a/src/shippo/models/operations/createtransaction.py +++ b/src/shippo/models/operations/createtransaction.py @@ -2,11 +2,12 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( instanttransactioncreaterequest as components_instanttransactioncreaterequest, transactioncreaterequest as components_transactioncreaterequest, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -14,7 +15,7 @@ class CreateTransactionGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateTransactionGlobals(BaseModel): @@ -22,8 +23,24 @@ class CreateTransactionGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m CreateTransactionRequestTypedDict = TypeAliasType( diff --git a/src/shippo/models/operations/createuserparceltemplate.py b/src/shippo/models/operations/createuserparceltemplate.py index 3ed06905..3dbeaf7c 100644 --- a/src/shippo/models/operations/createuserparceltemplate.py +++ b/src/shippo/models/operations/createuserparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class CreateUserParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class CreateUserParcelTemplateGlobals(BaseModel): @@ -18,5 +19,21 @@ class CreateUserParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/deletedefaultparceltemplate.py b/src/shippo/models/operations/deletedefaultparceltemplate.py index 19d61f55..cd382b90 100644 --- a/src/shippo/models/operations/deletedefaultparceltemplate.py +++ b/src/shippo/models/operations/deletedefaultparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class DeleteDefaultParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class DeleteDefaultParcelTemplateGlobals(BaseModel): @@ -18,8 +19,24 @@ class DeleteDefaultParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class DeleteDefaultParcelTemplateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/deleteservicegroup.py b/src/shippo/models/operations/deleteservicegroup.py index f923419d..1bb90ece 100644 --- a/src/shippo/models/operations/deleteservicegroup.py +++ b/src/shippo/models/operations/deleteservicegroup.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class DeleteServiceGroupGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class DeleteServiceGroupGlobals(BaseModel): @@ -18,8 +19,24 @@ class DeleteServiceGroupGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class DeleteServiceGroupRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/deleteuserparceltemplate.py b/src/shippo/models/operations/deleteuserparceltemplate.py index b1a9f4e9..e574d3de 100644 --- a/src/shippo/models/operations/deleteuserparceltemplate.py +++ b/src/shippo/models/operations/deleteuserparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class DeleteUserParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class DeleteUserParcelTemplateGlobals(BaseModel): @@ -18,8 +19,24 @@ class DeleteUserParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class DeleteUserParcelTemplateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getaddress.py b/src/shippo/models/operations/getaddress.py index 829d19f3..baf7b2c6 100644 --- a/src/shippo/models/operations/getaddress.py +++ b/src/shippo/models/operations/getaddress.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetAddressGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetAddressGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetAddressGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetAddressRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getbatch.py b/src/shippo/models/operations/getbatch.py index 639b23ff..d8b57bcb 100644 --- a/src/shippo/models/operations/getbatch.py +++ b/src/shippo/models/operations/getbatch.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class GetBatchGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetBatchGlobals(BaseModel): @@ -23,8 +24,24 @@ class GetBatchGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetBatchRequestTypedDict(TypedDict): @@ -55,3 +72,19 @@ class GetBatchRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 5 r"""The number of results to return per page (max 100, default 5)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/getcarrieraccount.py b/src/shippo/models/operations/getcarrieraccount.py index 39462144..29d85c6d 100644 --- a/src/shippo/models/operations/getcarrieraccount.py +++ b/src/shippo/models/operations/getcarrieraccount.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetCarrierAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetCarrierAccountGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetCarrierAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetCarrierAccountRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getcarrierparceltemplate.py b/src/shippo/models/operations/getcarrierparceltemplate.py index 4abc3a23..bcddb3a3 100644 --- a/src/shippo/models/operations/getcarrierparceltemplate.py +++ b/src/shippo/models/operations/getcarrierparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetCarrierParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetCarrierParcelTemplateGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetCarrierParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetCarrierParcelTemplateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getcarrierregistrationstatus.py b/src/shippo/models/operations/getcarrierregistrationstatus.py index 4fe72649..eb395534 100644 --- a/src/shippo/models/operations/getcarrierregistrationstatus.py +++ b/src/shippo/models/operations/getcarrierregistrationstatus.py @@ -3,7 +3,8 @@ from __future__ import annotations from enum import Enum import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -11,7 +12,7 @@ class GetCarrierRegistrationStatusGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetCarrierRegistrationStatusGlobals(BaseModel): @@ -19,8 +20,24 @@ class GetCarrierRegistrationStatusGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class Carrier(str, Enum): diff --git a/src/shippo/models/operations/getcustomsdeclaration.py b/src/shippo/models/operations/getcustomsdeclaration.py index 1db07f49..ad0d32a4 100644 --- a/src/shippo/models/operations/getcustomsdeclaration.py +++ b/src/shippo/models/operations/getcustomsdeclaration.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class GetCustomsDeclarationGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetCustomsDeclarationGlobals(BaseModel): @@ -23,8 +24,24 @@ class GetCustomsDeclarationGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetCustomsDeclarationRequestTypedDict(TypedDict): @@ -47,3 +64,19 @@ class GetCustomsDeclarationRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 1 r"""The page number you want to select""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/getcustomsitem.py b/src/shippo/models/operations/getcustomsitem.py index 2e2244c8..c21b2a96 100644 --- a/src/shippo/models/operations/getcustomsitem.py +++ b/src/shippo/models/operations/getcustomsitem.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class GetCustomsItemGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetCustomsItemGlobals(BaseModel): @@ -23,8 +24,24 @@ class GetCustomsItemGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetCustomsItemRequestTypedDict(TypedDict): @@ -47,3 +64,19 @@ class GetCustomsItemRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 1 r"""The page number you want to select""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/getdefaultparceltemplate.py b/src/shippo/models/operations/getdefaultparceltemplate.py index 6b86c77c..54d19c57 100644 --- a/src/shippo/models/operations/getdefaultparceltemplate.py +++ b/src/shippo/models/operations/getdefaultparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetDefaultParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetDefaultParcelTemplateGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetDefaultParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetDefaultParcelTemplateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getmanifest.py b/src/shippo/models/operations/getmanifest.py index 2bcebc31..9f7f210b 100644 --- a/src/shippo/models/operations/getmanifest.py +++ b/src/shippo/models/operations/getmanifest.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetManifestGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetManifestGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetManifestGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetManifestRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getorder.py b/src/shippo/models/operations/getorder.py index 10926aa2..830bf95a 100644 --- a/src/shippo/models/operations/getorder.py +++ b/src/shippo/models/operations/getorder.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetOrderGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetOrderGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetOrderGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetOrderRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getparcel.py b/src/shippo/models/operations/getparcel.py index 1ca59e7d..81a44afb 100644 --- a/src/shippo/models/operations/getparcel.py +++ b/src/shippo/models/operations/getparcel.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetParcelGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetParcelGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetParcelGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetParcelRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getrate.py b/src/shippo/models/operations/getrate.py index 659b12d2..a5654195 100644 --- a/src/shippo/models/operations/getrate.py +++ b/src/shippo/models/operations/getrate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetRateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetRateGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetRateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetRateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getrefund.py b/src/shippo/models/operations/getrefund.py index bf63e28a..6c1ff4cd 100644 --- a/src/shippo/models/operations/getrefund.py +++ b/src/shippo/models/operations/getrefund.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetRefundGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetRefundGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetRefundGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetRefundRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getshipment.py b/src/shippo/models/operations/getshipment.py index 002d774f..5b7191a0 100644 --- a/src/shippo/models/operations/getshipment.py +++ b/src/shippo/models/operations/getshipment.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetShipmentGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetShipmentGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetShipmentGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetShipmentRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getshippoaccount.py b/src/shippo/models/operations/getshippoaccount.py index c2bc0b13..a8296320 100644 --- a/src/shippo/models/operations/getshippoaccount.py +++ b/src/shippo/models/operations/getshippoaccount.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetShippoAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetShippoAccountGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetShippoAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetShippoAccountRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/gettrack.py b/src/shippo/models/operations/gettrack.py index b1359f38..ef582e47 100644 --- a/src/shippo/models/operations/gettrack.py +++ b/src/shippo/models/operations/gettrack.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetTrackGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetTrackGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetTrackGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetTrackRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/gettransaction.py b/src/shippo/models/operations/gettransaction.py index aaec9ebc..56a8f5a2 100644 --- a/src/shippo/models/operations/gettransaction.py +++ b/src/shippo/models/operations/gettransaction.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetTransactionGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetTransactionGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetTransactionGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetTransactionRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/getuserparceltemplate.py b/src/shippo/models/operations/getuserparceltemplate.py index b7dc9fd9..7f115c1b 100644 --- a/src/shippo/models/operations/getuserparceltemplate.py +++ b/src/shippo/models/operations/getuserparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class GetUserParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class GetUserParcelTemplateGlobals(BaseModel): @@ -18,8 +19,24 @@ class GetUserParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class GetUserParcelTemplateRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/initiateoauth2signin.py b/src/shippo/models/operations/initiateoauth2signin.py index 0adb6df9..0de9d06d 100644 --- a/src/shippo/models/operations/initiateoauth2signin.py +++ b/src/shippo/models/operations/initiateoauth2signin.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class InitiateOauth2SigninGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class InitiateOauth2SigninGlobals(BaseModel): @@ -23,8 +24,24 @@ class InitiateOauth2SigninGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class InitiateOauth2SigninRequestTypedDict(TypedDict): @@ -55,6 +72,22 @@ class InitiateOauth2SigninRequest(BaseModel): ] = None r"""A random string generated by the consuming application and included in the request to prevent CSRF attacks. The consuming application checks that the same value is returned after the user authorizes Shippo.""" + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["state"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + class InitiateOauth2SigninResponseTypedDict(TypedDict): headers: Dict[str, List[str]] diff --git a/src/shippo/models/operations/listaddresses.py b/src/shippo/models/operations/listaddresses.py index efcf8069..81b89109 100644 --- a/src/shippo/models/operations/listaddresses.py +++ b/src/shippo/models/operations/listaddresses.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListAddressesGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListAddressesGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListAddressesGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListAddressesRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListAddressesRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 5 r"""The number of results to return per page (max 100, default 5)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listcarrieraccounts.py b/src/shippo/models/operations/listcarrieraccounts.py index fbc11061..cf381fc7 100644 --- a/src/shippo/models/operations/listcarrieraccounts.py +++ b/src/shippo/models/operations/listcarrieraccounts.py @@ -2,8 +2,9 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import carriersenum as components_carriersenum -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -11,7 +12,7 @@ class ListCarrierAccountsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListCarrierAccountsGlobals(BaseModel): @@ -19,8 +20,24 @@ class ListCarrierAccountsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListCarrierAccountsRequestTypedDict(TypedDict): @@ -66,3 +83,21 @@ class ListCarrierAccountsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 5 r"""The number of results to return per page (max 100, default 5)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["service_levels", "carrier", "account_id", "page", "results"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listcarrierparceltemplates.py b/src/shippo/models/operations/listcarrierparceltemplates.py index b61288b8..5d0e2584 100644 --- a/src/shippo/models/operations/listcarrierparceltemplates.py +++ b/src/shippo/models/operations/listcarrierparceltemplates.py @@ -3,7 +3,8 @@ from __future__ import annotations from enum import Enum import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -11,7 +12,7 @@ class ListCarrierParcelTemplatesGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListCarrierParcelTemplatesGlobals(BaseModel): @@ -19,8 +20,24 @@ class ListCarrierParcelTemplatesGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class Include(str, Enum): @@ -50,3 +67,19 @@ class ListCarrierParcelTemplatesRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""filter by specific carrier""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["include", "carrier"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listcustomsdeclarations.py b/src/shippo/models/operations/listcustomsdeclarations.py index a53a71ba..adcb3f3c 100644 --- a/src/shippo/models/operations/listcustomsdeclarations.py +++ b/src/shippo/models/operations/listcustomsdeclarations.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListCustomsDeclarationsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListCustomsDeclarationsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListCustomsDeclarationsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListCustomsDeclarationsRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListCustomsDeclarationsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 5 r"""The number of results to return per page (max 100, default 5)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listcustomsitems.py b/src/shippo/models/operations/listcustomsitems.py index b4d4d962..c288dfb4 100644 --- a/src/shippo/models/operations/listcustomsitems.py +++ b/src/shippo/models/operations/listcustomsitems.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListCustomsItemsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListCustomsItemsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListCustomsItemsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListCustomsItemsRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListCustomsItemsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listmanifests.py b/src/shippo/models/operations/listmanifests.py index 589f6a8a..16cf9a05 100644 --- a/src/shippo/models/operations/listmanifests.py +++ b/src/shippo/models/operations/listmanifests.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListManifestsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListManifestsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListManifestsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListManifestsRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListManifestsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 5 r"""The number of results to return per page (max 100, default 5)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listorders.py b/src/shippo/models/operations/listorders.py index 7dbb68b3..508602f9 100644 --- a/src/shippo/models/operations/listorders.py +++ b/src/shippo/models/operations/listorders.py @@ -2,11 +2,12 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( ordershopappenum as components_ordershopappenum, orderstatusenum as components_orderstatusenum, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -14,7 +15,7 @@ class ListOrdersGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListOrdersGlobals(BaseModel): @@ -22,8 +23,24 @@ class ListOrdersGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListOrdersRequestTypedDict(TypedDict): @@ -86,3 +103,21 @@ class ListOrdersRequest(BaseModel): r"""Filter orders created before the input date and time (ISO 8601 UTC format). This is based on the `placed_at` field, meaning when the order has been placed, not when the order object was created. """ + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["page", "results", "order_status[]", "shop_app", "start_date", "end_date"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listparcels.py b/src/shippo/models/operations/listparcels.py index 21b3993a..8f8b07d7 100644 --- a/src/shippo/models/operations/listparcels.py +++ b/src/shippo/models/operations/listparcels.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListParcelsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListParcelsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListParcelsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListParcelsRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListParcelsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listrefunds.py b/src/shippo/models/operations/listrefunds.py index b438589b..ef89c394 100644 --- a/src/shippo/models/operations/listrefunds.py +++ b/src/shippo/models/operations/listrefunds.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListRefundsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListRefundsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListRefundsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListRefundsRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/listservicegroups.py b/src/shippo/models/operations/listservicegroups.py index d4aae047..f9a086e4 100644 --- a/src/shippo/models/operations/listservicegroups.py +++ b/src/shippo/models/operations/listservicegroups.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListServiceGroupsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListServiceGroupsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListServiceGroupsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListServiceGroupsRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/listshipmentrates.py b/src/shippo/models/operations/listshipmentrates.py index f3af5194..408e4c5a 100644 --- a/src/shippo/models/operations/listshipmentrates.py +++ b/src/shippo/models/operations/listshipmentrates.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class ListShipmentRatesGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListShipmentRatesGlobals(BaseModel): @@ -23,8 +24,24 @@ class ListShipmentRatesGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListShipmentRatesRequestTypedDict(TypedDict): @@ -55,3 +72,19 @@ class ListShipmentRatesRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listshipmentratesbycurrencycode.py b/src/shippo/models/operations/listshipmentratesbycurrencycode.py index 58d4a44e..33448f1c 100644 --- a/src/shippo/models/operations/listshipmentratesbycurrencycode.py +++ b/src/shippo/models/operations/listshipmentratesbycurrencycode.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class ListShipmentRatesByCurrencyCodeGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListShipmentRatesByCurrencyCodeGlobals(BaseModel): @@ -23,8 +24,24 @@ class ListShipmentRatesByCurrencyCodeGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListShipmentRatesByCurrencyCodeRequestTypedDict(TypedDict): @@ -64,3 +81,19 @@ class ListShipmentRatesByCurrencyCodeRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listshipments.py b/src/shippo/models/operations/listshipments.py index a45ccf53..a53c3594 100644 --- a/src/shippo/models/operations/listshipments.py +++ b/src/shippo/models/operations/listshipments.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListShipmentsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListShipmentsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListShipmentsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListShipmentsRequestTypedDict(TypedDict): @@ -81,3 +98,29 @@ class ListShipmentsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""Object(s) created lesser than or equal to a provided date and time.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "page_token", + "page", + "results", + "object_created_gt", + "object_created_gte", + "object_created_lt", + "object_created_lte", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listshippoaccounts.py b/src/shippo/models/operations/listshippoaccounts.py index cf8ddb68..c71ecba7 100644 --- a/src/shippo/models/operations/listshippoaccounts.py +++ b/src/shippo/models/operations/listshippoaccounts.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListShippoAccountsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListShippoAccountsGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListShippoAccountsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListShippoAccountsRequestTypedDict(TypedDict): @@ -41,3 +58,19 @@ class ListShippoAccountsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["page", "results"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listtransactions.py b/src/shippo/models/operations/listtransactions.py index e4cd731e..15a3a464 100644 --- a/src/shippo/models/operations/listtransactions.py +++ b/src/shippo/models/operations/listtransactions.py @@ -2,11 +2,12 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( trackingstatusenum as components_trackingstatusenum, transactionstatusenum as components_transactionstatusenum, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -14,7 +15,7 @@ class ListTransactionsGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListTransactionsGlobals(BaseModel): @@ -22,8 +23,24 @@ class ListTransactionsGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListTransactionsRequestTypedDict(TypedDict): @@ -69,3 +86,21 @@ class ListTransactionsRequest(BaseModel): FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 25 r"""The number of results to return per page (max 100)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["rate", "object_status", "tracking_status", "page", "results"] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/listuserparceltemplates.py b/src/shippo/models/operations/listuserparceltemplates.py index fc957bd6..459aa6c5 100644 --- a/src/shippo/models/operations/listuserparceltemplates.py +++ b/src/shippo/models/operations/listuserparceltemplates.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ListUserParcelTemplatesGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ListUserParcelTemplatesGlobals(BaseModel): @@ -18,8 +19,24 @@ class ListUserParcelTemplatesGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ListUserParcelTemplatesRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/purchasebatch.py b/src/shippo/models/operations/purchasebatch.py index eecc218e..cfb89c47 100644 --- a/src/shippo/models/operations/purchasebatch.py +++ b/src/shippo/models/operations/purchasebatch.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class PurchaseBatchGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class PurchaseBatchGlobals(BaseModel): @@ -18,8 +19,24 @@ class PurchaseBatchGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class PurchaseBatchRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/registercarrieraccount.py b/src/shippo/models/operations/registercarrieraccount.py index 8135dc2a..391c4513 100644 --- a/src/shippo/models/operations/registercarrieraccount.py +++ b/src/shippo/models/operations/registercarrieraccount.py @@ -2,7 +2,7 @@ from __future__ import annotations import pydantic -from pydantic import Discriminator, Tag +from pydantic import Field, model_serializer from shippo.models.components import ( carrieraccountcanadapostcreaterequest as components_carrieraccountcanadapostcreaterequest, carrieraccountchronopostcreaterequest as components_carrieraccountchronopostcreaterequest, @@ -16,19 +16,20 @@ carrieraccounthermesukcreaterequest as components_carrieraccounthermesukcreaterequest, carrieraccountmondialrelaycreaterequest as components_carrieraccountmondialrelaycreaterequest, carrieraccountposteitalianecreaterequest as components_carrieraccountposteitalianecreaterequest, - carrieraccountsendlecreaterequest as components_carrieraccountsendlecreaterequest, + carrieraccountroyalmailcreaterequest as components_carrieraccountroyalmailcreaterequest, + carrieraccountroyalmailsfcreaterequest as components_carrieraccountroyalmailsfcreaterequest, carrieraccountupscreaterequest as components_carrieraccountupscreaterequest, carrieraccountuspscreaterequest as components_carrieraccountuspscreaterequest, ) -from shippo.types import BaseModel -from shippo.utils import FieldMetadata, HeaderMetadata, get_discriminator +from shippo.types import BaseModel, UNSET_SENTINEL +from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict class RegisterCarrierAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class RegisterCarrierAccountGlobals(BaseModel): @@ -36,8 +37,24 @@ class RegisterCarrierAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m RegisterCarrierAccountRequestTypedDict = TypeAliasType( @@ -57,7 +74,8 @@ class RegisterCarrierAccountGlobals(BaseModel): components_carrieraccountposteitalianecreaterequest.CarrierAccountPosteItalianeCreateRequestTypedDict, components_carrieraccountupscreaterequest.CarrierAccountUPSCreateRequestTypedDict, components_carrieraccountuspscreaterequest.CarrierAccountUSPSCreateRequestTypedDict, - components_carrieraccountsendlecreaterequest.CarrierAccountSendleCreateRequestTypedDict, + components_carrieraccountroyalmailcreaterequest.CarrierAccountRoyalMailCreateRequestTypedDict, + components_carrieraccountroyalmailsfcreaterequest.CarrierAccountRoyalMailSfCreateRequestTypedDict, ], ) r"""The body of the request.""" @@ -65,67 +83,23 @@ class RegisterCarrierAccountGlobals(BaseModel): RegisterCarrierAccountRequest = Annotated[ Union[ - Annotated[ - components_carrieraccountcanadapostcreaterequest.CarrierAccountCanadaPostCreateRequest, - Tag("canada_post"), - ], - Annotated[ - components_carrieraccountchronopostcreaterequest.CarrierAccountChronopostCreateRequest, - Tag("chronopost"), - ], - Annotated[ - components_carrieraccountcolissimocreaterequest.CarrierAccountColissimoCreateRequest, - Tag("colissimo"), - ], - Annotated[ - components_carrieraccountcorreoscreaterequest.CarrierAccountCorreosCreateRequest, - Tag("correos"), - ], - Annotated[ - components_carrieraccountdeutschepostcreaterequest.CarrierAccountDeutschePostCreateRequest, - Tag("deutsche_post"), - ], - Annotated[ - components_carrieraccountdhlexpresscreaterequest.CarrierAccountDHLExpressCreateRequest, - Tag("dhl_express"), - ], - Annotated[ - components_carrieraccountdpddecreaterequest.CarrierAccountDpdDeCreateRequest, - Tag("dpd_de"), - ], - Annotated[ - components_carrieraccountdpdukcreaterequest.CarrierAccountDPDUKCreateRequest, - Tag("dpd_uk"), - ], - Annotated[ - components_carrieraccountfedexcreaterequest.CarrierAccountFedExCreateRequest, - Tag("fedex"), - ], - Annotated[ - components_carrieraccounthermesukcreaterequest.CarrierAccountHermesUKCreateRequest, - Tag("hermes_uk"), - ], - Annotated[ - components_carrieraccountmondialrelaycreaterequest.CarrierAccountMondialRelayCreateRequest, - Tag("mondial_relay"), - ], - Annotated[ - components_carrieraccountposteitalianecreaterequest.CarrierAccountPosteItalianeCreateRequest, - Tag("poste_italiane"), - ], - Annotated[ - components_carrieraccountupscreaterequest.CarrierAccountUPSCreateRequest, - Tag("ups"), - ], - Annotated[ - components_carrieraccountuspscreaterequest.CarrierAccountUSPSCreateRequest, - Tag("usps"), - ], - Annotated[ - components_carrieraccountsendlecreaterequest.CarrierAccountSendleCreateRequest, - Tag("sendle"), - ], + components_carrieraccountcanadapostcreaterequest.CarrierAccountCanadaPostCreateRequest, + components_carrieraccountchronopostcreaterequest.CarrierAccountChronopostCreateRequest, + components_carrieraccountcolissimocreaterequest.CarrierAccountColissimoCreateRequest, + components_carrieraccountcorreoscreaterequest.CarrierAccountCorreosCreateRequest, + components_carrieraccountdeutschepostcreaterequest.CarrierAccountDeutschePostCreateRequest, + components_carrieraccountdhlexpresscreaterequest.CarrierAccountDHLExpressCreateRequest, + components_carrieraccountdpddecreaterequest.CarrierAccountDpdDeCreateRequest, + components_carrieraccountdpdukcreaterequest.CarrierAccountDPDUKCreateRequest, + components_carrieraccountfedexcreaterequest.CarrierAccountFedExCreateRequest, + components_carrieraccounthermesukcreaterequest.CarrierAccountHermesUKCreateRequest, + components_carrieraccountmondialrelaycreaterequest.CarrierAccountMondialRelayCreateRequest, + components_carrieraccountposteitalianecreaterequest.CarrierAccountPosteItalianeCreateRequest, + components_carrieraccountupscreaterequest.CarrierAccountUPSCreateRequest, + components_carrieraccountuspscreaterequest.CarrierAccountUSPSCreateRequest, + components_carrieraccountroyalmailcreaterequest.CarrierAccountRoyalMailCreateRequest, + components_carrieraccountroyalmailsfcreaterequest.CarrierAccountRoyalMailSfCreateRequest, ], - Discriminator(lambda m: get_discriminator(m, "carrier", "carrier")), + Field(discriminator="CARRIER"), ] r"""The body of the request.""" diff --git a/src/shippo/models/operations/removeshipmentsfrombatch.py b/src/shippo/models/operations/removeshipmentsfrombatch.py index 619974fb..431c3387 100644 --- a/src/shippo/models/operations/removeshipmentsfrombatch.py +++ b/src/shippo/models/operations/removeshipmentsfrombatch.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -15,7 +16,7 @@ class RemoveShipmentsFromBatchGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class RemoveShipmentsFromBatchGlobals(BaseModel): @@ -23,8 +24,24 @@ class RemoveShipmentsFromBatchGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class RemoveShipmentsFromBatchRequestTypedDict(TypedDict): diff --git a/src/shippo/models/operations/updatecarrieraccount.py b/src/shippo/models/operations/updatecarrieraccount.py index 92b0c024..98602205 100644 --- a/src/shippo/models/operations/updatecarrieraccount.py +++ b/src/shippo/models/operations/updatecarrieraccount.py @@ -2,8 +2,9 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import carrieraccountbase as components_carrieraccountbase -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -16,7 +17,7 @@ class UpdateCarrierAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class UpdateCarrierAccountGlobals(BaseModel): @@ -24,8 +25,24 @@ class UpdateCarrierAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class UpdateCarrierAccountRequestTypedDict(TypedDict): @@ -50,3 +67,19 @@ class UpdateCarrierAccountRequest(BaseModel): FieldMetadata(request=RequestMetadata(media_type="application/json")), ] = None r"""Examples.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["CarrierAccountBase"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/updatedefaultparceltemplate.py b/src/shippo/models/operations/updatedefaultparceltemplate.py index 2fcf438a..2ed48cb4 100644 --- a/src/shippo/models/operations/updatedefaultparceltemplate.py +++ b/src/shippo/models/operations/updatedefaultparceltemplate.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class UpdateDefaultParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class UpdateDefaultParcelTemplateGlobals(BaseModel): @@ -18,5 +19,21 @@ class UpdateDefaultParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/updateservicegroup.py b/src/shippo/models/operations/updateservicegroup.py index 8fb8767e..f5c108b8 100644 --- a/src/shippo/models/operations/updateservicegroup.py +++ b/src/shippo/models/operations/updateservicegroup.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class UpdateServiceGroupGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class UpdateServiceGroupGlobals(BaseModel): @@ -18,5 +19,21 @@ class UpdateServiceGroupGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/updateshippoaccount.py b/src/shippo/models/operations/updateshippoaccount.py index 93a94eab..e6239c87 100644 --- a/src/shippo/models/operations/updateshippoaccount.py +++ b/src/shippo/models/operations/updateshippoaccount.py @@ -2,10 +2,11 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( shippoaccountupdaterequest as components_shippoaccountupdaterequest, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -18,7 +19,7 @@ class UpdateShippoAccountGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class UpdateShippoAccountGlobals(BaseModel): @@ -26,8 +27,24 @@ class UpdateShippoAccountGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class UpdateShippoAccountRequestTypedDict(TypedDict): @@ -50,3 +67,19 @@ class UpdateShippoAccountRequest(BaseModel): Optional[components_shippoaccountupdaterequest.ShippoAccountUpdateRequest], FieldMetadata(request=RequestMetadata(media_type="application/json")), ] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["ShippoAccountUpdateRequest"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/updateuserparceltemplate.py b/src/shippo/models/operations/updateuserparceltemplate.py index c7215978..2ea37f20 100644 --- a/src/shippo/models/operations/updateuserparceltemplate.py +++ b/src/shippo/models/operations/updateuserparceltemplate.py @@ -2,10 +2,11 @@ from __future__ import annotations import pydantic +from pydantic import model_serializer from shippo.models.components import ( userparceltemplateupdaterequest as components_userparceltemplateupdaterequest, ) -from shippo.types import BaseModel +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import ( FieldMetadata, HeaderMetadata, @@ -18,7 +19,7 @@ class UpdateUserParcelTemplateGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class UpdateUserParcelTemplateGlobals(BaseModel): @@ -26,8 +27,24 @@ class UpdateUserParcelTemplateGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class UpdateUserParcelTemplateRequestTypedDict(TypedDict): @@ -52,3 +69,19 @@ class UpdateUserParcelTemplateRequest(BaseModel): ], FieldMetadata(request=RequestMetadata(media_type="application/json")), ] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["UserParcelTemplateUpdateRequest"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/shippo/models/operations/validateaddress.py b/src/shippo/models/operations/validateaddress.py index 181193db..755f6677 100644 --- a/src/shippo/models/operations/validateaddress.py +++ b/src/shippo/models/operations/validateaddress.py @@ -2,7 +2,8 @@ from __future__ import annotations import pydantic -from shippo.types import BaseModel +from pydantic import model_serializer +from shippo.types import BaseModel, UNSET_SENTINEL from shippo.utils import FieldMetadata, HeaderMetadata, PathParamMetadata from typing import Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -10,7 +11,7 @@ class ValidateAddressGlobalsTypedDict(TypedDict): shippo_api_version: NotRequired[str] - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" class ValidateAddressGlobals(BaseModel): @@ -18,8 +19,24 @@ class ValidateAddressGlobals(BaseModel): Optional[str], pydantic.Field(alias="SHIPPO-API-VERSION"), FieldMetadata(header=HeaderMetadata(style="simple", explode=False)), - ] = None - r"""Optional string used to pick a non-default API version to use. See our API version guide.""" + ] = "2018-02-08" + r"""Optional string used to pick a non-default API version to use. See our [API version](https://docs.goshippo.com/docs/api_concepts/apiversioning/) guide.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["SHIPPO-API-VERSION"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m class ValidateAddressRequestTypedDict(TypedDict): diff --git a/src/shippo/orders.py b/src/shippo/orders.py index 20b43ee8..ef8fc192 100644 --- a/src/shippo/orders.py +++ b/src/shippo/orders.py @@ -5,6 +5,7 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast @@ -13,15 +14,6 @@ class Orders(BaseSDK): Use the orders object to load orders from your system to the Shippo dashboard. You can use the orders object to create, retrieve, list, and manage orders programmatically. You can also retrieve shipping rates, purchase labels, and track shipments for each order. - - - # Line Item -

-
Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource - in the future. Currently it's a nested object within the order resource.

-

- A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. - """ def list( @@ -34,7 +26,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.OrderPaginatedList]: + ) -> components.OrderPaginatedList: r"""List all orders Returns a list of all order objects. @@ -75,6 +67,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -88,39 +81,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListOrders", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components, operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.list(request=operations.ListOrdersRequest(\n order_status=[\n components.OrderStatusEnum.PAID,\n ],\n shop_app=components.OrderShopAppEnum.SHIPPO,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.list({\n orderStatus: [\n "PAID",\n ],\n shopApp: "Shippo",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListOrdersRequest req = new ListOrdersRequest() {\n OrderStatus = new List() {\n OrderStatusEnum.Paid,\n },\n ShopApp = OrderShopAppEnum.Shippo,\n};\n\nvar res = await sdk.Orders.ListAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListOrdersRequest(\n orderStatus: [\n Components\\OrderStatusEnum::Paid,\n ],\n shopApp: Components\\OrderShopAppEnum::Shippo,\n);\n\n$response = $sdk->orders->list(\n request: $request\n);\n\nif ($response->orderPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.OrderShopAppEnum;\nimport com.goshippo.shippo_sdk.models.components.OrderStatusEnum;\nimport com.goshippo.shippo_sdk.models.operations.ListOrdersRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListOrdersResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListOrdersRequest req = ListOrdersRequest.builder()\n .orderStatus(List.of(\n OrderStatusEnum.PAID))\n .shopApp(OrderShopAppEnum.SHIPPO)\n .build();\n\n ListOrdersResponse res = sdk.orders().list()\n .request(req)\n .call();\n\n if (res.orderPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.OrderPaginatedList] - ) + return unmarshal_json_response(components.OrderPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -132,7 +148,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.OrderPaginatedList]: + ) -> components.OrderPaginatedList: r"""List all orders Returns a list of all order objects. @@ -173,6 +189,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -186,39 +203,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListOrders", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components, operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.list(request=operations.ListOrdersRequest(\n order_status=[\n components.OrderStatusEnum.PAID,\n ],\n shop_app=components.OrderShopAppEnum.SHIPPO,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.list({\n orderStatus: [\n "PAID",\n ],\n shopApp: "Shippo",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListOrdersRequest req = new ListOrdersRequest() {\n OrderStatus = new List() {\n OrderStatusEnum.Paid,\n },\n ShopApp = OrderShopAppEnum.Shippo,\n};\n\nvar res = await sdk.Orders.ListAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListOrdersRequest(\n orderStatus: [\n Components\\OrderStatusEnum::Paid,\n ],\n shopApp: Components\\OrderShopAppEnum::Shippo,\n);\n\n$response = $sdk->orders->list(\n request: $request\n);\n\nif ($response->orderPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.OrderShopAppEnum;\nimport com.goshippo.shippo_sdk.models.components.OrderStatusEnum;\nimport com.goshippo.shippo_sdk.models.operations.ListOrdersRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListOrdersResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListOrdersRequest req = ListOrdersRequest.builder()\n .orderStatus(List.of(\n OrderStatusEnum.PAID))\n .shopApp(OrderShopAppEnum.SHIPPO)\n .build();\n\n ListOrdersResponse res = sdk.orders().list()\n .request(req)\n .call();\n\n if (res.orderPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.OrderPaginatedList] - ) + return unmarshal_json_response(components.OrderPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -230,7 +270,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Order]: + ) -> components.Order: r"""Create a new order Creates a new order object. @@ -274,6 +314,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.OrderCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -287,37 +328,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateOrder", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/ \\\n-H "Authorization: ShippoToken " \\\n-d \'{\n "to_address": {\n "city": "San Francisco",\n "company": "Shippo",\n "country": "US",\n "email": "shippotle@shippo.com",\n "name": "Mr Hippo",\n "phone": "15553419393",\n "state": "CA",\n "street1": "215 Clayton St.",\n "zip": "94117"\n },\n "line_items": [\n {\n "quantity": 1,\n "sku": "HM-123",\n "title": "Hippo Magazines",\n "total_price": "12.10",\n "currency": "USD",\n "weight": "0.40",\n "weight_unit": "lb"\n }\n ],\n "placed_at": "2016-09-23T01:28:12Z",\n "order_number": "#1068",\n "order_status": "PAID",\n "shipping_cost": "12.83",\n "shipping_cost_currency": "USD",\n "shipping_method": "USPS First Class Package",\n "subtotal_price": "12.10",\n "total_price": "24.93",\n "total_tax": "0.00",\n "currency": "USD",\n "weight": "0.40",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.create(request=components.OrderCreateRequest(\n currency='USD',\n notes='This customer is a VIP',\n order_number='#1068',\n order_status=components.OrderStatusEnum.PAID,\n placed_at='2016-09-23T01:28:12Z',\n shipping_cost='12.83',\n shipping_cost_currency='USD',\n shipping_method='USPS First Class Package',\n subtotal_price='12.1',\n total_price='24.93',\n total_tax='0.0',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n from_address=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n to_address=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n line_items=[\n components.LineItemBase(\n currency='USD',\n manufacture_country='US',\n max_delivery_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n max_ship_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n quantity=20,\n sku='HM-123',\n title='Hippo Magazines',\n total_price='12.1',\n variant_title='June Edition',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.create({\n currency: "USD",\n notes: "This customer is a VIP",\n orderNumber: "#1068",\n orderStatus: "PAID",\n placedAt: "2016-09-23T01:28:12Z",\n shippingCost: "12.83",\n shippingCostCurrency: "USD",\n shippingMethod: "USPS First Class Package",\n subtotalPrice: "12.1",\n totalPrice: "24.93",\n totalTax: "0.0",\n weight: "0.4",\n weightUnit: "lb",\n fromAddress: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n toAddress: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n lineItems: [\n {\n currency: "USD",\n manufactureCountry: "US",\n maxDeliveryTime: new Date("2016-07-23T00:00:00Z"),\n maxShipTime: new Date("2016-07-23T00:00:00Z"),\n quantity: 20,\n sku: "HM-123",\n title: "Hippo Magazines",\n totalPrice: "12.1",\n variantTitle: "June Edition",\n weight: "0.4",\n weightUnit: "lb",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Orders.CreateAsync(\n orderCreateRequest: new OrderCreateRequest() {\n Currency = "USD",\n Notes = "This customer is a VIP",\n OrderNumber = "#1068",\n OrderStatus = OrderStatusEnum.Paid,\n PlacedAt = "2016-09-23T01:28:12Z",\n ShippingCost = "12.83",\n ShippingCostCurrency = "USD",\n ShippingMethod = "USPS First Class Package",\n SubtotalPrice = "12.1",\n TotalPrice = "24.93",\n TotalTax = "0.0",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n FromAddress = new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n ToAddress = new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n LineItems = new List() {\n new LineItemBase() {\n Currency = "USD",\n ManufactureCountry = "US",\n MaxDeliveryTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n MaxShipTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n Quantity = 20,\n Sku = "HM-123",\n Title = "Hippo Magazines",\n TotalPrice = "12.1",\n VariantTitle = "June Edition",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$orderCreateRequest = new Components\\OrderCreateRequest(\n currency: 'USD',\n notes: 'This customer is a VIP',\n orderNumber: '#1068',\n orderStatus: Components\\OrderStatusEnum::Paid,\n placedAt: '2016-09-23T01:28:12Z',\n shippingCost: '12.83',\n shippingCostCurrency: 'USD',\n shippingMethod: 'USPS First Class Package',\n subtotalPrice: '12.1',\n totalPrice: '24.93',\n totalTax: '0.0',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n fromAddress: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n toAddress: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n lineItems: [\n new Components\\LineItemBase(\n currency: 'USD',\n manufactureCountry: 'US',\n maxDeliveryTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n maxShipTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n quantity: 20,\n sku: 'HM-123',\n title: 'Hippo Magazines',\n totalPrice: '12.1',\n variantTitle: 'June Edition',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n ),\n ],\n);\n\n$response = $sdk->orders->create(\n orderCreateRequest: $orderCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->order !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LineItemBase;\nimport com.goshippo.shippo_sdk.models.components.OrderCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.OrderStatusEnum;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateOrderResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateOrderResponse res = sdk.orders().create()\n .shippoApiVersion("2018-02-08")\n .orderCreateRequest(OrderCreateRequest.builder()\n .placedAt("2016-09-23T01:28:12Z")\n .toAddress(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .currency("USD")\n .notes("This customer is a VIP")\n .orderNumber("#1068")\n .orderStatus(OrderStatusEnum.PAID)\n .shippingCost("12.83")\n .shippingCostCurrency("USD")\n .shippingMethod("USPS First Class Package")\n .subtotalPrice("12.1")\n .totalPrice("24.93")\n .totalTax("0.0")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .fromAddress(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .lineItems(List.of(\n LineItemBase.builder()\n .currency("USD")\n .manufactureCountry("US")\n .maxDeliveryTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .maxShipTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .quantity(20L)\n .sku("HM-123")\n .title("Hippo Magazines")\n .totalPrice("12.1")\n .variantTitle("June Edition")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .build()))\n .build())\n .call();\n\n if (res.order().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Order]) + return unmarshal_json_response(components.Order, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -329,7 +395,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Order]: + ) -> components.Order: r"""Create a new order Creates a new order object. @@ -373,6 +439,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.OrderCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -386,37 +453,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateOrder", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/ \\\n-H "Authorization: ShippoToken " \\\n-d \'{\n "to_address": {\n "city": "San Francisco",\n "company": "Shippo",\n "country": "US",\n "email": "shippotle@shippo.com",\n "name": "Mr Hippo",\n "phone": "15553419393",\n "state": "CA",\n "street1": "215 Clayton St.",\n "zip": "94117"\n },\n "line_items": [\n {\n "quantity": 1,\n "sku": "HM-123",\n "title": "Hippo Magazines",\n "total_price": "12.10",\n "currency": "USD",\n "weight": "0.40",\n "weight_unit": "lb"\n }\n ],\n "placed_at": "2016-09-23T01:28:12Z",\n "order_number": "#1068",\n "order_status": "PAID",\n "shipping_cost": "12.83",\n "shipping_cost_currency": "USD",\n "shipping_method": "USPS First Class Package",\n "subtotal_price": "12.10",\n "total_price": "24.93",\n "total_tax": "0.00",\n "currency": "USD",\n "weight": "0.40",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.create(request=components.OrderCreateRequest(\n currency='USD',\n notes='This customer is a VIP',\n order_number='#1068',\n order_status=components.OrderStatusEnum.PAID,\n placed_at='2016-09-23T01:28:12Z',\n shipping_cost='12.83',\n shipping_cost_currency='USD',\n shipping_method='USPS First Class Package',\n subtotal_price='12.1',\n total_price='24.93',\n total_tax='0.0',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n from_address=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n to_address=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n line_items=[\n components.LineItemBase(\n currency='USD',\n manufacture_country='US',\n max_delivery_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n max_ship_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n quantity=20,\n sku='HM-123',\n title='Hippo Magazines',\n total_price='12.1',\n variant_title='June Edition',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.create({\n currency: "USD",\n notes: "This customer is a VIP",\n orderNumber: "#1068",\n orderStatus: "PAID",\n placedAt: "2016-09-23T01:28:12Z",\n shippingCost: "12.83",\n shippingCostCurrency: "USD",\n shippingMethod: "USPS First Class Package",\n subtotalPrice: "12.1",\n totalPrice: "24.93",\n totalTax: "0.0",\n weight: "0.4",\n weightUnit: "lb",\n fromAddress: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n toAddress: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n lineItems: [\n {\n currency: "USD",\n manufactureCountry: "US",\n maxDeliveryTime: new Date("2016-07-23T00:00:00Z"),\n maxShipTime: new Date("2016-07-23T00:00:00Z"),\n quantity: 20,\n sku: "HM-123",\n title: "Hippo Magazines",\n totalPrice: "12.1",\n variantTitle: "June Edition",\n weight: "0.4",\n weightUnit: "lb",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Orders.CreateAsync(\n orderCreateRequest: new OrderCreateRequest() {\n Currency = "USD",\n Notes = "This customer is a VIP",\n OrderNumber = "#1068",\n OrderStatus = OrderStatusEnum.Paid,\n PlacedAt = "2016-09-23T01:28:12Z",\n ShippingCost = "12.83",\n ShippingCostCurrency = "USD",\n ShippingMethod = "USPS First Class Package",\n SubtotalPrice = "12.1",\n TotalPrice = "24.93",\n TotalTax = "0.0",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n FromAddress = new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n ToAddress = new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n LineItems = new List() {\n new LineItemBase() {\n Currency = "USD",\n ManufactureCountry = "US",\n MaxDeliveryTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n MaxShipTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n Quantity = 20,\n Sku = "HM-123",\n Title = "Hippo Magazines",\n TotalPrice = "12.1",\n VariantTitle = "June Edition",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$orderCreateRequest = new Components\\OrderCreateRequest(\n currency: 'USD',\n notes: 'This customer is a VIP',\n orderNumber: '#1068',\n orderStatus: Components\\OrderStatusEnum::Paid,\n placedAt: '2016-09-23T01:28:12Z',\n shippingCost: '12.83',\n shippingCostCurrency: 'USD',\n shippingMethod: 'USPS First Class Package',\n subtotalPrice: '12.1',\n totalPrice: '24.93',\n totalTax: '0.0',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n fromAddress: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n toAddress: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n lineItems: [\n new Components\\LineItemBase(\n currency: 'USD',\n manufactureCountry: 'US',\n maxDeliveryTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n maxShipTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n quantity: 20,\n sku: 'HM-123',\n title: 'Hippo Magazines',\n totalPrice: '12.1',\n variantTitle: 'June Edition',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n ),\n ],\n);\n\n$response = $sdk->orders->create(\n orderCreateRequest: $orderCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->order !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LineItemBase;\nimport com.goshippo.shippo_sdk.models.components.OrderCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.OrderStatusEnum;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateOrderResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateOrderResponse res = sdk.orders().create()\n .shippoApiVersion("2018-02-08")\n .orderCreateRequest(OrderCreateRequest.builder()\n .placedAt("2016-09-23T01:28:12Z")\n .toAddress(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .currency("USD")\n .notes("This customer is a VIP")\n .orderNumber("#1068")\n .orderStatus(OrderStatusEnum.PAID)\n .shippingCost("12.83")\n .shippingCostCurrency("USD")\n .shippingMethod("USPS First Class Package")\n .subtotalPrice("12.1")\n .totalPrice("24.93")\n .totalTax("0.0")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .fromAddress(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .lineItems(List.of(\n LineItemBase.builder()\n .currency("USD")\n .manufactureCountry("US")\n .maxDeliveryTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .maxShipTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .quantity(20L)\n .sku("HM-123")\n .title("Hippo Magazines")\n .totalPrice("12.1")\n .variantTitle("June Edition")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .build()))\n .build())\n .call();\n\n if (res.order().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Order]) + return unmarshal_json_response(components.Order, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -426,7 +518,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Order]: + ) -> components.Order: r"""Retrieve an order Retrieves an existing order using an object ID. @@ -467,6 +559,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -480,37 +573,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetOrder", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/4f2bc588e4e5446cb3f9fdb7cd5e190b/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.get(order_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Orders.GetAsync(\n orderId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->orders->get(\n orderId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->order !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetOrderResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetOrderResponse res = sdk.orders().get()\n .orderId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.order().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Order]) + return unmarshal_json_response(components.Order, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -520,7 +638,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Order]: + ) -> components.Order: r"""Retrieve an order Retrieves an existing order using an object ID. @@ -561,6 +679,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -574,34 +693,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetOrder", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Orders"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/orders/4f2bc588e4e5446cb3f9fdb7cd5e190b/ \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.orders.get(order_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.orders.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Orders.GetAsync(\n orderId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->orders->get(\n orderId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->order !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetOrderResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetOrderResponse res = sdk.orders().get()\n .orderId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.order().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Order]) + return unmarshal_json_response(components.Order, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/parcels.py b/src/shippo/parcels.py index 221601ea..608a776a 100644 --- a/src/shippo/parcels.py +++ b/src/shippo/parcels.py @@ -5,17 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Parcels(BaseSDK): - r"""A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates. - - - # Parcel Extras - The following values are supported for the `extra` field of the parcel object. - - """ + r"""A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates.""" def list( self, @@ -26,7 +21,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ParcelPaginatedList]: + ) -> components.ParcelPaginatedList: r"""List all parcels Returns a list of all parcel objects. @@ -69,6 +64,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -82,39 +78,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListParcels", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcelPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListParcelsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListParcelsResponse res = sdk.parcels().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.parcelPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ParcelPaginatedList] - ) + return unmarshal_json_response(components.ParcelPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -125,7 +144,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ParcelPaginatedList]: + ) -> components.ParcelPaginatedList: r"""List all parcels Returns a list of all parcel objects. @@ -168,6 +187,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -181,39 +201,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListParcels", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcelPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListParcelsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListParcelsResponse res = sdk.parcels().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.parcelPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ParcelPaginatedList] - ) + return unmarshal_json_response(components.ParcelPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -225,7 +268,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Parcel]: + ) -> components.Parcel: r"""Create a new parcel Creates a new parcel object. @@ -269,6 +312,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.CreateParcelRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -282,37 +326,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateParcel", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/ \\\n -H "Authorization: ShippoToken " \\\n -d length=5 \\\n -d width=5 \\\n -d height=5 \\\n -d distance_unit="cm" \\\n -d weight=2 \\\n -d mass_unit="lb" \\\n -d template="" \\\n -d metadata="Customer ID 123456"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.create(request=components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.create({\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->create(\n requestBody: new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcel !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.CreateAsync(\n requestBody: CreateParcelRequestBody.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateParcelRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateParcelResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateParcelResponse res = sdk.parcels().create()\n .shippoApiVersion("2018-02-08")\n .requestBody(CreateParcelRequestBody.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()))\n .call();\n\n if (res.parcel().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Parcel]) + return unmarshal_json_response(components.Parcel, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -324,7 +393,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Parcel]: + ) -> components.Parcel: r"""Create a new parcel Creates a new parcel object. @@ -368,6 +437,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.CreateParcelRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -381,37 +451,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateParcel", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/ \\\n -H "Authorization: ShippoToken " \\\n -d length=5 \\\n -d width=5 \\\n -d height=5 \\\n -d distance_unit="cm" \\\n -d weight=2 \\\n -d mass_unit="lb" \\\n -d template="" \\\n -d metadata="Customer ID 123456"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.create(request=components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.create({\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->create(\n requestBody: new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcel !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.CreateAsync(\n requestBody: CreateParcelRequestBody.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateParcelRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateParcelResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateParcelResponse res = sdk.parcels().create()\n .shippoApiVersion("2018-02-08")\n .requestBody(CreateParcelRequestBody.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()))\n .call();\n\n if (res.parcel().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Parcel]) + return unmarshal_json_response(components.Parcel, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -421,7 +516,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Parcel]: + ) -> components.Parcel: r"""Retrieve an existing parcel Returns parcel details using an existing parcel object ID (this will not return parcel details associated with un-purchased shipment/rate parcel object IDs). @@ -462,6 +557,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -475,37 +571,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetParcel", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/7df2ecf8b4224763ab7c71fae7ec8274/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.get(parcel_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->get(\n parcelId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcel !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.GetAsync(\n parcelId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetParcelResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetParcelResponse res = sdk.parcels().get()\n .parcelId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.parcel().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Parcel]) + return unmarshal_json_response(components.Parcel, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -515,7 +636,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Parcel]: + ) -> components.Parcel: r"""Retrieve an existing parcel Returns parcel details using an existing parcel object ID (this will not return parcel details associated with un-purchased shipment/rate parcel object IDs). @@ -556,6 +677,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -569,34 +691,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetParcel", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Parcels"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/parcels/7df2ecf8b4224763ab7c71fae7ec8274/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.parcels.get(parcel_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.parcels.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->parcels->get(\n parcelId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->parcel !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Parcels.GetAsync(\n parcelId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetParcelResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetParcelResponse res = sdk.parcels().get()\n .parcelId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.parcel().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Parcel]) + return unmarshal_json_response(components.Parcel, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/pickups.py b/src/shippo/pickups.py index 99def699..165af4a2 100644 --- a/src/shippo/pickups.py +++ b/src/shippo/pickups.py @@ -5,13 +5,13 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Pickups(BaseSDK): r"""A pickup is when you schedule a carrier to collect a package for delivery. Use Shippo’s pickups endpoint to schedule pickups with USPS and DHL Express for eligible shipments that you have already created. - """ def create( @@ -22,7 +22,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Pickup]: + ) -> components.Pickup: r"""Create a pickup Creates a pickup object. This request is for a carrier to come to a specified location to take a package for shipping. @@ -66,6 +66,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.PickupBase ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -79,37 +80,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreatePickup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Pickups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/pickups/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "carrier_account":"6c51273296864869829b96a80fb13ea1",\n "location":{\n "building_location_type": "Other",\n "building_type": "suite",\n "instructions": "Behind screen door",\n "address": {\n "name": "Mrs Hippo",\n "company": "Hungry Hippos",\n "street1": "965 Mission St #201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "+14159876543",\n "email": "mrshippo@shippo.com"\n }\n },\n "transactions": ["7439c279b374494c9a80ca24f59e6fc5"],\n "requested_start_time":"2020-05-12T12:00:00Z",\n "requested_end_time": "2020-05-12T16:00:00Z",\n "metadata": "Customer ID 123456",\n "is_test": false\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.pickups.create(request=components.PickupBase(\n carrier_account='adcfdddf8ec64b84ad22772bce3ea37a',\n location=components.Location(\n address=components.AddressCompleteCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n building_location_type=components.BuildingLocationType.FRONT_DOOR,\n building_type=components.BuildingType.APARTMENT,\n instructions='Behind screen door',\n ),\n requested_end_time=dateutil.parser.isoparse('2024-06-17T07:14:55.338Z'),\n requested_start_time=dateutil.parser.isoparse('2024-11-30T17:06:07.804Z'),\n transactions=[\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.pickups.create({\n carrierAccount: "adcfdddf8ec64b84ad22772bce3ea37a",\n location: {\n address: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n buildingLocationType: "Front Door",\n buildingType: "apartment",\n instructions: "Behind screen door",\n },\n requestedEndTime: new Date("2024-06-17T07:14:55.338Z"),\n requestedStartTime: new Date("2024-11-30T17:06:07.804Z"),\n transactions: [\n "adcfdddf8ec64b84ad22772bce3ea37a",\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Pickups.CreateAsync(\n pickupBase: new PickupBase() {\n CarrierAccount = "adcfdddf8ec64b84ad22772bce3ea37a",\n Location = new Location() {\n Address = new AddressCompleteCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n BuildingLocationType = BuildingLocationType.FrontDoor,\n BuildingType = BuildingType.Apartment,\n Instructions = "Behind screen door",\n },\n RequestedEndTime = System.DateTime.Parse("2024-06-17T07:14:55.338Z"),\n RequestedStartTime = System.DateTime.Parse("2024-11-30T17:06:07.804Z"),\n Transactions = new List() {\n "adcfdddf8ec64b84ad22772bce3ea37a",\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$pickupBase = new Components\\PickupBase(\n carrierAccount: 'adcfdddf8ec64b84ad22772bce3ea37a',\n location: new Components\\Location(\n address: new Components\\AddressCompleteCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n buildingLocationType: Components\\BuildingLocationType::FrontDoor,\n buildingType: Components\\BuildingType::Apartment,\n instructions: 'Behind screen door',\n ),\n requestedEndTime: Utils\\Utils::parseDateTime('2024-06-17T07:14:55.338Z'),\n requestedStartTime: Utils\\Utils::parseDateTime('2024-11-30T17:06:07.804Z'),\n transactions: [\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n);\n\n$response = $sdk->pickups->create(\n pickupBase: $pickupBase,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->pickup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCompleteCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.BuildingLocationType;\nimport com.goshippo.shippo_sdk.models.components.BuildingType;\nimport com.goshippo.shippo_sdk.models.components.Location;\nimport com.goshippo.shippo_sdk.models.components.PickupBase;\nimport com.goshippo.shippo_sdk.models.operations.CreatePickupResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreatePickupResponse res = sdk.pickups().create()\n .shippoApiVersion("2018-02-08")\n .pickupBase(PickupBase.builder()\n .carrierAccount("adcfdddf8ec64b84ad22772bce3ea37a")\n .location(Location.builder()\n .address(AddressCompleteCreateRequest.builder()\n .name("Shwan Ippotle")\n .street1("215 Clayton St.")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .country("US")\n .company("Shippo")\n .street3("")\n .streetNo("")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .buildingLocationType(BuildingLocationType.FRONT_DOOR)\n .buildingType(BuildingType.APARTMENT)\n .instructions("Behind screen door")\n .build())\n .requestedEndTime(OffsetDateTime.parse("2024-06-17T07:14:55.338Z"))\n .requestedStartTime(OffsetDateTime.parse("2024-11-30T17:06:07.804Z"))\n .transactions(List.of(\n "adcfdddf8ec64b84ad22772bce3ea37a"))\n .build())\n .call();\n\n if (res.pickup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Pickup]) + return unmarshal_json_response(components.Pickup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -119,7 +145,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Pickup]: + ) -> components.Pickup: r"""Create a pickup Creates a pickup object. This request is for a carrier to come to a specified location to take a package for shipping. @@ -163,6 +189,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.PickupBase ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -176,34 +203,59 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreatePickup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Pickups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/pickups/ \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "carrier_account":"6c51273296864869829b96a80fb13ea1",\n "location":{\n "building_location_type": "Other",\n "building_type": "suite",\n "instructions": "Behind screen door",\n "address": {\n "name": "Mrs Hippo",\n "company": "Hungry Hippos",\n "street1": "965 Mission St #201",\n "city": "San Francisco",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "+14159876543",\n "email": "mrshippo@shippo.com"\n }\n },\n "transactions": ["7439c279b374494c9a80ca24f59e6fc5"],\n "requested_start_time":"2020-05-12T12:00:00Z",\n "requested_end_time": "2020-05-12T16:00:00Z",\n "metadata": "Customer ID 123456",\n "is_test": false\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.pickups.create(request=components.PickupBase(\n carrier_account='adcfdddf8ec64b84ad22772bce3ea37a',\n location=components.Location(\n address=components.AddressCompleteCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n building_location_type=components.BuildingLocationType.FRONT_DOOR,\n building_type=components.BuildingType.APARTMENT,\n instructions='Behind screen door',\n ),\n requested_end_time=dateutil.parser.isoparse('2024-06-17T07:14:55.338Z'),\n requested_start_time=dateutil.parser.isoparse('2024-11-30T17:06:07.804Z'),\n transactions=[\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.pickups.create({\n carrierAccount: "adcfdddf8ec64b84ad22772bce3ea37a",\n location: {\n address: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n buildingLocationType: "Front Door",\n buildingType: "apartment",\n instructions: "Behind screen door",\n },\n requestedEndTime: new Date("2024-06-17T07:14:55.338Z"),\n requestedStartTime: new Date("2024-11-30T17:06:07.804Z"),\n transactions: [\n "adcfdddf8ec64b84ad22772bce3ea37a",\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Pickups.CreateAsync(\n pickupBase: new PickupBase() {\n CarrierAccount = "adcfdddf8ec64b84ad22772bce3ea37a",\n Location = new Location() {\n Address = new AddressCompleteCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n },\n BuildingLocationType = BuildingLocationType.FrontDoor,\n BuildingType = BuildingType.Apartment,\n Instructions = "Behind screen door",\n },\n RequestedEndTime = System.DateTime.Parse("2024-06-17T07:14:55.338Z"),\n RequestedStartTime = System.DateTime.Parse("2024-11-30T17:06:07.804Z"),\n Transactions = new List() {\n "adcfdddf8ec64b84ad22772bce3ea37a",\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$pickupBase = new Components\\PickupBase(\n carrierAccount: 'adcfdddf8ec64b84ad22772bce3ea37a',\n location: new Components\\Location(\n address: new Components\\AddressCompleteCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n buildingLocationType: Components\\BuildingLocationType::FrontDoor,\n buildingType: Components\\BuildingType::Apartment,\n instructions: 'Behind screen door',\n ),\n requestedEndTime: Utils\\Utils::parseDateTime('2024-06-17T07:14:55.338Z'),\n requestedStartTime: Utils\\Utils::parseDateTime('2024-11-30T17:06:07.804Z'),\n transactions: [\n 'adcfdddf8ec64b84ad22772bce3ea37a',\n ],\n);\n\n$response = $sdk->pickups->create(\n pickupBase: $pickupBase,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->pickup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCompleteCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.BuildingLocationType;\nimport com.goshippo.shippo_sdk.models.components.BuildingType;\nimport com.goshippo.shippo_sdk.models.components.Location;\nimport com.goshippo.shippo_sdk.models.components.PickupBase;\nimport com.goshippo.shippo_sdk.models.operations.CreatePickupResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreatePickupResponse res = sdk.pickups().create()\n .shippoApiVersion("2018-02-08")\n .pickupBase(PickupBase.builder()\n .carrierAccount("adcfdddf8ec64b84ad22772bce3ea37a")\n .location(Location.builder()\n .address(AddressCompleteCreateRequest.builder()\n .name("Shwan Ippotle")\n .street1("215 Clayton St.")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .country("US")\n .company("Shippo")\n .street3("")\n .streetNo("")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build())\n .buildingLocationType(BuildingLocationType.FRONT_DOOR)\n .buildingType(BuildingType.APARTMENT)\n .instructions("Behind screen door")\n .build())\n .requestedEndTime(OffsetDateTime.parse("2024-06-17T07:14:55.338Z"))\n .requestedStartTime(OffsetDateTime.parse("2024-11-30T17:06:07.804Z"))\n .transactions(List.of(\n "adcfdddf8ec64b84ad22772bce3ea37a"))\n .build())\n .call();\n\n if (res.pickup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Pickup]) + return unmarshal_json_response(components.Pickup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/rates.py b/src/shippo/rates.py index 00fb6c77..f0387fe7 100644 --- a/src/shippo/rates.py +++ b/src/shippo/rates.py @@ -5,13 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Rates(BaseSDK): - r"""A rate is the cost to ship a parcel from a carrier. The rate object details the service level including the cost and transit time. - - """ + r"""A rate is the cost to ship a parcel from a carrier. The rate object details the service level including the cost and transit time.""" def get( self, @@ -21,10 +20,10 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Rate]: + ) -> components.Rate: r"""Retrieve a rate - Returns an existing rate using a rate object ID. + Returns an existing rate using a rate object ID. Rates older than 390 days are not returned. :param rate_id: Object ID of the rate :param retries: Override the default retry configuration for this method @@ -62,6 +61,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -75,37 +75,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetRate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/rates/ee81fab0372e419ab52245c8952ccaeb \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.get(rate_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->rates->get(\n rateId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->rate !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Rates.GetAsync(\n rateId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetRateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetRateResponse res = sdk.rates().get()\n .rateId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.rate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Rate]) + return unmarshal_json_response(components.Rate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -115,10 +140,10 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Rate]: + ) -> components.Rate: r"""Retrieve a rate - Returns an existing rate using a rate object ID. + Returns an existing rate using a rate object ID. Rates older than 390 days are not returned. :param rate_id: Object ID of the rate :param retries: Override the default retry configuration for this method @@ -156,6 +181,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -169,37 +195,62 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetRate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/rates/ee81fab0372e419ab52245c8952ccaeb \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.get(rate_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->rates->get(\n rateId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->rate !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Rates.GetAsync(\n rateId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetRateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetRateResponse res = sdk.rates().get()\n .rateId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.rate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Rate]) + return unmarshal_json_response(components.Rate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def list_shipment_rates( self, @@ -211,10 +262,10 @@ def list_shipment_rates( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RatePaginatedList]: + ) -> components.RatePaginatedList: r"""Retrieve shipment rates - Returns a paginated list of rates associated with a shipment + Returns a paginated list of rates associated with a shipment. Rates for shipments older than 390 days are not returned. :param shipment_id: Object ID of the shipment to update :param page: The page number you want to select @@ -256,6 +307,7 @@ def list_shipment_rates( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -269,39 +321,62 @@ def list_shipment_rates( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipmentRates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/5e40ead7cffe4cc1ad45108696162e42/rates/USD \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.list_shipment_rates(shipment_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.listShipmentRates("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentRatesRequest(\n shipmentId: '',\n);\n\n$response = $sdk->rates->listShipmentRates(\n request: $request\n);\n\nif ($response->ratePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentRatesRequest req = new ListShipmentRatesRequest() {\n ShipmentId = "",\n};\n\nvar res = await sdk.Rates.ListShipmentRatesAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentRatesResponse res = sdk.rates().listShipmentRates()\n .shipmentId("")\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.ratePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RatePaginatedList] - ) + return unmarshal_json_response(components.RatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_shipment_rates_async( self, @@ -313,10 +388,10 @@ async def list_shipment_rates_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RatePaginatedList]: + ) -> components.RatePaginatedList: r"""Retrieve shipment rates - Returns a paginated list of rates associated with a shipment + Returns a paginated list of rates associated with a shipment. Rates for shipments older than 390 days are not returned. :param shipment_id: Object ID of the shipment to update :param page: The page number you want to select @@ -358,6 +433,7 @@ async def list_shipment_rates_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -371,39 +447,62 @@ async def list_shipment_rates_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipmentRates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/5e40ead7cffe4cc1ad45108696162e42/rates/USD \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.list_shipment_rates(shipment_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.listShipmentRates("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentRatesRequest(\n shipmentId: '',\n);\n\n$response = $sdk->rates->listShipmentRates(\n request: $request\n);\n\nif ($response->ratePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentRatesRequest req = new ListShipmentRatesRequest() {\n ShipmentId = "",\n};\n\nvar res = await sdk.Rates.ListShipmentRatesAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentRatesResponse res = sdk.rates().listShipmentRates()\n .shipmentId("")\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.ratePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RatePaginatedList] - ) + return unmarshal_json_response(components.RatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def list_shipment_rates_by_currency_code( self, @@ -416,17 +515,19 @@ def list_shipment_rates_by_currency_code( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RatePaginatedList]: + ) -> components.RatePaginatedList: r"""Retrieve shipment rates in currency Returns all available shipping rates for a shipment object. When you create a new valid shipment object, Shippo automatically calculates all available rates. Depending on your shipment data, there may be none, one or multiple rates. - By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on open exchange rates. + By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on [open exchange rates](http://openexchangerates.org/api/currencies.json). Note: re-requesting the rates with a different currency code will re-queue the shipment (i.e. set the Shipment's `status` to `QUEUED`) and the converted currency rates will only be available when the Shipment's `status` is set to `SUCCESS`. + Rates for shipments older than 390 days are not returned. + :param request: The request object to send. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -465,6 +566,7 @@ def list_shipment_rates_by_currency_code( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -478,39 +580,57 @@ def list_shipment_rates_by_currency_code( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipmentRatesByCurrencyCode", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.list_shipment_rates_by_currency_code(request=operations.ListShipmentRatesByCurrencyCodeRequest(\n shipment_id='',\n currency_code='USD',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.listShipmentRatesByCurrencyCode({\n shipmentId: "",\n currencyCode: "USD",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentRatesByCurrencyCodeRequest req = new ListShipmentRatesByCurrencyCodeRequest() {\n ShipmentId = "",\n CurrencyCode = "USD",\n};\n\nvar res = await sdk.Rates.ListShipmentRatesByCurrencyCodeAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentRatesByCurrencyCodeRequest(\n shipmentId: '',\n currencyCode: 'USD',\n);\n\n$response = $sdk->rates->listShipmentRatesByCurrencyCode(\n request: $request\n);\n\nif ($response->ratePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesByCurrencyCodeRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesByCurrencyCodeResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentRatesByCurrencyCodeRequest req = ListShipmentRatesByCurrencyCodeRequest.builder()\n .shipmentId("")\n .currencyCode("USD")\n .build();\n\n ListShipmentRatesByCurrencyCodeResponse res = sdk.rates().listShipmentRatesByCurrencyCode()\n .request(req)\n .call();\n\n if (res.ratePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RatePaginatedList] - ) + return unmarshal_json_response(components.RatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_shipment_rates_by_currency_code_async( self, @@ -523,17 +643,19 @@ async def list_shipment_rates_by_currency_code_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RatePaginatedList]: + ) -> components.RatePaginatedList: r"""Retrieve shipment rates in currency Returns all available shipping rates for a shipment object. When you create a new valid shipment object, Shippo automatically calculates all available rates. Depending on your shipment data, there may be none, one or multiple rates. - By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on open exchange rates. + By default, the calculated rates will return the price in two currencies under the `amount` and `amount_local` keys, respectively. The `amount` key will contain the price of a rate expressed in the currency that is used in the country from where the parcel originates, and the `amount_local` key will contain the price expressed in the currency that is used in the country the parcel is shipped to. You can request rates with prices expressed in a different currency by adding the currency code to the end of the resource URL. The full list of supported currencies along with their codes can be viewed on [open exchange rates](http://openexchangerates.org/api/currencies.json). Note: re-requesting the rates with a different currency code will re-queue the shipment (i.e. set the Shipment's `status` to `QUEUED`) and the converted currency rates will only be available when the Shipment's `status` is set to `SUCCESS`. + Rates for shipments older than 390 days are not returned. + :param request: The request object to send. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method @@ -572,6 +694,7 @@ async def list_shipment_rates_by_currency_code_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -585,36 +708,54 @@ async def list_shipment_rates_by_currency_code_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipmentRatesByCurrencyCode", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates.list_shipment_rates_by_currency_code(request=operations.ListShipmentRatesByCurrencyCodeRequest(\n shipment_id='',\n currency_code='USD',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.rates.listShipmentRatesByCurrencyCode({\n shipmentId: "",\n currencyCode: "USD",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentRatesByCurrencyCodeRequest req = new ListShipmentRatesByCurrencyCodeRequest() {\n ShipmentId = "",\n CurrencyCode = "USD",\n};\n\nvar res = await sdk.Rates.ListShipmentRatesByCurrencyCodeAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentRatesByCurrencyCodeRequest(\n shipmentId: '',\n currencyCode: 'USD',\n);\n\n$response = $sdk->rates->listShipmentRatesByCurrencyCode(\n request: $request\n);\n\nif ($response->ratePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesByCurrencyCodeRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentRatesByCurrencyCodeResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentRatesByCurrencyCodeRequest req = ListShipmentRatesByCurrencyCodeRequest.builder()\n .shipmentId("")\n .currencyCode("USD")\n .build();\n\n ListShipmentRatesByCurrencyCodeResponse res = sdk.rates().listShipmentRatesByCurrencyCode()\n .request(req)\n .call();\n\n if (res.ratePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RatePaginatedList] - ) + return unmarshal_json_response(components.RatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/rates_at_checkout.py b/src/shippo/rates_at_checkout.py index 42ba2100..32fa874b 100644 --- a/src/shippo/rates_at_checkout.py +++ b/src/shippo/rates_at_checkout.py @@ -5,19 +5,19 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class RatesAtCheckout(BaseSDK): r"""Rates at checkout is a tool for merchants to display up-to-date shipping estimates based on what's in their customers cart and where they’re shipping to. Merchants set up curated shipping options for customers in the checkout flow based on data in the shopping cart. The request must include the **to** address and item information. Optional fields are the **from** address and package information. If the optional fields are not included, the service will use the default address and/or package configured for rates at checkout. The response is a list of shipping options based on the Service Group configuration. - (see Service Group configuration for details). - + (see [Service Group configuration](/shippoapi/public-api/service-groups) for details). + # Default Parcel Template Assign one of your user parcel templates to be the default used when generating Live Rates. This template will be used by default when generating Live Rates, unless you explicitly provide a parcel in the Live Rates request. - """ def create( @@ -30,7 +30,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.LiveRatePaginatedList]: + ) -> components.LiveRatePaginatedList: r"""Generate a live rates request Initiates a live rates request. Include either the object ID for @@ -77,6 +77,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.LiveRateCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -90,39 +91,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateLiveRate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/live-rates \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"\n--data-raw \'{\n "address_from": {\n "name": "S. Hippo",\n "company": "Shippo",\n "street1": "731 Market St #200",\n "street_no": "",\n "street2": "",\n "street3": "",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US"\n },\n "address_to": {\n "name": "Bob Bloat",\n "company": "SF Zoo",\n "street1": "Sloat Blvd. & Upper Great Hwy.",\n "street_no": "",\n "street2": "",\n "street3": "",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94132",\n "country": "US"\n },\n "line_items": [\n {\n "quantity": 1,\n "total_price": "12.00",\n "currency": "USD",\n "weight": "1.0",\n "weight_unit": "lb",\n "title": "Hippo Snax",\n "manufacture_country": "US",\n "sku": "HM-123"\n }\n ],\n "parcel": {\n "length": "10",\n "width": "15",\n "height": "10",\n "distance_unit": "in",\n "weight": "1",\n "mass_unit": "lb"\n }\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.create(request=components.LiveRateCreateRequest(\n address_from='',\n address_to=components.AddressCompleteCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n line_items=[\n components.LineItem(\n currency='USD',\n manufacture_country='US',\n max_delivery_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n max_ship_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n quantity=20,\n sku='HM-123',\n title='Hippo Magazines',\n total_price='12.1',\n variant_title='June Edition',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n object_id='abf7d5675d744b6ea9fdb6f796b28f28',\n ),\n ],\n parcel='5df144dca289442cv7a06',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.create({\n addressFrom: "",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n lineItems: [\n {\n currency: "USD",\n manufactureCountry: "US",\n maxDeliveryTime: new Date("2016-07-23T00:00:00Z"),\n maxShipTime: new Date("2016-07-23T00:00:00Z"),\n quantity: 20,\n sku: "HM-123",\n title: "Hippo Magazines",\n totalPrice: "12.1",\n variantTitle: "June Edition",\n weight: "0.4",\n weightUnit: "lb",\n objectId: "abf7d5675d744b6ea9fdb6f796b28f28",\n },\n ],\n parcel: "5df144dca289442cv7a06",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.CreateAsync(\n liveRateCreateRequest: new LiveRateCreateRequest() {\n AddressFrom = LiveRateCreateRequestAddressFrom.CreateStr(\n ""\n ),\n AddressTo = LiveRateCreateRequestAddressTo.CreateAddressCompleteCreateRequest(\n new AddressCompleteCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n LineItems = new List() {\n new LineItem() {\n Currency = "USD",\n ManufactureCountry = "US",\n MaxDeliveryTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n MaxShipTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n Quantity = 20,\n Sku = "HM-123",\n Title = "Hippo Magazines",\n TotalPrice = "12.1",\n VariantTitle = "June Edition",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n ObjectId = "abf7d5675d744b6ea9fdb6f796b28f28",\n },\n },\n Parcel = LiveRateCreateRequestParcel.CreateStr(\n "5df144dca289442cv7a06"\n ),\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$liveRateCreateRequest = new Components\\LiveRateCreateRequest(\n addressFrom: '',\n addressTo: new Components\\AddressCompleteCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n lineItems: [\n new Components\\LineItem(\n currency: 'USD',\n manufactureCountry: 'US',\n maxDeliveryTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n maxShipTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n quantity: 20,\n sku: 'HM-123',\n title: 'Hippo Magazines',\n totalPrice: '12.1',\n variantTitle: 'June Edition',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n objectId: 'abf7d5675d744b6ea9fdb6f796b28f28',\n ),\n ],\n parcel: '5df144dca289442cv7a06',\n);\n\n$response = $sdk->ratesAtCheckout->create(\n liveRateCreateRequest: $liveRateCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->liveRatePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCompleteCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LineItem;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestAddressFrom;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestAddressTo;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestParcel;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateLiveRateResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateLiveRateResponse res = sdk.ratesAtCheckout().create()\n .shippoApiVersion("2018-02-08")\n .liveRateCreateRequest(LiveRateCreateRequest.builder()\n .addressTo(LiveRateCreateRequestAddressTo.of(AddressCompleteCreateRequest.builder()\n .name("Shwan Ippotle")\n .street1("215 Clayton St.")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .country("US")\n .company("Shippo")\n .street3("")\n .streetNo("")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .lineItems(List.of(\n LineItem.builder()\n .currency("USD")\n .manufactureCountry("US")\n .maxDeliveryTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .maxShipTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .quantity(20L)\n .sku("HM-123")\n .title("Hippo Magazines")\n .totalPrice("12.1")\n .variantTitle("June Edition")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .objectId("abf7d5675d744b6ea9fdb6f796b28f28")\n .build()))\n .addressFrom(LiveRateCreateRequestAddressFrom.of(""))\n .parcel(LiveRateCreateRequestParcel.of("5df144dca289442cv7a06"))\n .build())\n .call();\n\n if (res.liveRatePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.LiveRatePaginatedList] - ) + return unmarshal_json_response(components.LiveRatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -134,7 +158,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.LiveRatePaginatedList]: + ) -> components.LiveRatePaginatedList: r"""Generate a live rates request Initiates a live rates request. Include either the object ID for @@ -181,6 +205,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.LiveRateCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -194,39 +219,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateLiveRate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/live-rates \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"\n--data-raw \'{\n "address_from": {\n "name": "S. Hippo",\n "company": "Shippo",\n "street1": "731 Market St #200",\n "street_no": "",\n "street2": "",\n "street3": "",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US"\n },\n "address_to": {\n "name": "Bob Bloat",\n "company": "SF Zoo",\n "street1": "Sloat Blvd. & Upper Great Hwy.",\n "street_no": "",\n "street2": "",\n "street3": "",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94132",\n "country": "US"\n },\n "line_items": [\n {\n "quantity": 1,\n "total_price": "12.00",\n "currency": "USD",\n "weight": "1.0",\n "weight_unit": "lb",\n "title": "Hippo Snax",\n "manufacture_country": "US",\n "sku": "HM-123"\n }\n ],\n "parcel": {\n "length": "10",\n "width": "15",\n "height": "10",\n "distance_unit": "in",\n "weight": "1",\n "mass_unit": "lb"\n }\n}\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import dateutil.parser\nimport shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.create(request=components.LiveRateCreateRequest(\n address_from='',\n address_to=components.AddressCompleteCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n line_items=[\n components.LineItem(\n currency='USD',\n manufacture_country='US',\n max_delivery_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n max_ship_time=dateutil.parser.isoparse('2016-07-23T00:00:00Z'),\n quantity=20,\n sku='HM-123',\n title='Hippo Magazines',\n total_price='12.1',\n variant_title='June Edition',\n weight='0.4',\n weight_unit=components.WeightUnitEnum.LB,\n object_id='abf7d5675d744b6ea9fdb6f796b28f28',\n ),\n ],\n parcel='5df144dca289442cv7a06',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.create({\n addressFrom: "",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n lineItems: [\n {\n currency: "USD",\n manufactureCountry: "US",\n maxDeliveryTime: new Date("2016-07-23T00:00:00Z"),\n maxShipTime: new Date("2016-07-23T00:00:00Z"),\n quantity: 20,\n sku: "HM-123",\n title: "Hippo Magazines",\n totalPrice: "12.1",\n variantTitle: "June Edition",\n weight: "0.4",\n weightUnit: "lb",\n objectId: "abf7d5675d744b6ea9fdb6f796b28f28",\n },\n ],\n parcel: "5df144dca289442cv7a06",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.CreateAsync(\n liveRateCreateRequest: new LiveRateCreateRequest() {\n AddressFrom = LiveRateCreateRequestAddressFrom.CreateStr(\n ""\n ),\n AddressTo = LiveRateCreateRequestAddressTo.CreateAddressCompleteCreateRequest(\n new AddressCompleteCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n LineItems = new List() {\n new LineItem() {\n Currency = "USD",\n ManufactureCountry = "US",\n MaxDeliveryTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n MaxShipTime = System.DateTime.Parse("2016-07-23T00:00:00Z"),\n Quantity = 20,\n Sku = "HM-123",\n Title = "Hippo Magazines",\n TotalPrice = "12.1",\n VariantTitle = "June Edition",\n Weight = "0.4",\n WeightUnit = WeightUnitEnum.Lb,\n ObjectId = "abf7d5675d744b6ea9fdb6f796b28f28",\n },\n },\n Parcel = LiveRateCreateRequestParcel.CreateStr(\n "5df144dca289442cv7a06"\n ),\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Utils;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$liveRateCreateRequest = new Components\\LiveRateCreateRequest(\n addressFrom: '',\n addressTo: new Components\\AddressCompleteCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n lineItems: [\n new Components\\LineItem(\n currency: 'USD',\n manufactureCountry: 'US',\n maxDeliveryTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n maxShipTime: Utils\\Utils::parseDateTime('2016-07-23T00:00:00Z'),\n quantity: 20,\n sku: 'HM-123',\n title: 'Hippo Magazines',\n totalPrice: '12.1',\n variantTitle: 'June Edition',\n weight: '0.4',\n weightUnit: Components\\WeightUnitEnum::Lb,\n objectId: 'abf7d5675d744b6ea9fdb6f796b28f28',\n ),\n ],\n parcel: '5df144dca289442cv7a06',\n);\n\n$response = $sdk->ratesAtCheckout->create(\n liveRateCreateRequest: $liveRateCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->liveRatePaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCompleteCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LineItem;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestAddressFrom;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestAddressTo;\nimport com.goshippo.shippo_sdk.models.components.LiveRateCreateRequestParcel;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateLiveRateResponse;\nimport java.lang.Exception;\nimport java.time.OffsetDateTime;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateLiveRateResponse res = sdk.ratesAtCheckout().create()\n .shippoApiVersion("2018-02-08")\n .liveRateCreateRequest(LiveRateCreateRequest.builder()\n .addressTo(LiveRateCreateRequestAddressTo.of(AddressCompleteCreateRequest.builder()\n .name("Shwan Ippotle")\n .street1("215 Clayton St.")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .country("US")\n .company("Shippo")\n .street3("")\n .streetNo("")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .lineItems(List.of(\n LineItem.builder()\n .currency("USD")\n .manufactureCountry("US")\n .maxDeliveryTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .maxShipTime(OffsetDateTime.parse("2016-07-23T00:00:00Z"))\n .quantity(20L)\n .sku("HM-123")\n .title("Hippo Magazines")\n .totalPrice("12.1")\n .variantTitle("June Edition")\n .weight("0.4")\n .weightUnit(WeightUnitEnum.LB)\n .objectId("abf7d5675d744b6ea9fdb6f796b28f28")\n .build()))\n .addressFrom(LiveRateCreateRequestAddressFrom.of(""))\n .parcel(LiveRateCreateRequestParcel.of("5df144dca289442cv7a06"))\n .build())\n .call();\n\n if (res.liveRatePaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.LiveRatePaginatedList] - ) + return unmarshal_json_response(components.LiveRatePaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get_default_parcel_template( self, @@ -239,7 +287,7 @@ def get_default_parcel_template( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.DefaultParcelTemplate]: + ) -> components.DefaultParcelTemplate: r"""Show current default parcel template Retrieve and display the currently configured default parcel template for live rates. @@ -282,6 +330,7 @@ def get_default_parcel_template( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -295,39 +344,62 @@ def get_default_parcel_template( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/live-rates/settings/parcel-template \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.get_default_parcel_template(request=operations.GetDefaultParcelTemplateRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.getDefaultParcelTemplate({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.GetDefaultParcelTemplateAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->ratesAtCheckout->getDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->defaultParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().getDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.defaultParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.DefaultParcelTemplate] - ) + return unmarshal_json_response(components.DefaultParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_default_parcel_template_async( self, @@ -340,7 +412,7 @@ async def get_default_parcel_template_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.DefaultParcelTemplate]: + ) -> components.DefaultParcelTemplate: r"""Show current default parcel template Retrieve and display the currently configured default parcel template for live rates. @@ -383,6 +455,7 @@ async def get_default_parcel_template_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -396,39 +469,62 @@ async def get_default_parcel_template_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/live-rates/settings/parcel-template \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.get_default_parcel_template(request=operations.GetDefaultParcelTemplateRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.getDefaultParcelTemplate({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.GetDefaultParcelTemplateAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->ratesAtCheckout->getDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->defaultParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().getDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.defaultParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.DefaultParcelTemplate] - ) + return unmarshal_json_response(components.DefaultParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def update_default_parcel_template( self, @@ -443,7 +539,7 @@ def update_default_parcel_template( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.DefaultParcelTemplate]: + ) -> components.DefaultParcelTemplate: r"""Update default parcel template Update the currently configured default parcel template for live rates. The object_id in the request payload should identify the user parcel template to be the new default. @@ -493,6 +589,7 @@ def update_default_parcel_template( "json", Optional[components.DefaultParcelTemplateUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -506,39 +603,62 @@ def update_default_parcel_template( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X PUT https://api.goshippo.com/live-rates/settings/parcel-template \\\n-H "Authorization: ShippoToken " \\\n-d \'\n {\n "object_id": "b958d3690bb04bb8b2986724872750f5"\n }\n\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.update_default_parcel_template(request=components.DefaultParcelTemplateUpdateRequest(\n object_id='b958d3690bb04bb8b2986724872750f5',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.updateDefaultParcelTemplate({\n objectId: "b958d3690bb04bb8b2986724872750f5",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.UpdateDefaultParcelTemplateAsync(\n shippoApiVersion: "2018-02-08",\n defaultParcelTemplateUpdateRequest: new DefaultParcelTemplateUpdateRequest() {\n ObjectId = "b958d3690bb04bb8b2986724872750f5",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$defaultParcelTemplateUpdateRequest = new Components\\DefaultParcelTemplateUpdateRequest(\n objectId: 'b958d3690bb04bb8b2986724872750f5',\n);\n\n$response = $sdk->ratesAtCheckout->updateDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08',\n defaultParcelTemplateUpdateRequest: $defaultParcelTemplateUpdateRequest\n\n);\n\nif ($response->defaultParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.DefaultParcelTemplateUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().updateDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .defaultParcelTemplateUpdateRequest(DefaultParcelTemplateUpdateRequest.builder()\n .objectId("b958d3690bb04bb8b2986724872750f5")\n .build())\n .call();\n\n if (res.defaultParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.DefaultParcelTemplate] - ) + return unmarshal_json_response(components.DefaultParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def update_default_parcel_template_async( self, @@ -553,7 +673,7 @@ async def update_default_parcel_template_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.DefaultParcelTemplate]: + ) -> components.DefaultParcelTemplate: r"""Update default parcel template Update the currently configured default parcel template for live rates. The object_id in the request payload should identify the user parcel template to be the new default. @@ -603,6 +723,7 @@ async def update_default_parcel_template_async( "json", Optional[components.DefaultParcelTemplateUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -616,39 +737,62 @@ async def update_default_parcel_template_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X PUT https://api.goshippo.com/live-rates/settings/parcel-template \\\n-H "Authorization: ShippoToken " \\\n-d \'\n {\n "object_id": "b958d3690bb04bb8b2986724872750f5"\n }\n\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.rates_at_checkout.update_default_parcel_template(request=components.DefaultParcelTemplateUpdateRequest(\n object_id='b958d3690bb04bb8b2986724872750f5',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.ratesAtCheckout.updateDefaultParcelTemplate({\n objectId: "b958d3690bb04bb8b2986724872750f5",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.RatesAtCheckout.UpdateDefaultParcelTemplateAsync(\n shippoApiVersion: "2018-02-08",\n defaultParcelTemplateUpdateRequest: new DefaultParcelTemplateUpdateRequest() {\n ObjectId = "b958d3690bb04bb8b2986724872750f5",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$defaultParcelTemplateUpdateRequest = new Components\\DefaultParcelTemplateUpdateRequest(\n objectId: 'b958d3690bb04bb8b2986724872750f5',\n);\n\n$response = $sdk->ratesAtCheckout->updateDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08',\n defaultParcelTemplateUpdateRequest: $defaultParcelTemplateUpdateRequest\n\n);\n\nif ($response->defaultParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.DefaultParcelTemplateUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().updateDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .defaultParcelTemplateUpdateRequest(DefaultParcelTemplateUpdateRequest.builder()\n .objectId("b958d3690bb04bb8b2986724872750f5")\n .build())\n .call();\n\n if (res.defaultParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.DefaultParcelTemplate] - ) + return unmarshal_json_response(components.DefaultParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def delete_default_parcel_template( self, @@ -704,6 +848,7 @@ def delete_default_parcel_template( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -717,13 +862,49 @@ def delete_default_parcel_template( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X DELETE https://api.goshippo.com/live-rates/settings/parcel-template \\\n-H "Authorization: ShippoToken " \\', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.rates_at_checkout.delete_default_parcel_template(request=operations.DeleteDefaultParcelTemplateRequest())\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.ratesAtCheckout.deleteDefaultParcelTemplate({});\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.RatesAtCheckout.DeleteDefaultParcelTemplateAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->ratesAtCheckout->deleteDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().deleteDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -731,23 +912,12 @@ def delete_default_parcel_template( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def delete_default_parcel_template_async( self, @@ -803,6 +973,7 @@ async def delete_default_parcel_template_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -816,13 +987,49 @@ async def delete_default_parcel_template_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteDefaultParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Rates at Checkout"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X DELETE https://api.goshippo.com/live-rates/settings/parcel-template \\\n-H "Authorization: ShippoToken " \\', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.rates_at_checkout.delete_default_parcel_template(request=operations.DeleteDefaultParcelTemplateRequest())\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.ratesAtCheckout.deleteDefaultParcelTemplate({});\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.RatesAtCheckout.DeleteDefaultParcelTemplateAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->ratesAtCheckout->deleteDefaultParcelTemplate(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteDefaultParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteDefaultParcelTemplateResponse res = sdk.ratesAtCheckout().deleteDefaultParcelTemplate()\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -830,20 +1037,9 @@ async def delete_default_parcel_template_async( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/refunds.py b/src/shippo/refunds.py index 92830460..ead6d799 100644 --- a/src/shippo/refunds.py +++ b/src/shippo/refunds.py @@ -5,13 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Refunds(BaseSDK): - r"""Refunds are reimbursements for successfully created but unused shipping labels or other charges. - - """ + r"""Refunds are reimbursements for successfully created but unused shipping labels or other charges.""" def create( self, @@ -23,7 +22,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Refund]: + ) -> components.Refund: r"""Create a refund Creates a new refund object. @@ -67,6 +66,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.RefundRequestBody ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -80,37 +80,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateRefund", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/ \\\n-H "Authorization: ShippoToken " \\\n-d transaction="4503427478ea45a899e9b54abc4c5803"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.create(request=components.RefundRequestBody(\n async_=False,\n transaction='915d94940ea54c3a80cbfa328722f5a1',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.create({\n async: false,\n transaction: "915d94940ea54c3a80cbfa328722f5a1",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$refundRequestBody = new Components\\RefundRequestBody(\n async: false,\n transaction: '915d94940ea54c3a80cbfa328722f5a1',\n);\n\n$response = $sdk->refunds->create(\n refundRequestBody: $refundRequestBody,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->refund !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.CreateAsync(\n refundRequestBody: new RefundRequestBody() {\n Async = false,\n Transaction = "915d94940ea54c3a80cbfa328722f5a1",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.RefundRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateRefundResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateRefundResponse res = sdk.refunds().create()\n .shippoApiVersion("2018-02-08")\n .refundRequestBody(RefundRequestBody.builder()\n .transaction("915d94940ea54c3a80cbfa328722f5a1")\n .async(false)\n .build())\n .call();\n\n if (res.refund().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Refund]) + return unmarshal_json_response(components.Refund, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -122,7 +147,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Refund]: + ) -> components.Refund: r"""Create a refund Creates a new refund object. @@ -166,6 +191,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.RefundRequestBody ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -179,37 +205,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateRefund", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/ \\\n-H "Authorization: ShippoToken " \\\n-d transaction="4503427478ea45a899e9b54abc4c5803"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.create(request=components.RefundRequestBody(\n async_=False,\n transaction='915d94940ea54c3a80cbfa328722f5a1',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.create({\n async: false,\n transaction: "915d94940ea54c3a80cbfa328722f5a1",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$refundRequestBody = new Components\\RefundRequestBody(\n async: false,\n transaction: '915d94940ea54c3a80cbfa328722f5a1',\n);\n\n$response = $sdk->refunds->create(\n refundRequestBody: $refundRequestBody,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->refund !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.CreateAsync(\n refundRequestBody: new RefundRequestBody() {\n Async = false,\n Transaction = "915d94940ea54c3a80cbfa328722f5a1",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.RefundRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateRefundResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateRefundResponse res = sdk.refunds().create()\n .shippoApiVersion("2018-02-08")\n .refundRequestBody(RefundRequestBody.builder()\n .transaction("915d94940ea54c3a80cbfa328722f5a1")\n .async(false)\n .build())\n .call();\n\n if (res.refund().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Refund]) + return unmarshal_json_response(components.Refund, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def list( self, @@ -221,7 +272,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RefundPaginatedList]: + ) -> components.RefundPaginatedList: r"""List all refunds Returns a list all refund objects. @@ -262,6 +313,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -275,39 +327,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListRefunds", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.list(request=operations.ListRefundsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->refunds->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->refundPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListRefundsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListRefundsResponse res = sdk.refunds().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.refundPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RefundPaginatedList] - ) + return unmarshal_json_response(components.RefundPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -319,7 +394,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.RefundPaginatedList]: + ) -> components.RefundPaginatedList: r"""List all refunds Returns a list all refund objects. @@ -360,6 +435,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -373,39 +449,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListRefunds", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.list(request=operations.ListRefundsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->refunds->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->refundPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListRefundsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListRefundsResponse res = sdk.refunds().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.refundPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.RefundPaginatedList] - ) + return unmarshal_json_response(components.RefundPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -415,7 +514,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Refund]: + ) -> components.Refund: r"""Retrieve a refund Returns an existing rate using a rate object ID. @@ -456,6 +555,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -469,37 +569,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetRefund", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/d7c811cff9e24e4387418876f1ffd371 \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.get(refund_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->refunds->get(\n refundId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->refund !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.GetAsync(\n refundId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetRefundResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetRefundResponse res = sdk.refunds().get()\n .refundId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.refund().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Refund]) + return unmarshal_json_response(components.Refund, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -509,7 +634,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Refund]: + ) -> components.Refund: r"""Retrieve a refund Returns an existing rate using a rate object ID. @@ -550,6 +675,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -563,34 +689,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetRefund", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Refunds"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/refunds/d7c811cff9e24e4387418876f1ffd371 \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.refunds.get(refund_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.refunds.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->refunds->get(\n refundId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->refund !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Refunds.GetAsync(\n refundId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetRefundResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetRefundResponse res = sdk.refunds().get()\n .refundId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.refund().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Refund]) + return unmarshal_json_response(components.Refund, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/sdk.py b/src/shippo/sdk.py index 259c3955..09f61b26 100644 --- a/src/shippo/sdk.py +++ b/src/shippo/sdk.py @@ -6,190 +6,156 @@ from .utils.logger import Logger, get_default_logger from .utils.retries import RetryConfig import httpx +import importlib from shippo import utils from shippo._hooks import SDKHooks -from shippo.addresses import Addresses -from shippo.batches import Batches -from shippo.carrier_accounts import CarrierAccounts -from shippo.carrier_parcel_templates import CarrierParcelTemplates -from shippo.customs_declarations import CustomsDeclarations -from shippo.customs_items import CustomsItems -from shippo.manifests import Manifests from shippo.models import components, internal -from shippo.orders import Orders -from shippo.parcels import Parcels -from shippo.pickups import Pickups -from shippo.rates import Rates -from shippo.rates_at_checkout import RatesAtCheckout -from shippo.refunds import Refunds -from shippo.service_groups import ServiceGroups -from shippo.shipments import Shipments -from shippo.shippo_accounts import ShippoAccounts -from shippo.tracking_status import TrackingStatus -from shippo.transactions import Transactions from shippo.types import OptionalNullable, UNSET -from shippo.user_parcel_templates import UserParcelTemplates -from shippo.webhooks import Webhooks -from typing import Any, Callable, Dict, Optional, Union, cast +import sys +from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast import weakref +if TYPE_CHECKING: + from shippo.addresses import Addresses + from shippo.batches import Batches + from shippo.carrier_accounts import CarrierAccounts + from shippo.carrier_parcel_templates import CarrierParcelTemplates + from shippo.customs_declarations import CustomsDeclarations + from shippo.customs_items import CustomsItems + from shippo.manifests import Manifests + from shippo.orders import Orders + from shippo.parcels import Parcels + from shippo.pickups import Pickups + from shippo.rates import Rates + from shippo.rates_at_checkout import RatesAtCheckout + from shippo.refunds import Refunds + from shippo.service_groups import ServiceGroups + from shippo.shipments import Shipments + from shippo.shippo_accounts import ShippoAccounts + from shippo.tracking_status import TrackingStatus + from shippo.transactions import Transactions + from shippo.user_parcel_templates import UserParcelTemplates + from shippo.webhooks import Webhooks + class Shippo(BaseSDK): r"""Shippo external API.: Use this API to integrate with the Shippo service""" - addresses: Addresses - r"""Addresses are the locations a parcel is being shipped **from** and **to**. They represent company and residential places. Among other things, you can use address objects to create shipments, calculate shipping rates, and purchase shipping labels. - - """ - batches: Batches - r"""A batch is a technique for creating multiple labels at once. Use the batch object to create and purchase many shipments in two API calls. After creating the batch, retrieve the batch to verify that all shipments are valid. You can add and remove shipments after you have created the batch. When all shipments are valid you can purchase the batch and retrieve all the shipping labels. - - - # Batch Shipment - The batch shipment object is a wrapper around a shipment object, which include shipment-specific information - for batch processing. - - Note: batch shipments can only be created on the batch endpoint, either when creating a batch object or by through - the `/batches/{BATCH_OBJECT_ID}/add_shipments` endpoint - - """ - carrier_accounts: CarrierAccounts - r"""Carriers are the companies who deliver your package. Shippo uses Carrier account objects as credentials to retrieve shipping rates and purchase labels from shipping Carriers. - - - """ - customs_declarations: CustomsDeclarations + addresses: "Addresses" + r"""Addresses are the locations a parcel is being shipped **from** and **to**. They represent company and residential places. Among other things, you can use address objects to create shipments, calculate shipping rates, and purchase shipping labels.""" + batches: "Batches" + r"""A batch is a technique for creating multiple labels at once. Use the batch object to create and purchase many shipments in two API calls. After creating the batch, retrieve the batch to verify that all shipments are valid. You can add and remove shipments after you have created the batch. When all shipments are valid you can purchase the batch and retrieve all the shipping labels.""" + carrier_accounts: "CarrierAccounts" + r"""Carriers are the companies who deliver your package. Shippo uses Carrier account objects as credentials to retrieve shipping rates and purchase labels from shipping Carriers.""" + customs_declarations: "CustomsDeclarations" r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - - """ - customs_items: CustomsItems - r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments. - """ - rates_at_checkout: RatesAtCheckout + customs_items: "CustomsItems" + r"""Customs declarations are relevant information, including one or multiple customs items, you need to provide for customs clearance for your international shipments.""" + rates_at_checkout: "RatesAtCheckout" r"""Rates at checkout is a tool for merchants to display up-to-date shipping estimates based on what's in their customers cart and where they’re shipping to. Merchants set up curated shipping options for customers in the checkout flow based on data in the shopping cart. The request must include the **to** address and item information. Optional fields are the **from** address and package information. If the optional fields are not included, the service will use the default address and/or package configured for rates at checkout. The response is a list of shipping options based on the Service Group configuration. - (see Service Group configuration for details). - + (see [Service Group configuration](/shippoapi/public-api/service-groups) for details). + # Default Parcel Template Assign one of your user parcel templates to be the default used when generating Live Rates. This template will be used by default when generating Live Rates, unless you explicitly provide a parcel in the Live Rates request. - """ - manifests: Manifests + manifests: "Manifests" r"""A manifest is a single-page document with a barcode that carriers can scan to accept all packages into transit without the need to scan each item individually. They are close-outs of shipping labels of a certain day. Some carriers require manifests to process the shipments. - - - - # Manifest Errors - The following codes and messages are the possible errors that may occur when creating Manifests. - """ - orders: Orders + orders: "Orders" r"""An order is a request from a customer to purchase goods from a merchant. Use the orders object to load orders from your system to the Shippo dashboard. You can use the orders object to create, retrieve, list, and manage orders programmatically. You can also retrieve shipping rates, purchase labels, and track shipments for each order. - - - # Line Item -

-
Line Items, and their corresponding abstract Products and Variants, might be exposed as a separate resource - in the future. Currently it's a nested object within the order resource.

-

- A line item is an individual object in an order. For example, if your order contains a t-shirt, shorts, and a jacket, each item is represented by a line item. - - """ - carrier_parcel_templates: CarrierParcelTemplates - r"""A carrier parcel template represents a package used for shipping that has preset dimensions defined by a carrier. Some examples of a carrier parcel template include USPS Flat Rate Box and Fedex Small Pak. When using a carrier parcel template, the rates returned may be limited to the carrier that provides the box. You can create user parcel templates using a carrier parcel template. Shippo takes the dimensions of the carrier parcel template but you must configure the weight. - - - """ - parcels: Parcels - r"""A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates. - - - # Parcel Extras - The following values are supported for the `extra` field of the parcel object. - """ - pickups: Pickups + carrier_parcel_templates: "CarrierParcelTemplates" + r"""A carrier parcel template represents a package used for shipping that has preset dimensions defined by a carrier. Some examples of a carrier parcel template include USPS Flat Rate Box and Fedex Small Pak. When using a carrier parcel template, the rates returned may be limited to the carrier that provides the box. You can create user parcel templates using a carrier parcel template. Shippo takes the dimensions of the carrier parcel template but you must configure the weight.""" + parcels: "Parcels" + r"""A parcel is an item you are shipping. The parcel object includes details about its physical make-up of the parcel. It includes dimensions and weight that Shippo uses to calculate rates.""" + pickups: "Pickups" r"""A pickup is when you schedule a carrier to collect a package for delivery. Use Shippo’s pickups endpoint to schedule pickups with USPS and DHL Express for eligible shipments that you have already created. - - """ - rates: Rates - r"""A rate is the cost to ship a parcel from a carrier. The rate object details the service level including the cost and transit time. - """ - refunds: Refunds - r"""Refunds are reimbursements for successfully created but unused shipping labels or other charges. - - """ - service_groups: ServiceGroups + rates: "Rates" + r"""A rate is the cost to ship a parcel from a carrier. The rate object details the service level including the cost and transit time.""" + refunds: "Refunds" + r"""Refunds are reimbursements for successfully created but unused shipping labels or other charges.""" + service_groups: "ServiceGroups" r"""A service group is a set of service levels grouped together. Rates at checkout uses services groups to present available shipping options to customers in their shopping basket. - - """ - shipments: Shipments - r"""A shipment is the act of transporting goods. A shipment object contains **to** and **from** addresses, and the parcel details that you are shipping. You can use the shipment object to retrieve shipping rates and purchase a shipping label. - - - # Shipment Extras - The following values are supported for the `extra` field of the shipment object. - """ - tracking_status: TrackingStatus - r"""


+ shipments: "Shipments" + r"""A shipment is the act of transporting goods. A shipment object contains **to** and **from** addresses, and the parcel details that you are shipping. You can use the shipment object to retrieve shipping rates and purchase a shipping label.""" + tracking_status: "TrackingStatus" + r"""


If you purchased your shipping label through Shippo, you can also get all the tracking details of your Shipment - from the Transaction object. -

+ from the [Transaction](/shippoapi/public-api/transactions) object. +

A tracking status of a package is an indication of current location of a package in the supply chain. For example, sorting, warehousing, or out for delivery. Use the tracking status object to track the location of your shipments. - When using your Test token for tracking, you need to use Shippo's + When using your [Test](https://docs.goshippo.com/docs/guides_general/authentication/) token for tracking, you need to use Shippo's predefined tokens for testing different tracking statuses. You can find more information in our - Tracking tutorial on how to do this, and what the + [Tracking tutorial](https://docs.goshippo.com/docs/tracking/tracking/) on how to do this, and what the payloads look like. - - """ - transactions: Transactions - r"""A transaction is the purchase of a shipping label from a shipping provider for a specific service. You can print purchased labels and used them to ship a parcel with a carrier, such as USPS or FedEx. - """ - user_parcel_templates: UserParcelTemplates + transactions: "Transactions" + r"""A transaction is the purchase of a shipping label from a shipping provider for a specific service. You can print purchased labels and used them to ship a parcel with a carrier, such as USPS or FedEx.""" + user_parcel_templates: "UserParcelTemplates" r"""A user parcel template represents a package used for shipping that has preset dimensions and attributes defined by you. They are useful for capturing attributes of parcel-types you frequently use for shipping, allowing them to be defined once and then used for many shipments. These parcel templates can also be used for live rates. User parcel templates can also be created using a carrier parcel template, where the dimensions will be copied from the carrier presets, but the weight can be configured by you. - """ - shippo_accounts: ShippoAccounts + shippo_accounts: "ShippoAccounts" r"""Shippo Accounts are used by Shippo Platform Accounts to create and manage Managed Shippo Accounts. Managed Shippo Accounts are headless accounts that represent your customers. They are opaque to your end customers, meaning customers do not need to create their own Shippo login or have a billing relationship with Shippo. - They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our guide for more details. - - """ - webhooks: Webhooks - r"""Webhooks are a way for Shippo to notify your application when a specific event occurs. For example, when a label is purchased or when a shipment tracking status has changed. You can use webhooks to trigger actions in your application, such as sending an email or updating a database. - - - # Webhook Payload - The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration. - + They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our [guide](https://docs.goshippo.com/docs/platformaccounts/platform_accounts/) for more details. """ + webhooks: "Webhooks" + r"""Webhooks are a way for Shippo to notify your application when a specific event occurs. For example, when a label is purchased or when a shipment tracking status has changed. You can use webhooks to trigger actions in your application, such as sending an email or updating a database.""" + _sub_sdk_map = { + "addresses": ("shippo.addresses", "Addresses"), + "batches": ("shippo.batches", "Batches"), + "carrier_accounts": ("shippo.carrier_accounts", "CarrierAccounts"), + "customs_declarations": ("shippo.customs_declarations", "CustomsDeclarations"), + "customs_items": ("shippo.customs_items", "CustomsItems"), + "rates_at_checkout": ("shippo.rates_at_checkout", "RatesAtCheckout"), + "manifests": ("shippo.manifests", "Manifests"), + "orders": ("shippo.orders", "Orders"), + "carrier_parcel_templates": ( + "shippo.carrier_parcel_templates", + "CarrierParcelTemplates", + ), + "parcels": ("shippo.parcels", "Parcels"), + "pickups": ("shippo.pickups", "Pickups"), + "rates": ("shippo.rates", "Rates"), + "refunds": ("shippo.refunds", "Refunds"), + "service_groups": ("shippo.service_groups", "ServiceGroups"), + "shipments": ("shippo.shipments", "Shipments"), + "tracking_status": ("shippo.tracking_status", "TrackingStatus"), + "transactions": ("shippo.transactions", "Transactions"), + "user_parcel_templates": ( + "shippo.user_parcel_templates", + "UserParcelTemplates", + ), + "shippo_accounts": ("shippo.shippo_accounts", "ShippoAccounts"), + "webhooks": ("shippo.webhooks", "Webhooks"), + } def __init__( self, api_key_header: Union[str, Callable[[], str]], shippo_api_version: Optional[str] = None, server_idx: Optional[int] = None, - server_url: Optional[str] = None, url_params: Optional[Dict[str, str]] = None, + server_url: Optional[str] = None, client: Optional[HttpClient] = None, async_client: Optional[AsyncHttpClient] = None, retry_config: OptionalNullable[RetryConfig] = UNSET, @@ -210,7 +176,7 @@ def __init__( """ client_supplied = True if client is None: - client = httpx.Client() + client = httpx.Client(follow_redirects=True) client_supplied = False assert issubclass( @@ -219,7 +185,7 @@ def __init__( async_client_supplied = True if async_client is None: - async_client = httpx.AsyncClient() + async_client = httpx.AsyncClient(follow_redirects=True) async_client_supplied = False if debug_logger is None: @@ -230,7 +196,9 @@ def __init__( ), "The provided async_client must implement the AsyncHttpClient protocol." security: Any = None - if callable(api_key_header): + if api_key_header is None: + security = None + elif callable(api_key_header): # pylint: disable=unnecessary-lambda-assignment security = lambda: components.Security(api_key_header=api_key_header()) else: @@ -261,10 +229,14 @@ def __init__( timeout_ms=timeout_ms, debug_logger=debug_logger, ), + parent_ref=self, ) hooks = SDKHooks() + # pylint: disable=protected-access + self.sdk_configuration.__dict__["_hooks"] = hooks + current_server_url, *_ = self.sdk_configuration.get_server_details() server_url, self.sdk_configuration.client = hooks.sdk_init( current_server_url, client @@ -272,9 +244,6 @@ def __init__( if current_server_url != server_url: self.sdk_configuration.server_url = server_url - # pylint: disable=protected-access - self.sdk_configuration.__dict__["_hooks"] = hooks - weakref.finalize( self, close_clients, @@ -285,29 +254,43 @@ def __init__( self.sdk_configuration.async_client_supplied, ) - self._init_sdks() - - def _init_sdks(self): - self.addresses = Addresses(self.sdk_configuration) - self.batches = Batches(self.sdk_configuration) - self.carrier_accounts = CarrierAccounts(self.sdk_configuration) - self.customs_declarations = CustomsDeclarations(self.sdk_configuration) - self.customs_items = CustomsItems(self.sdk_configuration) - self.rates_at_checkout = RatesAtCheckout(self.sdk_configuration) - self.manifests = Manifests(self.sdk_configuration) - self.orders = Orders(self.sdk_configuration) - self.carrier_parcel_templates = CarrierParcelTemplates(self.sdk_configuration) - self.parcels = Parcels(self.sdk_configuration) - self.pickups = Pickups(self.sdk_configuration) - self.rates = Rates(self.sdk_configuration) - self.refunds = Refunds(self.sdk_configuration) - self.service_groups = ServiceGroups(self.sdk_configuration) - self.shipments = Shipments(self.sdk_configuration) - self.tracking_status = TrackingStatus(self.sdk_configuration) - self.transactions = Transactions(self.sdk_configuration) - self.user_parcel_templates = UserParcelTemplates(self.sdk_configuration) - self.shippo_accounts = ShippoAccounts(self.sdk_configuration) - self.webhooks = Webhooks(self.sdk_configuration) + def dynamic_import(self, modname, retries=3): + for attempt in range(retries): + try: + return importlib.import_module(modname) + except KeyError: + # Clear any half-initialized module and retry + sys.modules.pop(modname, None) + if attempt == retries - 1: + break + raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") + + def __getattr__(self, name: str): + if name in self._sub_sdk_map: + module_path, class_name = self._sub_sdk_map[name] + try: + module = self.dynamic_import(module_path) + klass = getattr(module, class_name) + instance = klass(self.sdk_configuration, parent_ref=self) + setattr(self, name, instance) + return instance + except ImportError as e: + raise AttributeError( + f"Failed to import module {module_path} for attribute {name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to find class {class_name} in module {module_path} for attribute {name}: {e}" + ) from e + + raise AttributeError( + f"'{type(self).__name__}' object has no attribute '{name}'" + ) + + def __dir__(self): + default_attrs = list(super().__dir__()) + lazy_attrs = list(self._sub_sdk_map.keys()) + return sorted(list(set(default_attrs + lazy_attrs))) def __enter__(self): return self diff --git a/src/shippo/sdkconfiguration.py b/src/shippo/sdkconfiguration.py index 9fc0d400..a8bca348 100644 --- a/src/shippo/sdkconfiguration.py +++ b/src/shippo/sdkconfiguration.py @@ -1,6 +1,5 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from ._hooks import SDKHooks from ._version import ( __gen_version__, __openapi_doc_version__, @@ -43,9 +42,6 @@ class SDKConfiguration: retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET) timeout_ms: Optional[int] = None - def __post_init__(self): - self._hooks = SDKHooks() - def get_server_details(self) -> Tuple[str, Dict[str, str]]: if self.server_url is not None and self.server_url: return remove_suffix(self.server_url, "/"), {} @@ -53,6 +49,3 @@ def get_server_details(self) -> Tuple[str, Dict[str, str]]: self.server_idx = 0 return SERVERS[self.server_idx], {} - - def get_hooks(self) -> SDKHooks: - return self._hooks diff --git a/src/shippo/service_groups.py b/src/shippo/service_groups.py index 95e3e885..f8715385 100644 --- a/src/shippo/service_groups.py +++ b/src/shippo/service_groups.py @@ -5,13 +5,13 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import List, Mapping, Optional, Union, cast class ServiceGroups(BaseSDK): r"""A service group is a set of service levels grouped together. Rates at checkout uses services groups to present available shipping options to customers in their shopping basket. - """ def list( @@ -25,7 +25,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[List[components.ServiceGroup]]: + ) -> List[components.ServiceGroup]: r"""List all service groups Returns a list of service group objects. @@ -66,6 +66,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -79,39 +80,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListServiceGroups", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/service-groups \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.list(request=operations.ListServiceGroupsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->serviceGroups->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->serviceGroupListResponse !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListServiceGroupsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListServiceGroupsResponse res = sdk.serviceGroups().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.serviceGroupListResponse().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[List[components.ServiceGroup]] - ) + return unmarshal_json_response(List[components.ServiceGroup], http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -124,7 +148,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[List[components.ServiceGroup]]: + ) -> List[components.ServiceGroup]: r"""List all service groups Returns a list of service group objects. @@ -165,6 +189,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -178,39 +203,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListServiceGroups", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/service-groups \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.list(request=operations.ListServiceGroupsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->serviceGroups->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->serviceGroupListResponse !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListServiceGroupsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListServiceGroupsResponse res = sdk.serviceGroups().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.serviceGroupListResponse().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[List[components.ServiceGroup]] - ) + return unmarshal_json_response(List[components.ServiceGroup], http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -223,7 +271,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ServiceGroup]: + ) -> components.ServiceGroup: r"""Create a new service group Creates a new service group. @@ -267,6 +315,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ServiceGroupCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -280,39 +329,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/service-groups \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "name": "UPS shipping",\n "description": "UPS shipping options",\n "flat_rate": "5",\n "flat_rate_currency": "USD",\n "type": "LIVE_RATE",\n "rate_adjustment": 15,\n "service_levels": [\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_next_day_air_saver"\n },\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_ground"\n }\n ]\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.create(request=components.ServiceGroupCreateRequest(\n description='USPS shipping options',\n flat_rate='5',\n flat_rate_currency='USD',\n free_shipping_threshold_currency='USD',\n free_shipping_threshold_min='5',\n name='USPS Shipping',\n rate_adjustment=15,\n type=components.ServiceGroupTypeEnum.FLAT_RATE,\n service_levels=[\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.create({\n description: "USPS shipping options",\n flatRate: "5",\n flatRateCurrency: "USD",\n freeShippingThresholdCurrency: "USD",\n freeShippingThresholdMin: "5",\n name: "USPS Shipping",\n rateAdjustment: 15,\n type: "FLAT_RATE",\n serviceLevels: [\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.CreateAsync(\n serviceGroupCreateRequest: new ServiceGroupCreateRequest() {\n Description = "USPS shipping options",\n FlatRate = "5",\n FlatRateCurrency = "USD",\n FreeShippingThresholdCurrency = "USD",\n FreeShippingThresholdMin = "5",\n Name = "USPS Shipping",\n RateAdjustment = 15,\n Type = ServiceGroupTypeEnum.FlatRate,\n ServiceLevels = new List() {\n new ServiceGroupAccountAndServiceLevel() {\n AccountObjectId = "80feb1633d4a43c898f0058506cfd82d",\n ServiceLevelToken = "ups_next_day_air_saver",\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$serviceGroupCreateRequest = new Components\\ServiceGroupCreateRequest(\n description: 'USPS shipping options',\n flatRate: '5',\n flatRateCurrency: 'USD',\n freeShippingThresholdCurrency: 'USD',\n freeShippingThresholdMin: '5',\n name: 'USPS Shipping',\n rateAdjustment: 15,\n type: Components\\ServiceGroupTypeEnum::FlatRate,\n serviceLevels: [\n new Components\\ServiceGroupAccountAndServiceLevel(\n accountObjectId: '80feb1633d4a43c898f0058506cfd82d',\n serviceLevelToken: 'ups_next_day_air_saver',\n ),\n ],\n);\n\n$response = $sdk->serviceGroups->create(\n serviceGroupCreateRequest: $serviceGroupCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->serviceGroup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupAccountAndServiceLevel;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupTypeEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateServiceGroupResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateServiceGroupResponse res = sdk.serviceGroups().create()\n .shippoApiVersion("2018-02-08")\n .serviceGroupCreateRequest(ServiceGroupCreateRequest.builder()\n .description("USPS shipping options")\n .name("USPS Shipping")\n .type(ServiceGroupTypeEnum.FLAT_RATE)\n .serviceLevels(List.of(\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build()))\n .flatRate("5")\n .flatRateCurrency("USD")\n .freeShippingThresholdCurrency("USD")\n .freeShippingThresholdMin("5")\n .rateAdjustment(15L)\n .build())\n .call();\n\n if (res.serviceGroup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ServiceGroup] - ) + return unmarshal_json_response(components.ServiceGroup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -325,7 +397,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ServiceGroup]: + ) -> components.ServiceGroup: r"""Create a new service group Creates a new service group. @@ -369,6 +441,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ServiceGroupCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -382,39 +455,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/service-groups \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "name": "UPS shipping",\n "description": "UPS shipping options",\n "flat_rate": "5",\n "flat_rate_currency": "USD",\n "type": "LIVE_RATE",\n "rate_adjustment": 15,\n "service_levels": [\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_next_day_air_saver"\n },\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_ground"\n }\n ]\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.create(request=components.ServiceGroupCreateRequest(\n description='USPS shipping options',\n flat_rate='5',\n flat_rate_currency='USD',\n free_shipping_threshold_currency='USD',\n free_shipping_threshold_min='5',\n name='USPS Shipping',\n rate_adjustment=15,\n type=components.ServiceGroupTypeEnum.FLAT_RATE,\n service_levels=[\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.create({\n description: "USPS shipping options",\n flatRate: "5",\n flatRateCurrency: "USD",\n freeShippingThresholdCurrency: "USD",\n freeShippingThresholdMin: "5",\n name: "USPS Shipping",\n rateAdjustment: 15,\n type: "FLAT_RATE",\n serviceLevels: [\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.CreateAsync(\n serviceGroupCreateRequest: new ServiceGroupCreateRequest() {\n Description = "USPS shipping options",\n FlatRate = "5",\n FlatRateCurrency = "USD",\n FreeShippingThresholdCurrency = "USD",\n FreeShippingThresholdMin = "5",\n Name = "USPS Shipping",\n RateAdjustment = 15,\n Type = ServiceGroupTypeEnum.FlatRate,\n ServiceLevels = new List() {\n new ServiceGroupAccountAndServiceLevel() {\n AccountObjectId = "80feb1633d4a43c898f0058506cfd82d",\n ServiceLevelToken = "ups_next_day_air_saver",\n },\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$serviceGroupCreateRequest = new Components\\ServiceGroupCreateRequest(\n description: 'USPS shipping options',\n flatRate: '5',\n flatRateCurrency: 'USD',\n freeShippingThresholdCurrency: 'USD',\n freeShippingThresholdMin: '5',\n name: 'USPS Shipping',\n rateAdjustment: 15,\n type: Components\\ServiceGroupTypeEnum::FlatRate,\n serviceLevels: [\n new Components\\ServiceGroupAccountAndServiceLevel(\n accountObjectId: '80feb1633d4a43c898f0058506cfd82d',\n serviceLevelToken: 'ups_next_day_air_saver',\n ),\n ],\n);\n\n$response = $sdk->serviceGroups->create(\n serviceGroupCreateRequest: $serviceGroupCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->serviceGroup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupAccountAndServiceLevel;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupTypeEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateServiceGroupResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateServiceGroupResponse res = sdk.serviceGroups().create()\n .shippoApiVersion("2018-02-08")\n .serviceGroupCreateRequest(ServiceGroupCreateRequest.builder()\n .description("USPS shipping options")\n .name("USPS Shipping")\n .type(ServiceGroupTypeEnum.FLAT_RATE)\n .serviceLevels(List.of(\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build()))\n .flatRate("5")\n .flatRateCurrency("USD")\n .freeShippingThresholdCurrency("USD")\n .freeShippingThresholdMin("5")\n .rateAdjustment(15L)\n .build())\n .call();\n\n if (res.serviceGroup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ServiceGroup] - ) + return unmarshal_json_response(components.ServiceGroup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def update( self, @@ -429,10 +525,10 @@ def update( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ServiceGroup]: + ) -> components.ServiceGroup: r"""Update an existing service group - Updates an existing service group object.
The object_id cannot be updated as it is the unique identifier for the object. + Updates an existing service group object. The object_id cannot be updated as it is the unique identifier for the object. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -479,6 +575,7 @@ def update( "json", Optional[components.ServiceGroupUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -492,39 +589,62 @@ def update( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X PUT https://api.goshippo.com/service-groups \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "object_id": "7552000a5f71473c9378e98fc7322c99",\n "name": "UPS shipping",\n "description": "UPS shipping options, updated",\n "flat_rate": "20",\n "flat_rate_currency": "USD",\n "type": "LIVE_RATE",\n "rate_adjustment": 15,\n "service_levels": [\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_next_day_air_saver"\n },\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_ground"\n }\n ]\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.update(request=components.ServiceGroupUpdateRequest(\n description='USPS shipping options',\n flat_rate='5',\n flat_rate_currency='USD',\n free_shipping_threshold_currency='USD',\n free_shipping_threshold_min='5',\n name='USPS Shipping',\n rate_adjustment=15,\n type=components.ServiceGroupTypeEnum.FLAT_RATE,\n object_id='80feb1633d4a43c898f005850',\n is_active=True,\n service_levels=[\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.update({\n description: "USPS shipping options",\n flatRate: "5",\n flatRateCurrency: "USD",\n freeShippingThresholdCurrency: "USD",\n freeShippingThresholdMin: "5",\n name: "USPS Shipping",\n rateAdjustment: 15,\n type: "FLAT_RATE",\n objectId: "80feb1633d4a43c898f005850",\n isActive: true,\n serviceLevels: [\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.UpdateAsync(\n shippoApiVersion: "2018-02-08",\n serviceGroupUpdateRequest: new ServiceGroupUpdateRequest() {\n Description = "USPS shipping options",\n FlatRate = "5",\n FlatRateCurrency = "USD",\n FreeShippingThresholdCurrency = "USD",\n FreeShippingThresholdMin = "5",\n Name = "USPS Shipping",\n RateAdjustment = 15,\n Type = ServiceGroupTypeEnum.FlatRate,\n ObjectId = "80feb1633d4a43c898f005850",\n IsActive = true,\n ServiceLevels = new List() {\n new ServiceGroupAccountAndServiceLevel() {\n AccountObjectId = "80feb1633d4a43c898f0058506cfd82d",\n ServiceLevelToken = "ups_next_day_air_saver",\n },\n },\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$serviceGroupUpdateRequest = new Components\\ServiceGroupUpdateRequest(\n description: 'USPS shipping options',\n flatRate: '5',\n flatRateCurrency: 'USD',\n freeShippingThresholdCurrency: 'USD',\n freeShippingThresholdMin: '5',\n name: 'USPS Shipping',\n rateAdjustment: 15,\n type: Components\\ServiceGroupTypeEnum::FlatRate,\n objectId: '80feb1633d4a43c898f005850',\n isActive: true,\n serviceLevels: [\n new Components\\ServiceGroupAccountAndServiceLevel(\n accountObjectId: '80feb1633d4a43c898f0058506cfd82d',\n serviceLevelToken: 'ups_next_day_air_saver',\n ),\n ],\n);\n\n$response = $sdk->serviceGroups->update(\n shippoApiVersion: '2018-02-08',\n serviceGroupUpdateRequest: $serviceGroupUpdateRequest\n\n);\n\nif ($response->serviceGroup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupAccountAndServiceLevel;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateServiceGroupResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateServiceGroupResponse res = sdk.serviceGroups().update()\n .shippoApiVersion("2018-02-08")\n .serviceGroupUpdateRequest(ServiceGroupUpdateRequest.builder()\n .description("USPS shipping options")\n .name("USPS Shipping")\n .type(ServiceGroupTypeEnum.FLAT_RATE)\n .objectId("80feb1633d4a43c898f005850")\n .isActive(true)\n .serviceLevels(List.of(\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build(),\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build(),\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build()))\n .flatRate("5")\n .flatRateCurrency("USD")\n .freeShippingThresholdCurrency("USD")\n .freeShippingThresholdMin("5")\n .rateAdjustment(15L)\n .build())\n .call();\n\n if (res.serviceGroup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ServiceGroup] - ) + return unmarshal_json_response(components.ServiceGroup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def update_async( self, @@ -539,10 +659,10 @@ async def update_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ServiceGroup]: + ) -> components.ServiceGroup: r"""Update an existing service group - Updates an existing service group object.
The object_id cannot be updated as it is the unique identifier for the object. + Updates an existing service group object. The object_id cannot be updated as it is the unique identifier for the object. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -589,6 +709,7 @@ async def update_async( "json", Optional[components.ServiceGroupUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -602,39 +723,62 @@ async def update_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X PUT https://api.goshippo.com/service-groups \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json" \\\n-d \'{\n "object_id": "7552000a5f71473c9378e98fc7322c99",\n "name": "UPS shipping",\n "description": "UPS shipping options, updated",\n "flat_rate": "20",\n "flat_rate_currency": "USD",\n "type": "LIVE_RATE",\n "rate_adjustment": 15,\n "service_levels": [\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_next_day_air_saver"\n },\n {\n "account_object_id": "80feb1633d4a43c898f0058506cfd82d",\n "service_level_token": "ups_ground"\n }\n ]\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.service_groups.update(request=components.ServiceGroupUpdateRequest(\n description='USPS shipping options',\n flat_rate='5',\n flat_rate_currency='USD',\n free_shipping_threshold_currency='USD',\n free_shipping_threshold_min='5',\n name='USPS Shipping',\n rate_adjustment=15,\n type=components.ServiceGroupTypeEnum.FLAT_RATE,\n object_id='80feb1633d4a43c898f005850',\n is_active=True,\n service_levels=[\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n components.ServiceGroupAccountAndServiceLevel(\n account_object_id='80feb1633d4a43c898f0058506cfd82d',\n service_level_token='ups_next_day_air_saver',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.serviceGroups.update({\n description: "USPS shipping options",\n flatRate: "5",\n flatRateCurrency: "USD",\n freeShippingThresholdCurrency: "USD",\n freeShippingThresholdMin: "5",\n name: "USPS Shipping",\n rateAdjustment: 15,\n type: "FLAT_RATE",\n objectId: "80feb1633d4a43c898f005850",\n isActive: true,\n serviceLevels: [\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n {\n accountObjectId: "80feb1633d4a43c898f0058506cfd82d",\n serviceLevelToken: "ups_next_day_air_saver",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ServiceGroups.UpdateAsync(\n shippoApiVersion: "2018-02-08",\n serviceGroupUpdateRequest: new ServiceGroupUpdateRequest() {\n Description = "USPS shipping options",\n FlatRate = "5",\n FlatRateCurrency = "USD",\n FreeShippingThresholdCurrency = "USD",\n FreeShippingThresholdMin = "5",\n Name = "USPS Shipping",\n RateAdjustment = 15,\n Type = ServiceGroupTypeEnum.FlatRate,\n ObjectId = "80feb1633d4a43c898f005850",\n IsActive = true,\n ServiceLevels = new List() {\n new ServiceGroupAccountAndServiceLevel() {\n AccountObjectId = "80feb1633d4a43c898f0058506cfd82d",\n ServiceLevelToken = "ups_next_day_air_saver",\n },\n },\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$serviceGroupUpdateRequest = new Components\\ServiceGroupUpdateRequest(\n description: 'USPS shipping options',\n flatRate: '5',\n flatRateCurrency: 'USD',\n freeShippingThresholdCurrency: 'USD',\n freeShippingThresholdMin: '5',\n name: 'USPS Shipping',\n rateAdjustment: 15,\n type: Components\\ServiceGroupTypeEnum::FlatRate,\n objectId: '80feb1633d4a43c898f005850',\n isActive: true,\n serviceLevels: [\n new Components\\ServiceGroupAccountAndServiceLevel(\n accountObjectId: '80feb1633d4a43c898f0058506cfd82d',\n serviceLevelToken: 'ups_next_day_air_saver',\n ),\n ],\n);\n\n$response = $sdk->serviceGroups->update(\n shippoApiVersion: '2018-02-08',\n serviceGroupUpdateRequest: $serviceGroupUpdateRequest\n\n);\n\nif ($response->serviceGroup !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupAccountAndServiceLevel;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.ServiceGroupUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateServiceGroupResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateServiceGroupResponse res = sdk.serviceGroups().update()\n .shippoApiVersion("2018-02-08")\n .serviceGroupUpdateRequest(ServiceGroupUpdateRequest.builder()\n .description("USPS shipping options")\n .name("USPS Shipping")\n .type(ServiceGroupTypeEnum.FLAT_RATE)\n .objectId("80feb1633d4a43c898f005850")\n .isActive(true)\n .serviceLevels(List.of(\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build(),\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build(),\n ServiceGroupAccountAndServiceLevel.builder()\n .accountObjectId("80feb1633d4a43c898f0058506cfd82d")\n .serviceLevelToken("ups_next_day_air_saver")\n .build()))\n .flatRate("5")\n .flatRateCurrency("USD")\n .freeShippingThresholdCurrency("USD")\n .freeShippingThresholdMin("5")\n .rateAdjustment(15L)\n .build())\n .call();\n\n if (res.serviceGroup().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ServiceGroup] - ) + return unmarshal_json_response(components.ServiceGroup, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def delete( self, @@ -685,6 +829,7 @@ def delete( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -698,13 +843,49 @@ def delete( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -x DELETE https://api.goshippo.com/service-groups/80feb1633d4a43c898f0058506cfd82d \\\n-H "Authorization: ShippoToken " \\', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.service_groups.delete(service_group_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.serviceGroups.delete("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.ServiceGroups.DeleteAsync(\n serviceGroupId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->serviceGroups->delete(\n serviceGroupId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteServiceGroupResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteServiceGroupResponse res = sdk.serviceGroups().delete()\n .serviceGroupId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -712,23 +893,12 @@ def delete( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def delete_async( self, @@ -779,6 +949,7 @@ async def delete_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -792,13 +963,49 @@ async def delete_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteServiceGroup", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Service Groups"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -x DELETE https://api.goshippo.com/service-groups/80feb1633d4a43c898f0058506cfd82d \\\n-H "Authorization: ShippoToken " \\', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.service_groups.delete(service_group_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.serviceGroups.delete("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.ServiceGroups.DeleteAsync(\n serviceGroupId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->serviceGroups->delete(\n serviceGroupId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteServiceGroupResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteServiceGroupResponse res = sdk.serviceGroups().delete()\n .serviceGroupId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -806,20 +1013,9 @@ async def delete_async( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/shipments.py b/src/shippo/shipments.py index 183a3d2c..64031fc4 100644 --- a/src/shippo/shipments.py +++ b/src/shippo/shipments.py @@ -5,17 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Shipments(BaseSDK): - r"""A shipment is the act of transporting goods. A shipment object contains **to** and **from** addresses, and the parcel details that you are shipping. You can use the shipment object to retrieve shipping rates and purchase a shipping label. - - - # Shipment Extras - The following values are supported for the `extra` field of the shipment object. - - """ + r"""A shipment is the act of transporting goods. A shipment object contains **to** and **from** addresses, and the parcel details that you are shipping. You can use the shipment object to retrieve shipping rates and purchase a shipping label.""" def list( self, @@ -27,27 +22,23 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShipmentPaginatedList]: + ) -> components.ShipmentPaginatedList: r"""List all shipments - Returns a list of all shipment objects.

- In order to filter results, you must use the below path parameters. - A maximum date range of 90 days is permitted. - Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported).

+ Returns a list of all shipment objects. + + To filter results, use the optional query parameters below. Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported). + + - `object_created_gt`: object(s) created after the provided date time + - `object_created_gte`: object(s) created at or after the provided date time + - `object_created_lt`: object(s) created before the provided date time + - `object_created_lte`: object(s) created at or before the provided date time - Optional path parameters:
- `object_created_gt`- object(s) created greater than a provided date time
- `object_created_gte` - object(s) created greater than or equal to a provided date time
- `object_created_lt` - object(s) created less than a provided date time
- `object_created_lte` - object(s) created less than or equal to a provided date time
+ Date format examples: `2017-01-01`, `2017-01-01T03:30:30` (or `2017-01-01T03:30:30.5`), `2017-01-01T03:30:30Z` - Date format examples:
- `2017-01-01`
- `2017-01-01T03:30:30` or `2017-01-01T03:30:30.5`
- `2017-01-01T03:30:30Z`

+ Example URL: `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` - Example URL:
- `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` + Note: Shipment objects older than 390 days are not returned. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -85,6 +76,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -98,39 +90,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipments", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.list(request=operations.ListShipmentsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentsRequest();\n\n$response = $sdk->shipments->list(\n request: $request\n);\n\nif ($response->shipmentPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentsRequest req = new ListShipmentsRequest() {};\n\nvar res = await sdk.Shipments.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentsRequest req = ListShipmentsRequest.builder()\n .build();\n\n ListShipmentsResponse res = sdk.shipments().list()\n .request(req)\n .call();\n\n if (res.shipmentPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShipmentPaginatedList] - ) + return unmarshal_json_response(components.ShipmentPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -142,27 +157,23 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShipmentPaginatedList]: + ) -> components.ShipmentPaginatedList: r"""List all shipments - Returns a list of all shipment objects.

- In order to filter results, you must use the below path parameters. - A maximum date range of 90 days is permitted. - Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported).

+ Returns a list of all shipment objects. - Optional path parameters:
- `object_created_gt`- object(s) created greater than a provided date time
- `object_created_gte` - object(s) created greater than or equal to a provided date time
- `object_created_lt` - object(s) created less than a provided date time
- `object_created_lte` - object(s) created less than or equal to a provided date time
+ To filter results, use the optional query parameters below. Provided dates should be ISO 8601 UTC dates (timezone offsets are currently not supported). - Date format examples:
- `2017-01-01`
- `2017-01-01T03:30:30` or `2017-01-01T03:30:30.5`
- `2017-01-01T03:30:30Z`

+ - `object_created_gt`: object(s) created after the provided date time + - `object_created_gte`: object(s) created at or after the provided date time + - `object_created_lt`: object(s) created before the provided date time + - `object_created_lte`: object(s) created at or before the provided date time - Example URL:
- `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` + Date format examples: `2017-01-01`, `2017-01-01T03:30:30` (or `2017-01-01T03:30:30.5`), `2017-01-01T03:30:30Z` + + Example URL: `https://api.goshippo.com/shipments/?object_created_gte=2017-01-01T00:00:30&object_created_lt=2017-04-01T00:00:30` + + Note: Shipment objects older than 390 days are not returned. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -200,6 +211,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -213,39 +225,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShipments", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.list(request=operations.ListShipmentsRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListShipmentsRequest();\n\n$response = $sdk->shipments->list(\n request: $request\n);\n\nif ($response->shipmentPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListShipmentsRequest req = new ListShipmentsRequest() {};\n\nvar res = await sdk.Shipments.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListShipmentsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShipmentsRequest req = ListShipmentsRequest.builder()\n .build();\n\n ListShipmentsResponse res = sdk.shipments().list()\n .request(req)\n .call();\n\n if (res.shipmentPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShipmentPaginatedList] - ) + return unmarshal_json_response(components.ShipmentPaginatedList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -257,7 +292,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Shipment]: + ) -> components.Shipment: r"""Create a new shipment Creates a new shipment object. @@ -301,6 +336,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ShipmentCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -314,37 +350,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateShipment", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/ \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json" \\\n -d $\'{\n "address_to": {\n "name": "Mr Hippo",\n "street1": "965 Mission St #572",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_from": {\n "name": "Mrs Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4159876543",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "10",\n "width": "15",\n "height": "10",\n "distance_unit": "in",\n "weight": "1",\n "mass_unit": "lb"\n }],\n "async": false\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.create(request=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return='d799c2679e644279b59fe661ac8fa488',\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.create({\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: "d799c2679e644279b59fe661ac8fa488",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shipmentCreateRequest = new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressReturn: 'd799c2679e644279b59fe661ac8fa488',\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n ),\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n ],\n);\n\n$response = $sdk->shipments->create(\n shipmentCreateRequest: $shipmentCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shipment !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Shipments.CreateAsync(\n shipmentCreateRequest: new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressReturn = AddressReturn.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateCustomsDeclarationCreateRequest(\n new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n }\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateShipmentResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateShipmentResponse res = sdk.shipments().create()\n .shippoApiVersion("2018-02-08")\n .shipmentCreateRequest(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(""),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of("d799c2679e644279b59fe661ac8fa488"))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .call();\n\n if (res.shipment().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Shipment]) + return unmarshal_json_response(components.Shipment, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -356,7 +417,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Shipment]: + ) -> components.Shipment: r"""Create a new shipment Creates a new shipment object. @@ -400,6 +461,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ShipmentCreateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -413,37 +475,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateShipment", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/ \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json" \\\n -d $\'{\n "address_to": {\n "name": "Mr Hippo",\n "street1": "965 Mission St #572",\n "city": "San Francisco",\n "state": "CA",\n "zip": "94103",\n "country": "US",\n "phone": "4151234567",\n "email": "mrhippo@shippo.com"\n },\n "address_from": {\n "name": "Mrs Hippo",\n "street1": "1092 Indian Summer Ct",\n "city": "San Jose",\n "state": "CA",\n "zip": "95122",\n "country": "US",\n "phone": "4159876543",\n "email": "mrshippo@shippo.com"\n },\n "parcels": [{\n "length": "10",\n "width": "15",\n "height": "10",\n "distance_unit": "in",\n "weight": "1",\n "mass_unit": "lb"\n }],\n "async": false\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.create(request=components.ShipmentCreateRequest(\n extra=components.ShipmentExtra(\n accounts_receivable_customer_account=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n appropriation_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n bill_of_lading_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n cod_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n customer_reference=components.CustomerReference(\n ref_sort=1,\n ),\n dealer_order_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n dept_number=components.DepartmentNumber(\n ref_sort=3,\n ),\n fda_product_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n insurance=components.Insurance(\n amount='5.5',\n currency='USD',\n ),\n invoice_number=components.InvoiceNumber(\n ref_sort=2,\n ),\n manifest_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n model_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n part_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n po_number=components.PoNumber(\n ref_sort=2,\n ),\n production_code=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n purchase_request_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n rma_number=components.RmaNumber(\n ref_sort=1,\n ),\n salesperson_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n serial_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n store_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n transaction_reference_number=components.UPSReferenceFields(\n prefix='ABC',\n value='value',\n ref_sort=1,\n ),\n ),\n metadata='Customer ID 123456',\n shipment_date='2021-03-22T12:00:00Z',\n address_from=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n address_return='d799c2679e644279b59fe661ac8fa488',\n address_to=components.AddressCreateRequest(\n name='Shwan Ippotle',\n company='Shippo',\n street1='215 Clayton St.',\n street3='',\n street_no='',\n city='San Francisco',\n state='CA',\n zip='94117',\n country='US',\n phone='+1 555 341 9393',\n email='shippotle@shippo.com',\n is_residential=True,\n metadata='Customer ID 123456',\n validate=True,\n ),\n customs_declaration=components.CustomsDeclarationCreateRequest(\n b13a_filing_option=components.CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY,\n certify=True,\n certify_signer='Shawn Ippotle',\n contents_explanation='T-Shirt purchase',\n duties_payor=components.DutiesPayor(\n account='2323434543',\n type=components.CustomsDeclarationCreateRequestType.THIRD_PARTY,\n address=components.CustomsDeclarationCreateRequestAddress(\n name='Patrick Kavanagh',\n zip='80331',\n country='DE',\n ),\n ),\n exporter_identification=components.CustomsExporterIdentification(\n eori_number='PL123456790ABCDE',\n tax_id=components.CustomsTaxIdentification(\n number='123456789',\n type=components.CustomsTaxIdentificationType.EIN,\n ),\n ),\n invoice='#123123',\n metadata='Order ID #123123',\n address_importer=components.AddressImporter(\n name='Shwan Ippotle',\n company='Shippo',\n street1='Blumenstraße',\n street3='',\n street_no='22',\n city='München',\n state='CA',\n zip='80331',\n country='DE',\n phone='80331',\n email='shippotle@shippo.com',\n is_residential=True,\n ),\n contents_type=components.CustomsDeclarationContentsTypeEnum.MERCHANDISE,\n eel_pfc=components.CustomsDeclarationEelPfcEnum.NOEEI_30_37_A,\n incoterm=components.CustomsDeclarationIncotermEnum.DDP,\n items=[\n components.CustomsItemCreateRequest(\n description='T-Shirt',\n mass_unit=components.WeightUnitEnum.LB,\n metadata='Order ID \"123454\"',\n net_weight='5',\n origin_country='',\n quantity=20,\n sku_code='HM-123',\n hs_code='0901.21',\n value_amount='200',\n value_currency='USD',\n ),\n ],\n non_delivery_option=components.CustomsDeclarationNonDeliveryOptionEnum.RETURN,\n test=True,\n ),\n carrier_accounts=[\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels=[\n '',\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n components.ParcelCreateRequest(\n extra=components.ParcelExtra(\n cod=components.Cod(\n amount='5.5',\n currency='USD',\n payment_method=components.PaymentMethod.CASH,\n ),\n insurance=components.ParcelInsurance(\n amount='5.5',\n content='Laptop',\n currency='USD',\n provider=components.ParcelInsuranceProvider.UPS,\n ),\n ),\n metadata='Customer ID 123456',\n mass_unit=components.WeightUnitEnum.LB,\n weight='1',\n distance_unit=components.DistanceUnitEnum.IN,\n height='1',\n length='1',\n width='1',\n ),\n ],\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.create({\n extra: {\n accountsReceivableCustomerAccount: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n appropriationNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n billOfLadingNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n codNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n customerReference: {\n refSort: 1,\n },\n dealerOrderNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n deptNumber: {\n refSort: 3,\n },\n fdaProductCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n insurance: {\n amount: "5.5",\n currency: "USD",\n },\n invoiceNumber: {\n refSort: 2,\n },\n manifestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n modelNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n partNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n poNumber: {\n refSort: 2,\n },\n productionCode: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n purchaseRequestNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n rmaNumber: {\n refSort: 1,\n },\n salespersonNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n serialNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n storeNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n transactionReferenceNumber: {\n prefix: "ABC",\n value: "value",\n refSort: 1,\n },\n },\n metadata: "Customer ID 123456",\n shipmentDate: "2021-03-22T12:00:00Z",\n addressFrom: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n addressReturn: "d799c2679e644279b59fe661ac8fa488",\n addressTo: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "215 Clayton St.",\n street3: "",\n streetNo: "",\n city: "San Francisco",\n state: "CA",\n zip: "94117",\n country: "US",\n phone: "+1 555 341 9393",\n email: "shippotle@shippo.com",\n isResidential: true,\n metadata: "Customer ID 123456",\n validate: true,\n },\n customsDeclaration: {\n b13aFilingOption: "FILED_ELECTRONICALLY",\n certify: true,\n certifySigner: "Shawn Ippotle",\n contentsExplanation: "T-Shirt purchase",\n dutiesPayor: {\n account: "2323434543",\n type: "THIRD_PARTY",\n address: {\n name: "Patrick Kavanagh",\n zip: "80331",\n country: "DE",\n },\n },\n exporterIdentification: {\n eoriNumber: "PL123456790ABCDE",\n taxId: {\n number: "123456789",\n type: "EIN",\n },\n },\n invoice: "#123123",\n metadata: "Order ID #123123",\n addressImporter: {\n name: "Shwan Ippotle",\n company: "Shippo",\n street1: "Blumenstraße",\n street3: "",\n streetNo: "22",\n city: "München",\n state: "CA",\n zip: "80331",\n country: "DE",\n phone: "80331",\n email: "shippotle@shippo.com",\n isResidential: true,\n },\n contentsType: "MERCHANDISE",\n eelPfc: "NOEEI_30_37_a",\n incoterm: "DDP",\n items: [\n {\n description: "T-Shirt",\n massUnit: "lb",\n metadata: "Order ID \\"123454\\"",\n netWeight: "5",\n originCountry: "",\n quantity: 20,\n skuCode: "HM-123",\n hsCode: "0901.21",\n valueAmount: "200",\n valueCurrency: "USD",\n },\n ],\n nonDeliveryOption: "RETURN",\n test: true,\n },\n carrierAccounts: [\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n ],\n parcels: [\n "",\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n {\n extra: {\n cod: {\n amount: "5.5",\n currency: "USD",\n paymentMethod: "CASH",\n },\n insurance: {\n amount: "5.5",\n content: "Laptop",\n currency: "USD",\n provider: "UPS",\n },\n },\n metadata: "Customer ID 123456",\n massUnit: "lb",\n weight: "1",\n distanceUnit: "in",\n height: "1",\n length: "1",\n width: "1",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shipmentCreateRequest = new Components\\ShipmentCreateRequest(\n extra: new Components\\ShipmentExtra(\n accountsReceivableCustomerAccount: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n appropriationNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n billOfLadingNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n codNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n customerReference: new Components\\CustomerReference(\n refSort: 1,\n ),\n dealerOrderNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n deptNumber: new Components\\DepartmentNumber(\n refSort: 3,\n ),\n fdaProductCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n insurance: new Components\\Insurance(\n amount: '5.5',\n currency: 'USD',\n ),\n invoiceNumber: new Components\\InvoiceNumber(\n refSort: 2,\n ),\n manifestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n modelNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n partNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n poNumber: new Components\\PoNumber(\n refSort: 2,\n ),\n productionCode: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n purchaseRequestNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n rmaNumber: new Components\\RmaNumber(\n refSort: 1,\n ),\n salespersonNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n serialNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n storeNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n transactionReferenceNumber: new Components\\UPSReferenceFields(\n prefix: 'ABC',\n value: 'value',\n refSort: 1,\n ),\n ),\n metadata: 'Customer ID 123456',\n shipmentDate: '2021-03-22T12:00:00Z',\n addressFrom: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n addressReturn: 'd799c2679e644279b59fe661ac8fa488',\n addressTo: new Components\\AddressCreateRequest(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: '215 Clayton St.',\n street3: '',\n streetNo: '',\n city: 'San Francisco',\n state: 'CA',\n zip: '94117',\n country: 'US',\n phone: '+1 555 341 9393',\n email: 'shippotle@shippo.com',\n isResidential: true,\n metadata: 'Customer ID 123456',\n validate: true,\n ),\n customsDeclaration: new Components\\CustomsDeclarationCreateRequest(\n b13aFilingOption: Components\\CustomsDeclarationB13AFilingOptionEnum::FiledElectronically,\n certify: true,\n certifySigner: 'Shawn Ippotle',\n contentsExplanation: 'T-Shirt purchase',\n dutiesPayor: new Components\\DutiesPayor(\n account: '2323434543',\n type: Components\\CustomsDeclarationCreateRequestType::ThirdParty,\n address: new Components\\CustomsDeclarationCreateRequestAddress(\n name: 'Patrick Kavanagh',\n zip: '80331',\n country: 'DE',\n ),\n ),\n exporterIdentification: new Components\\CustomsExporterIdentification(\n eoriNumber: 'PL123456790ABCDE',\n taxId: new Components\\CustomsTaxIdentification(\n number: '123456789',\n type: Components\\CustomsTaxIdentificationType::Ein,\n ),\n ),\n invoice: '#123123',\n metadata: 'Order ID #123123',\n addressImporter: new Components\\AddressImporter(\n name: 'Shwan Ippotle',\n company: 'Shippo',\n street1: 'Blumenstraße',\n street3: '',\n streetNo: '22',\n city: 'München',\n state: 'CA',\n zip: '80331',\n country: 'DE',\n phone: '80331',\n email: 'shippotle@shippo.com',\n isResidential: true,\n ),\n contentsType: Components\\CustomsDeclarationContentsTypeEnum::Merchandise,\n eelPfc: Components\\CustomsDeclarationEelPfcEnum::NOEEI3037A,\n incoterm: Components\\CustomsDeclarationIncotermEnum::Ddp,\n items: [\n new Components\\CustomsItemCreateRequest(\n description: 'T-Shirt',\n massUnit: Components\\WeightUnitEnum::Lb,\n metadata: 'Order ID \"123454\"',\n netWeight: '5',\n originCountry: '',\n quantity: 20,\n skuCode: 'HM-123',\n hsCode: '0901.21',\n valueAmount: '200',\n valueCurrency: 'USD',\n ),\n ],\n nonDeliveryOption: Components\\CustomsDeclarationNonDeliveryOptionEnum::Return,\n test: true,\n ),\n carrierAccounts: [\n '065a4a8c10d24a34ab932163a1b87f52',\n '73f706f4bdb94b54a337563840ce52b0',\n ],\n parcels: [\n new Components\\ParcelCreateRequest(\n extra: new Components\\ParcelExtra(\n cod: new Components\\Cod(\n amount: '5.5',\n currency: 'USD',\n paymentMethod: Components\\PaymentMethod::Cash,\n ),\n insurance: new Components\\ParcelInsurance(\n amount: '5.5',\n content: 'Laptop',\n currency: 'USD',\n provider: Components\\ParcelInsuranceProvider::Ups,\n ),\n ),\n metadata: 'Customer ID 123456',\n massUnit: Components\\WeightUnitEnum::Lb,\n weight: '1',\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '1',\n length: '1',\n width: '1',\n ),\n ],\n);\n\n$response = $sdk->shipments->create(\n shipmentCreateRequest: $shipmentCreateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shipment !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing System.Collections.Generic;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Shipments.CreateAsync(\n shipmentCreateRequest: new ShipmentCreateRequest() {\n Extra = new ShipmentExtra() {\n AccountsReceivableCustomerAccount = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n AppropriationNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n BillOfLadingNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n CodNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n CustomerReference = new CustomerReference() {\n RefSort = 1,\n },\n DealerOrderNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n DeptNumber = new DepartmentNumber() {\n RefSort = 3,\n },\n FdaProductCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n Insurance = new Insurance() {\n Amount = "5.5",\n Currency = "USD",\n },\n InvoiceNumber = new InvoiceNumber() {\n RefSort = 2,\n },\n ManifestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n ModelNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PartNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PoNumber = new PoNumber() {\n RefSort = 2,\n },\n ProductionCode = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n PurchaseRequestNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n RmaNumber = new RmaNumber() {\n RefSort = 1,\n },\n SalespersonNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n SerialNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n StoreNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n TransactionReferenceNumber = new UPSReferenceFields() {\n Prefix = "ABC",\n Value = "value",\n RefSort = 1,\n },\n },\n Metadata = "Customer ID 123456",\n ShipmentDate = "2021-03-22T12:00:00Z",\n AddressFrom = AddressFrom.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n AddressReturn = AddressReturn.CreateStr(\n "d799c2679e644279b59fe661ac8fa488"\n ),\n AddressTo = AddressTo.CreateAddressCreateRequest(\n new AddressCreateRequest() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "215 Clayton St.",\n Street3 = "",\n StreetNo = "",\n City = "San Francisco",\n State = "CA",\n Zip = "94117",\n Country = "US",\n Phone = "+1 555 341 9393",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n Metadata = "Customer ID 123456",\n Validate = true,\n }\n ),\n CustomsDeclaration = ShipmentCreateRequestCustomsDeclaration.CreateCustomsDeclarationCreateRequest(\n new CustomsDeclarationCreateRequest() {\n B13aFilingOption = CustomsDeclarationB13AFilingOptionEnum.FiledElectronically,\n Certify = true,\n CertifySigner = "Shawn Ippotle",\n ContentsExplanation = "T-Shirt purchase",\n DutiesPayor = new DutiesPayor() {\n Account = "2323434543",\n Type = CustomsDeclarationCreateRequestType.ThirdParty,\n Address = new CustomsDeclarationCreateRequestAddress() {\n Name = "Patrick Kavanagh",\n Zip = "80331",\n Country = "DE",\n },\n },\n ExporterIdentification = new CustomsExporterIdentification() {\n EoriNumber = "PL123456790ABCDE",\n TaxId = new CustomsTaxIdentification() {\n Number = "123456789",\n Type = CustomsTaxIdentificationType.Ein,\n },\n },\n Invoice = "#123123",\n Metadata = "Order ID #123123",\n AddressImporter = new AddressImporter() {\n Name = "Shwan Ippotle",\n Company = "Shippo",\n Street1 = "Blumenstraße",\n Street3 = "",\n StreetNo = "22",\n City = "München",\n State = "CA",\n Zip = "80331",\n Country = "DE",\n Phone = "80331",\n Email = "shippotle@shippo.com",\n IsResidential = true,\n },\n ContentsType = CustomsDeclarationContentsTypeEnum.Merchandise,\n EelPfc = CustomsDeclarationEelPfcEnum.Noeei3037A,\n Incoterm = CustomsDeclarationIncotermEnum.Ddp,\n Items = new List() {\n new CustomsItemCreateRequest() {\n Description = "T-Shirt",\n MassUnit = WeightUnitEnum.Lb,\n Metadata = "Order ID \\"123454\\"",\n NetWeight = "5",\n OriginCountry = "",\n Quantity = 20,\n SkuCode = "HM-123",\n HsCode = "0901.21",\n ValueAmount = "200",\n ValueCurrency = "USD",\n },\n },\n NonDeliveryOption = CustomsDeclarationNonDeliveryOptionEnum.Return,\n Test = true,\n }\n ),\n CarrierAccounts = new List() {\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0",\n },\n Parcels = new List() {\n Parcels.CreateParcelCreateRequest(\n new ParcelCreateRequest() {\n Extra = new ParcelExtra() {\n Cod = new Cod() {\n Amount = "5.5",\n Currency = "USD",\n PaymentMethod = PaymentMethod.Cash,\n },\n Insurance = new ParcelInsurance() {\n Amount = "5.5",\n Content = "Laptop",\n Currency = "USD",\n Provider = ParcelInsuranceProvider.Ups,\n },\n },\n Metadata = "Customer ID 123456",\n MassUnit = WeightUnitEnum.Lb,\n Weight = "1",\n DistanceUnit = DistanceUnitEnum.In,\n Height = "1",\n Length = "1",\n Width = "1",\n }\n ),\n },\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.AddressCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.AddressFrom;\nimport com.goshippo.shippo_sdk.models.components.AddressImporter;\nimport com.goshippo.shippo_sdk.models.components.AddressReturn;\nimport com.goshippo.shippo_sdk.models.components.AddressTo;\nimport com.goshippo.shippo_sdk.models.components.Cod;\nimport com.goshippo.shippo_sdk.models.components.CustomerReference;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationB13AFilingOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationContentsTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestAddress;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationCreateRequestType;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationEelPfcEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationIncotermEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsDeclarationNonDeliveryOptionEnum;\nimport com.goshippo.shippo_sdk.models.components.CustomsExporterIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsItemCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentification;\nimport com.goshippo.shippo_sdk.models.components.CustomsTaxIdentificationType;\nimport com.goshippo.shippo_sdk.models.components.DepartmentNumber;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.DutiesPayor;\nimport com.goshippo.shippo_sdk.models.components.Insurance;\nimport com.goshippo.shippo_sdk.models.components.InvoiceNumber;\nimport com.goshippo.shippo_sdk.models.components.ParcelCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ParcelExtra;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsurance;\nimport com.goshippo.shippo_sdk.models.components.ParcelInsuranceProvider;\nimport com.goshippo.shippo_sdk.models.components.Parcels;\nimport com.goshippo.shippo_sdk.models.components.PaymentMethod;\nimport com.goshippo.shippo_sdk.models.components.PoNumber;\nimport com.goshippo.shippo_sdk.models.components.RmaNumber;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.ShipmentCreateRequestCustomsDeclaration;\nimport com.goshippo.shippo_sdk.models.components.ShipmentExtra;\nimport com.goshippo.shippo_sdk.models.components.UPSReferenceFields;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateShipmentResponse;\nimport java.lang.Exception;\nimport java.util.List;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateShipmentResponse res = sdk.shipments().create()\n .shippoApiVersion("2018-02-08")\n .shipmentCreateRequest(ShipmentCreateRequest.builder()\n .addressFrom(AddressFrom.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .addressTo(AddressTo.of(AddressCreateRequest.builder()\n .country("US")\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("215 Clayton St.")\n .street3("")\n .streetNo("")\n .city("San Francisco")\n .state("CA")\n .zip("94117")\n .phone("+1 555 341 9393")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .metadata("Customer ID 123456")\n .validate(true)\n .build()))\n .parcels(List.of(\n Parcels.of(""),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build()),\n Parcels.of(ParcelCreateRequest.builder()\n .massUnit(WeightUnitEnum.LB)\n .weight("1")\n .distanceUnit(DistanceUnitEnum.IN)\n .height("1")\n .length("1")\n .width("1")\n .extra(ParcelExtra.builder()\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .insurance(ParcelInsurance.builder()\n .amount("5.5")\n .content("Laptop")\n .currency("USD")\n .provider(ParcelInsuranceProvider.UPS)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .build())))\n .extra(ShipmentExtra.builder()\n .accountsReceivableCustomerAccount(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .appropriationNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .billOfLadingNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .cod(Cod.builder()\n .amount("5.5")\n .currency("USD")\n .paymentMethod(PaymentMethod.CASH)\n .build())\n .codNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .customerReference(CustomerReference.builder()\n .refSort(1L)\n .build())\n .dealerOrderNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .deptNumber(DepartmentNumber.builder()\n .refSort(3L)\n .build())\n .fdaProductCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .insurance(Insurance.builder()\n .amount("5.5")\n .currency("USD")\n .build())\n .invoiceNumber(InvoiceNumber.builder()\n .refSort(2L)\n .build())\n .manifestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .modelNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .partNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .poNumber(PoNumber.builder()\n .refSort(2L)\n .build())\n .productionCode(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .purchaseRequestNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .rmaNumber(RmaNumber.builder()\n .refSort(1L)\n .build())\n .salespersonNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .serialNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .storeNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .transactionReferenceNumber(UPSReferenceFields.builder()\n .prefix("ABC")\n .value("value")\n .refSort(1L)\n .build())\n .build())\n .metadata("Customer ID 123456")\n .shipmentDate("2021-03-22T12:00:00Z")\n .addressReturn(AddressReturn.of("d799c2679e644279b59fe661ac8fa488"))\n .customsDeclaration(ShipmentCreateRequestCustomsDeclaration.of(CustomsDeclarationCreateRequest.builder()\n .certify(true)\n .certifySigner("Shawn Ippotle")\n .contentsType(CustomsDeclarationContentsTypeEnum.MERCHANDISE)\n .items(List.of(\n CustomsItemCreateRequest.builder()\n .description("T-Shirt")\n .massUnit(WeightUnitEnum.LB)\n .netWeight("5")\n .originCountry("")\n .quantity(20L)\n .valueAmount("200")\n .valueCurrency("USD")\n .metadata("Order ID \\"123454\\"")\n .skuCode("HM-123")\n .hsCode("0901.21")\n .build()))\n .nonDeliveryOption(CustomsDeclarationNonDeliveryOptionEnum.RETURN)\n .b13aFilingOption(CustomsDeclarationB13AFilingOptionEnum.FILED_ELECTRONICALLY)\n .contentsExplanation("T-Shirt purchase")\n .dutiesPayor(DutiesPayor.builder()\n .account("2323434543")\n .type(CustomsDeclarationCreateRequestType.THIRD_PARTY)\n .address(CustomsDeclarationCreateRequestAddress.builder()\n .name("Patrick Kavanagh")\n .zip("80331")\n .country("DE")\n .build())\n .build())\n .exporterIdentification(CustomsExporterIdentification.builder()\n .eoriNumber("PL123456790ABCDE")\n .taxId(CustomsTaxIdentification.builder()\n .number("123456789")\n .type(CustomsTaxIdentificationType.EIN)\n .build())\n .build())\n .invoice("#123123")\n .metadata("Order ID #123123")\n .addressImporter(AddressImporter.builder()\n .name("Shwan Ippotle")\n .company("Shippo")\n .street1("Blumenstraße")\n .street3("")\n .streetNo("22")\n .city("München")\n .state("CA")\n .zip("80331")\n .country("DE")\n .phone("80331")\n .email("shippotle@shippo.com")\n .isResidential(true)\n .build())\n .eelPfc(CustomsDeclarationEelPfcEnum.NOEEI3037_A)\n .incoterm(CustomsDeclarationIncotermEnum.DDP)\n .test(true)\n .build()))\n .carrierAccounts(List.of(\n "065a4a8c10d24a34ab932163a1b87f52",\n "73f706f4bdb94b54a337563840ce52b0"))\n .build())\n .call();\n\n if (res.shipment().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Shipment]) + return unmarshal_json_response(components.Shipment, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -453,10 +540,10 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Shipment]: + ) -> components.Shipment: r"""Retrieve a shipment - Returns an existing shipment using an object ID + Returns an existing shipment using an object ID. Shipment objects older than 390 days are not returned. :param shipment_id: Object ID of the shipment to update :param retries: Override the default retry configuration for this method @@ -494,6 +581,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -507,37 +595,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetShipment", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/7c47d12aa95a4cbb9d90c167cca7bea7 \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.get(shipment_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shipments->get(\n shipmentId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shipment !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Shipments.GetAsync(\n shipmentId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetShipmentResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetShipmentResponse res = sdk.shipments().get()\n .shipmentId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shipment().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Shipment]) + return unmarshal_json_response(components.Shipment, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -547,10 +660,10 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Shipment]: + ) -> components.Shipment: r"""Retrieve a shipment - Returns an existing shipment using an object ID + Returns an existing shipment using an object ID. Shipment objects older than 390 days are not returned. :param shipment_id: Object ID of the shipment to update :param retries: Override the default retry configuration for this method @@ -588,6 +701,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -601,34 +715,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetShipment", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shipments"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/shipments/7c47d12aa95a4cbb9d90c167cca7bea7 \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shipments.get(shipment_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shipments.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shipments->get(\n shipmentId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shipment !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Shipments.GetAsync(\n shipmentId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetShipmentResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetShipmentResponse res = sdk.shipments().get()\n .shipmentId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shipment().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Shipment]) + return unmarshal_json_response(components.Shipment, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/shippo_accounts.py b/src/shippo/shippo_accounts.py index 954d6254..4edbb0a5 100644 --- a/src/shippo/shippo_accounts.py +++ b/src/shippo/shippo_accounts.py @@ -5,14 +5,14 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class ShippoAccounts(BaseSDK): r"""Shippo Accounts are used by Shippo Platform Accounts to create and manage Managed Shippo Accounts. Managed Shippo Accounts are headless accounts that represent your customers. They are opaque to your end customers, meaning customers do not need to create their own Shippo login or have a billing relationship with Shippo. - They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our guide for more details. - + They can be used by marketplaces, e-commerce platforms, and third-party logistics providers who want to offer, seamless, built-in shipping functionality to their customers. See our [guide](https://docs.goshippo.com/docs/platformaccounts/platform_accounts/) for more details. """ def list( @@ -24,7 +24,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccountPaginatedList]: + ) -> components.ShippoAccountPaginatedList: r"""List all Shippo Accounts Returns a list of Shippo Managed Accounts objects. @@ -67,6 +67,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -80,39 +81,59 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShippoAccounts", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shippoAccounts->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccountPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShippoAccountsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShippoAccountsResponse res = sdk.shippoAccounts().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shippoAccountPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccountPaginatedList] + return unmarshal_json_response( + components.ShippoAccountPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -123,7 +144,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccountPaginatedList]: + ) -> components.ShippoAccountPaginatedList: r"""List all Shippo Accounts Returns a list of Shippo Managed Accounts objects. @@ -166,6 +187,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -179,39 +201,59 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListShippoAccounts", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.list()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.ListAsync(\n page: 1,\n results: 25,\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shippoAccounts->list(\n page: 1,\n results: 25,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccountPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListShippoAccountsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListShippoAccountsResponse res = sdk.shippoAccounts().list()\n .page(1L)\n .results(25L)\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shippoAccountPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccountPaginatedList] + return unmarshal_json_response( + components.ShippoAccountPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -224,10 +266,10 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Create a Shippo Account - Creates a new Shippo Managed Account. + Creates a new [Shippo Managed Account](https://docs.goshippo.com/docs/platformaccounts/platform_using_accounts/). :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -268,6 +310,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ShippoAccountUpdateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -281,39 +324,57 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.create(request=components.ShippoAccountUpdateRequest(\n email='hippo@shippo.com',\n first_name='Shippo',\n last_name='Meister',\n company_name='Acme',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.create({\n email: "hippo@shippo.com",\n firstName: "Shippo",\n lastName: "Meister",\n companyName: "Acme",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.CreateAsync(\n shippoAccountUpdateRequest: new ShippoAccountUpdateRequest() {\n Email = "hippo@shippo.com",\n FirstName = "Shippo",\n LastName = "Meister",\n CompanyName = "Acme",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shippoAccountUpdateRequest = new Components\\ShippoAccountUpdateRequest(\n email: 'hippo@shippo.com',\n firstName: 'Shippo',\n lastName: 'Meister',\n companyName: 'Acme',\n);\n\n$response = $sdk->shippoAccounts->create(\n shippoAccountUpdateRequest: $shippoAccountUpdateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ShippoAccountUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateShippoAccountResponse res = sdk.shippoAccounts().create()\n .shippoApiVersion("2018-02-08")\n .shippoAccountUpdateRequest(ShippoAccountUpdateRequest.builder()\n .email("hippo@shippo.com")\n .firstName("Shippo")\n .lastName("Meister")\n .companyName("Acme")\n .build())\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -326,10 +387,10 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Create a Shippo Account - Creates a new Shippo Managed Account. + Creates a new [Shippo Managed Account](https://docs.goshippo.com/docs/platformaccounts/platform_using_accounts/). :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -370,6 +431,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.ShippoAccountUpdateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -383,39 +445,57 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.create(request=components.ShippoAccountUpdateRequest(\n email='hippo@shippo.com',\n first_name='Shippo',\n last_name='Meister',\n company_name='Acme',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.create({\n email: "hippo@shippo.com",\n firstName: "Shippo",\n lastName: "Meister",\n companyName: "Acme",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.CreateAsync(\n shippoAccountUpdateRequest: new ShippoAccountUpdateRequest() {\n Email = "hippo@shippo.com",\n FirstName = "Shippo",\n LastName = "Meister",\n CompanyName = "Acme",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shippoAccountUpdateRequest = new Components\\ShippoAccountUpdateRequest(\n email: 'hippo@shippo.com',\n firstName: 'Shippo',\n lastName: 'Meister',\n companyName: 'Acme',\n);\n\n$response = $sdk->shippoAccounts->create(\n shippoAccountUpdateRequest: $shippoAccountUpdateRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ShippoAccountUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateShippoAccountResponse res = sdk.shippoAccounts().create()\n .shippoApiVersion("2018-02-08")\n .shippoAccountUpdateRequest(ShippoAccountUpdateRequest.builder()\n .email("hippo@shippo.com")\n .firstName("Shippo")\n .lastName("Meister")\n .companyName("Acme")\n .build())\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -425,7 +505,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Retrieve a Shippo Account Returns a Shippo Managed Account using an object ID. @@ -466,6 +546,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -479,39 +560,57 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.get(shippo_account_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.GetAsync(\n shippoAccountId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shippoAccounts->get(\n shippoAccountId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetShippoAccountResponse res = sdk.shippoAccounts().get()\n .shippoAccountId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -521,7 +620,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Retrieve a Shippo Account Returns a Shippo Managed Account using an object ID. @@ -562,6 +661,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -575,39 +675,57 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.get(shippo_account_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.GetAsync(\n shippoAccountId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->shippoAccounts->get(\n shippoAccountId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetShippoAccountResponse res = sdk.shippoAccounts().get()\n .shippoAccountId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def update( self, @@ -623,7 +741,7 @@ def update( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Update a Shippo Account Updates a Shippo Managed Account using an object ID. @@ -670,12 +788,13 @@ def update( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.shippo_account_update_request, + request.shippo_account_update_request if request is not None else None, False, True, "json", Optional[components.ShippoAccountUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -689,39 +808,57 @@ def update( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.update(shippo_account_id='', shippo_account_update_request=components.ShippoAccountUpdateRequest(\n email='hippo@shippo.com',\n first_name='Shippo',\n last_name='Meister',\n company_name='Acme',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.update("", {\n email: "hippo@shippo.com",\n firstName: "Shippo",\n lastName: "Meister",\n companyName: "Acme",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.UpdateAsync(\n shippoAccountId: "",\n shippoApiVersion: "2018-02-08",\n shippoAccountUpdateRequest: new ShippoAccountUpdateRequest() {\n Email = "hippo@shippo.com",\n FirstName = "Shippo",\n LastName = "Meister",\n CompanyName = "Acme",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shippoAccountUpdateRequest = new Components\\ShippoAccountUpdateRequest(\n email: 'hippo@shippo.com',\n firstName: 'Shippo',\n lastName: 'Meister',\n companyName: 'Acme',\n);\n\n$response = $sdk->shippoAccounts->update(\n shippoAccountId: '',\n shippoApiVersion: '2018-02-08',\n shippoAccountUpdateRequest: $shippoAccountUpdateRequest\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ShippoAccountUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateShippoAccountResponse res = sdk.shippoAccounts().update()\n .shippoAccountId("")\n .shippoApiVersion("2018-02-08")\n .shippoAccountUpdateRequest(ShippoAccountUpdateRequest.builder()\n .email("hippo@shippo.com")\n .firstName("Shippo")\n .lastName("Meister")\n .companyName("Acme")\n .build())\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def update_async( self, @@ -737,7 +874,7 @@ async def update_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.ShippoAccount]: + ) -> components.ShippoAccount: r"""Update a Shippo Account Updates a Shippo Managed Account using an object ID. @@ -784,12 +921,13 @@ async def update_async( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.shippo_account_update_request, + request.shippo_account_update_request if request is not None else None, False, True, "json", Optional[components.ShippoAccountUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -803,36 +941,54 @@ async def update_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateShippoAccount", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Shippo Accounts"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.shippo_accounts.update(shippo_account_id='', shippo_account_update_request=components.ShippoAccountUpdateRequest(\n email='hippo@shippo.com',\n first_name='Shippo',\n last_name='Meister',\n company_name='Acme',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.shippoAccounts.update("", {\n email: "hippo@shippo.com",\n firstName: "Shippo",\n lastName: "Meister",\n companyName: "Acme",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.ShippoAccounts.UpdateAsync(\n shippoAccountId: "",\n shippoApiVersion: "2018-02-08",\n shippoAccountUpdateRequest: new ShippoAccountUpdateRequest() {\n Email = "hippo@shippo.com",\n FirstName = "Shippo",\n LastName = "Meister",\n CompanyName = "Acme",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$shippoAccountUpdateRequest = new Components\\ShippoAccountUpdateRequest(\n email: 'hippo@shippo.com',\n firstName: 'Shippo',\n lastName: 'Meister',\n companyName: 'Acme',\n);\n\n$response = $sdk->shippoAccounts->update(\n shippoAccountId: '',\n shippoApiVersion: '2018-02-08',\n shippoAccountUpdateRequest: $shippoAccountUpdateRequest\n\n);\n\nif ($response->shippoAccount !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.ShippoAccountUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateShippoAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateShippoAccountResponse res = sdk.shippoAccounts().update()\n .shippoAccountId("")\n .shippoApiVersion("2018-02-08")\n .shippoAccountUpdateRequest(ShippoAccountUpdateRequest.builder()\n .email("hippo@shippo.com")\n .firstName("Shippo")\n .lastName("Meister")\n .companyName("Acme")\n .build())\n .call();\n\n if (res.shippoAccount().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.ShippoAccount] - ) + return unmarshal_json_response(components.ShippoAccount, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/tracking_status.py b/src/shippo/tracking_status.py index 8c7e9799..4d563f37 100644 --- a/src/shippo/tracking_status.py +++ b/src/shippo/tracking_status.py @@ -5,21 +5,21 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class TrackingStatus(BaseSDK): - r"""


+ r"""


If you purchased your shipping label through Shippo, you can also get all the tracking details of your Shipment - from the Transaction object. -

+ from the [Transaction](/shippoapi/public-api/transactions) object. +

A tracking status of a package is an indication of current location of a package in the supply chain. For example, sorting, warehousing, or out for delivery. Use the tracking status object to track the location of your shipments. - When using your Test token for tracking, you need to use Shippo's + When using your [Test](https://docs.goshippo.com/docs/guides_general/authentication/) token for tracking, you need to use Shippo's predefined tokens for testing different tracking statuses. You can find more information in our - Tracking tutorial on how to do this, and what the + [Tracking tutorial](https://docs.goshippo.com/docs/tracking/tracking/) on how to do this, and what the payloads look like. - """ def create( @@ -30,10 +30,10 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Track]: + ) -> components.Track: r"""Register a tracking webhook - Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on Webhooks and Tracking. + Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on [Webhooks](https://docs.goshippo.com/docs/tracking/webhooks/) and [Tracking](https://docs.goshippo.com/docs/tracking/tracking/). :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -74,6 +74,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.TracksRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -87,37 +88,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateTrack", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Tracking Status"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/tracks/ \\\n-H "Authorization: ShippoToken " \\\n-d carrier="usps" \\\n-d tracking_number="9205590164917312751089" \\\n-d metadata="Order 000123"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.tracking_status.create(request=components.TracksRequest(\n carrier='usps',\n metadata='Order 000123',\n tracking_number='9205590164917312751089',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.trackingStatus.create({\n carrier: "usps",\n metadata: "Order 000123",\n trackingNumber: "9205590164917312751089",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.TrackingStatus.CreateAsync(\n tracksRequest: new TracksRequest() {\n Carrier = "usps",\n Metadata = "Order 000123",\n TrackingNumber = "9205590164917312751089",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$tracksRequest = new Components\\TracksRequest(\n carrier: 'usps',\n metadata: 'Order 000123',\n trackingNumber: '9205590164917312751089',\n);\n\n$response = $sdk->trackingStatus->create(\n tracksRequest: $tracksRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->track !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.TracksRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateTrackResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateTrackResponse res = sdk.trackingStatus().create()\n .shippoApiVersion("2018-02-08")\n .tracksRequest(TracksRequest.builder()\n .carrier("usps")\n .trackingNumber("9205590164917312751089")\n .metadata("Order 000123")\n .build())\n .call();\n\n if (res.track().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Track]) + return unmarshal_json_response(components.Track, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -127,10 +153,10 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Track]: + ) -> components.Track: r"""Register a tracking webhook - Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on Webhooks and Tracking. + Registers a webhook that will send HTTP notifications to you when the status of your tracked package changes. For more details on creating a webhook, see our guides on [Webhooks](https://docs.goshippo.com/docs/tracking/webhooks/) and [Tracking](https://docs.goshippo.com/docs/tracking/tracking/). :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -171,6 +197,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.TracksRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -184,37 +211,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateTrack", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Tracking Status"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/tracks/ \\\n-H "Authorization: ShippoToken " \\\n-d carrier="usps" \\\n-d tracking_number="9205590164917312751089" \\\n-d metadata="Order 000123"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.tracking_status.create(request=components.TracksRequest(\n carrier='usps',\n metadata='Order 000123',\n tracking_number='9205590164917312751089',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.trackingStatus.create({\n carrier: "usps",\n metadata: "Order 000123",\n trackingNumber: "9205590164917312751089",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.TrackingStatus.CreateAsync(\n tracksRequest: new TracksRequest() {\n Carrier = "usps",\n Metadata = "Order 000123",\n TrackingNumber = "9205590164917312751089",\n },\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$tracksRequest = new Components\\TracksRequest(\n carrier: 'usps',\n metadata: 'Order 000123',\n trackingNumber: '9205590164917312751089',\n);\n\n$response = $sdk->trackingStatus->create(\n tracksRequest: $tracksRequest,\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->track !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.TracksRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateTrackResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateTrackResponse res = sdk.trackingStatus().create()\n .shippoApiVersion("2018-02-08")\n .tracksRequest(TracksRequest.builder()\n .carrier("usps")\n .trackingNumber("9205590164917312751089")\n .metadata("Order 000123")\n .build())\n .call();\n\n if (res.track().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Track]) + return unmarshal_json_response(components.Track, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -225,7 +277,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Track]: + ) -> components.Track: r"""Get a tracking status Returns the tracking status of a shipment using a carrier name and a tracking number. @@ -268,6 +320,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -281,37 +334,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetTrack", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Tracking Status"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/tracks/usps/9205590164917312751089 \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.tracking_status.get(tracking_number='', carrier='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.trackingStatus.get("", "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.TrackingStatus.GetAsync(\n trackingNumber: "",\n carrier: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->trackingStatus->get(\n trackingNumber: '',\n carrier: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->track !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetTrackResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetTrackResponse res = sdk.trackingStatus().get()\n .trackingNumber("")\n .carrier("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.track().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Track]) + return unmarshal_json_response(components.Track, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -322,7 +400,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Track]: + ) -> components.Track: r"""Get a tracking status Returns the tracking status of a shipment using a carrier name and a tracking number. @@ -365,6 +443,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -378,34 +457,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetTrack", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Tracking Status"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/tracks/usps/9205590164917312751089 \\\n-H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.tracking_status.get(tracking_number='', carrier='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.trackingStatus.get("", "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.TrackingStatus.GetAsync(\n trackingNumber: "",\n carrier: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->trackingStatus->get(\n trackingNumber: '',\n carrier: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->track !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetTrackResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetTrackResponse res = sdk.trackingStatus().get()\n .trackingNumber("")\n .carrier("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.track().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Track]) + return unmarshal_json_response(components.Track, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/transactions.py b/src/shippo/transactions.py index ae8bbe6a..7d57ab3d 100644 --- a/src/shippo/transactions.py +++ b/src/shippo/transactions.py @@ -5,13 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Transactions(BaseSDK): - r"""A transaction is the purchase of a shipping label from a shipping provider for a specific service. You can print purchased labels and used them to ship a parcel with a carrier, such as USPS or FedEx. - - """ + r"""A transaction is the purchase of a shipping label from a shipping provider for a specific service. You can print purchased labels and used them to ship a parcel with a carrier, such as USPS or FedEx.""" def list( self, @@ -24,7 +23,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.TransactionPaginatedList]: + ) -> components.TransactionPaginatedList: r"""List all shipping labels Returns a list of all transaction objects. @@ -65,6 +64,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -78,39 +78,64 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListTransactions", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/transactions/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components, operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.list(request=operations.ListTransactionsRequest(\n object_status=components.TransactionStatusEnum.SUCCESS,\n tracking_status=components.TrackingStatusEnum.DELIVERED,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.list({\n objectStatus: "SUCCESS",\n trackingStatus: "DELIVERED",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListTransactionsRequest(\n objectStatus: Components\\TransactionStatusEnum::Success,\n trackingStatus: Components\\TrackingStatusEnum::Delivered,\n);\n\n$response = $sdk->transactions->list(\n request: $request\n);\n\nif ($response->transactionPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListTransactionsRequest req = new ListTransactionsRequest() {\n ObjectStatus = TransactionStatusEnum.Success,\n TrackingStatus = TrackingStatusEnum.Delivered,\n};\n\nvar res = await sdk.Transactions.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.TrackingStatusEnum;\nimport com.goshippo.shippo_sdk.models.components.TransactionStatusEnum;\nimport com.goshippo.shippo_sdk.models.operations.ListTransactionsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListTransactionsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListTransactionsRequest req = ListTransactionsRequest.builder()\n .objectStatus(TransactionStatusEnum.SUCCESS)\n .trackingStatus(TrackingStatusEnum.DELIVERED)\n .build();\n\n ListTransactionsResponse res = sdk.transactions().list()\n .request(req)\n .call();\n\n if (res.transactionPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.TransactionPaginatedList] + return unmarshal_json_response( + components.TransactionPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -123,7 +148,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.TransactionPaginatedList]: + ) -> components.TransactionPaginatedList: r"""List all shipping labels Returns a list of all transaction objects. @@ -164,6 +189,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -177,39 +203,64 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListTransactions", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/transactions/ \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components, operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.list(request=operations.ListTransactionsRequest(\n object_status=components.TransactionStatusEnum.SUCCESS,\n tracking_status=components.TrackingStatusEnum.DELIVERED,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.list({\n objectStatus: "SUCCESS",\n trackingStatus: "DELIVERED",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\nuse Shippo\\API\\Models\\Operations;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Operations\\ListTransactionsRequest(\n objectStatus: Components\\TransactionStatusEnum::Success,\n trackingStatus: Components\\TrackingStatusEnum::Delivered,\n);\n\n$response = $sdk->transactions->list(\n request: $request\n);\n\nif ($response->transactionPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\nusing Shippo.Models.Requests;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nListTransactionsRequest req = new ListTransactionsRequest() {\n ObjectStatus = TransactionStatusEnum.Success,\n TrackingStatus = TrackingStatusEnum.Delivered,\n};\n\nvar res = await sdk.Transactions.ListAsync(req);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.TrackingStatusEnum;\nimport com.goshippo.shippo_sdk.models.components.TransactionStatusEnum;\nimport com.goshippo.shippo_sdk.models.operations.ListTransactionsRequest;\nimport com.goshippo.shippo_sdk.models.operations.ListTransactionsResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListTransactionsRequest req = ListTransactionsRequest.builder()\n .objectStatus(TransactionStatusEnum.SUCCESS)\n .trackingStatus(TrackingStatusEnum.DELIVERED)\n .build();\n\n ListTransactionsResponse res = sdk.transactions().list()\n .request(req)\n .call();\n\n if (res.transactionPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.TransactionPaginatedList] + return unmarshal_json_response( + components.TransactionPaginatedList, http_res ) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -222,10 +273,12 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Transaction]: + ) -> components.Transaction: r"""Create a shipping label - Creates a new transaction object and purchases the shipping label using a rate object that has previously been created.
OR
Creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. + Creates a new transaction object and purchases the shipping label using a rate object that has previously been created. + + Alternatively, creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -266,6 +319,7 @@ def create( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.CreateTransactionRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -279,37 +333,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateTransaction", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": "curl --location --request POST 'https://api.goshippo.com/transactions' \\\n--header 'Authorization: ShippoToken {{token}}' \\\n--header 'Content-Type: application/json' \\\n--header 'SHIPPO-API-VERSION: 2018-02-08' \\\n--data-raw '{\n \"rate\": \"a5c9d1bec93149f5bedc3a9374b50970\",\n \"async\": false,\n \"label_file_type\": \"PDF\"\n}'", + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.create(request=components.TransactionCreateRequest(\n async_=False,\n label_file_type=components.LabelFileTypeEnum.PDF_4X6,\n metadata='Order ID #12345',\n rate='ec9f0d3adc9441449c85d315f0997fd5',\n order='adcfdddf8ec64b84ad22772bce3ea37a',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.create({\n async: false,\n labelFileType: "PDF_4x6",\n metadata: "Order ID #12345",\n rate: "ec9f0d3adc9441449c85d315f0997fd5",\n order: "adcfdddf8ec64b84ad22772bce3ea37a",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->transactions->create(\n requestBody: new Components\\TransactionCreateRequest(\n async: false,\n labelFileType: Components\\LabelFileTypeEnum::PDF4x6,\n metadata: 'Order ID #12345',\n rate: 'ec9f0d3adc9441449c85d315f0997fd5',\n order: 'adcfdddf8ec64b84ad22772bce3ea37a',\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->transaction !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Transactions.CreateAsync(\n requestBody: CreateTransactionRequestBody.CreateTransactionCreateRequest(\n new TransactionCreateRequest() {\n Async = false,\n LabelFileType = LabelFileTypeEnum.Pdf4x6,\n Metadata = "Order ID #12345",\n Rate = "ec9f0d3adc9441449c85d315f0997fd5",\n Order = "adcfdddf8ec64b84ad22772bce3ea37a",\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.LabelFileTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.TransactionCreateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateTransactionRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateTransactionResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateTransactionResponse res = sdk.transactions().create()\n .shippoApiVersion("2018-02-08")\n .requestBody(CreateTransactionRequestBody.of(TransactionCreateRequest.builder()\n .rate("ec9f0d3adc9441449c85d315f0997fd5")\n .async(false)\n .labelFileType(LabelFileTypeEnum.PDF4X6)\n .metadata("Order ID #12345")\n .order("adcfdddf8ec64b84ad22772bce3ea37a")\n .build()))\n .call();\n\n if (res.transaction().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Transaction]) + return unmarshal_json_response(components.Transaction, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -322,10 +401,12 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Transaction]: + ) -> components.Transaction: r"""Create a shipping label - Creates a new transaction object and purchases the shipping label using a rate object that has previously been created.
OR
Creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. + Creates a new transaction object and purchases the shipping label using a rate object that has previously been created. + + Alternatively, creates a new transaction object and purchases the shipping label instantly using shipment details, an existing carrier account, and an existing service level token. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -366,6 +447,7 @@ async def create_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", operations.CreateTransactionRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -379,37 +461,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateTransaction", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": "curl --location --request POST 'https://api.goshippo.com/transactions' \\\n--header 'Authorization: ShippoToken {{token}}' \\\n--header 'Content-Type: application/json' \\\n--header 'SHIPPO-API-VERSION: 2018-02-08' \\\n--data-raw '{\n \"rate\": \"a5c9d1bec93149f5bedc3a9374b50970\",\n \"async\": false,\n \"label_file_type\": \"PDF\"\n}'", + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.create(request=components.TransactionCreateRequest(\n async_=False,\n label_file_type=components.LabelFileTypeEnum.PDF_4X6,\n metadata='Order ID #12345',\n rate='ec9f0d3adc9441449c85d315f0997fd5',\n order='adcfdddf8ec64b84ad22772bce3ea37a',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.create({\n async: false,\n labelFileType: "PDF_4x6",\n metadata: "Order ID #12345",\n rate: "ec9f0d3adc9441449c85d315f0997fd5",\n order: "adcfdddf8ec64b84ad22772bce3ea37a",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->transactions->create(\n requestBody: new Components\\TransactionCreateRequest(\n async: false,\n labelFileType: Components\\LabelFileTypeEnum::PDF4x6,\n metadata: 'Order ID #12345',\n rate: 'ec9f0d3adc9441449c85d315f0997fd5',\n order: 'adcfdddf8ec64b84ad22772bce3ea37a',\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->transaction !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Transactions.CreateAsync(\n requestBody: CreateTransactionRequestBody.CreateTransactionCreateRequest(\n new TransactionCreateRequest() {\n Async = false,\n LabelFileType = LabelFileTypeEnum.Pdf4x6,\n Metadata = "Order ID #12345",\n Rate = "ec9f0d3adc9441449c85d315f0997fd5",\n Order = "adcfdddf8ec64b84ad22772bce3ea37a",\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.LabelFileTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.TransactionCreateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateTransactionRequestBody;\nimport com.goshippo.shippo_sdk.models.operations.CreateTransactionResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateTransactionResponse res = sdk.transactions().create()\n .shippoApiVersion("2018-02-08")\n .requestBody(CreateTransactionRequestBody.of(TransactionCreateRequest.builder()\n .rate("ec9f0d3adc9441449c85d315f0997fd5")\n .async(false)\n .labelFileType(LabelFileTypeEnum.PDF4X6)\n .metadata("Order ID #12345")\n .order("adcfdddf8ec64b84ad22772bce3ea37a")\n .build()))\n .call();\n\n if (res.transaction().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Transaction]) + return unmarshal_json_response(components.Transaction, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -419,7 +526,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Transaction]: + ) -> components.Transaction: r"""Retrieve a shipping label Returns an existing transaction using an object ID. @@ -460,6 +567,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -473,37 +581,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetTransaction", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/transactions/70ae8117ee1749e393f249d5b77c45e0 \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.get(transaction_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->transactions->get(\n transactionId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->transaction !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Transactions.GetAsync(\n transactionId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetTransactionResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetTransactionResponse res = sdk.transactions().get()\n .transactionId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.transaction().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Transaction]) + return unmarshal_json_response(components.Transaction, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -513,7 +646,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Transaction]: + ) -> components.Transaction: r"""Retrieve a shipping label Returns an existing transaction using an object ID. @@ -554,6 +687,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -567,34 +701,59 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetTransaction", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Transactions"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/transactions/70ae8117ee1749e393f249d5b77c45e0 \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.transactions.get(transaction_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.transactions.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->transactions->get(\n transactionId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->transaction !== null) {\n // handle response\n}", + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Transactions.GetAsync(\n transactionId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetTransactionResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetTransactionResponse res = sdk.transactions().get()\n .transactionId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.transaction().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Transaction]) + return unmarshal_json_response(components.Transaction, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/types/__init__.py b/src/shippo/types/__init__.py index fc76fe0c..faa26813 100644 --- a/src/shippo/types/__init__.py +++ b/src/shippo/types/__init__.py @@ -1,5 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +from .base64fileinput import Base64EncodedString, Base64FileInput from .basemodel import ( BaseModel, Nullable, @@ -11,6 +12,8 @@ ) __all__ = [ + "Base64EncodedString", + "Base64FileInput", "BaseModel", "Nullable", "OptionalNullable", diff --git a/src/shippo/types/base64fileinput.py b/src/shippo/types/base64fileinput.py new file mode 100644 index 00000000..862566fe --- /dev/null +++ b/src/shippo/types/base64fileinput.py @@ -0,0 +1,43 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations + +import base64 +import io +from os import PathLike +from typing import IO, Any, Union + +from pydantic.functional_validators import BeforeValidator +from typing_extensions import Annotated + + +Base64FileInput = Union[IO[bytes], PathLike[str]] + + +def encode_base64_file_input(value: Any) -> Any: + """Convert PathLike or IO[bytes] inputs to a base64 string. All standard binary streams + that inherit from io.IOBase are handled. Other values pass through. + """ + if isinstance(value, (PathLike, io.IOBase)): + if isinstance(value, PathLike): + with open(value, "rb") as fh: + binary = fh.read() + else: + # Restore position after reading: pydantic may validate the same stream more than once. + position = value.tell() if value.seekable() else None + binary = value.read() + if position is not None: + value.seek(position) + if isinstance(binary, str): + binary = binary.encode() + if not isinstance(binary, (bytes, bytearray)): + raise TypeError( + f"Base64FileInput expected binary IO returning bytes; got {type(binary).__name__}" + ) + return base64.b64encode(binary).decode("ascii") + return value + + +# Non-str inputs are converted to base64 by the BeforeValidator at construction time. +# Callers can also pass a pre-encoded base64 str. +Base64EncodedString = Annotated[str, BeforeValidator(encode_base64_file_input)] diff --git a/src/shippo/types/basemodel.py b/src/shippo/types/basemodel.py index a6187efa..a9a640a1 100644 --- a/src/shippo/types/basemodel.py +++ b/src/shippo/types/basemodel.py @@ -2,7 +2,8 @@ from pydantic import ConfigDict, model_serializer from pydantic import BaseModel as PydanticBaseModel -from typing import TYPE_CHECKING, Literal, Optional, TypeVar, Union, NewType +from pydantic_core import core_schema +from typing import TYPE_CHECKING, Any, Literal, Optional, TypeVar, Union from typing_extensions import TypeAliasType, TypeAlias @@ -35,5 +36,42 @@ def __bool__(self) -> Literal[False]: "OptionalNullable", Union[Optional[Nullable[T]], Unset], type_params=(T,) ) -UnrecognizedInt = NewType("UnrecognizedInt", int) -UnrecognizedStr = NewType("UnrecognizedStr", str) + +class UnrecognizedStr(str): + @classmethod + def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> core_schema.CoreSchema: + # Make UnrecognizedStr only work in lax mode, not strict mode + # This makes it a "fallback" option when more specific types (like Literals) don't match + def validate_lax(v: Any) -> 'UnrecognizedStr': + if isinstance(v, cls): + return v + return cls(str(v)) + + # Use lax_or_strict_schema where strict always fails + # This forces Pydantic to prefer other union members in strict mode + # and only fall back to UnrecognizedStr in lax mode + return core_schema.lax_or_strict_schema( + lax_schema=core_schema.chain_schema([ + core_schema.str_schema(), + core_schema.no_info_plain_validator_function(validate_lax) + ]), + strict_schema=core_schema.none_schema(), # Always fails in strict mode + ) + + +class UnrecognizedInt(int): + @classmethod + def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> core_schema.CoreSchema: + # Make UnrecognizedInt only work in lax mode, not strict mode + # This makes it a "fallback" option when more specific types (like Literals) don't match + def validate_lax(v: Any) -> 'UnrecognizedInt': + if isinstance(v, cls): + return v + return cls(int(v)) + return core_schema.lax_or_strict_schema( + lax_schema=core_schema.chain_schema([ + core_schema.int_schema(), + core_schema.no_info_plain_validator_function(validate_lax) + ]), + strict_schema=core_schema.none_schema(), # Always fails in strict mode + ) diff --git a/src/shippo/user_parcel_templates.py b/src/shippo/user_parcel_templates.py index aa5c67d9..25771d4d 100644 --- a/src/shippo/user_parcel_templates.py +++ b/src/shippo/user_parcel_templates.py @@ -5,6 +5,7 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast @@ -15,7 +16,6 @@ class UserParcelTemplates(BaseSDK): User parcel templates can also be created using a carrier parcel template, where the dimensions will be copied from the carrier presets, but the weight can be configured by you. - """ def list( @@ -29,7 +29,7 @@ def list( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplateList]: + ) -> components.UserParcelTemplateList: r"""List all user parcel templates Returns a list all of all user parcel template objects. @@ -72,6 +72,7 @@ def list( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -85,39 +86,62 @@ def list( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListUserParcelTemplates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/user-parcel-templates \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.list(request=operations.ListUserParcelTemplatesRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->userParcelTemplateList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListUserParcelTemplatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListUserParcelTemplatesResponse res = sdk.userParcelTemplates().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.userParcelTemplateList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplateList] - ) + return unmarshal_json_response(components.UserParcelTemplateList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def list_async( self, @@ -130,7 +154,7 @@ async def list_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplateList]: + ) -> components.UserParcelTemplateList: r"""List all user parcel templates Returns a list all of all user parcel template objects. @@ -173,6 +197,7 @@ async def list_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -186,39 +211,62 @@ async def list_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="ListUserParcelTemplates", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/user-parcel-templates \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import operations\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.list(request=operations.ListUserParcelTemplatesRequest())\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.ListAsync(shippoApiVersion: "2018-02-08");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->list(\n shippoApiVersion: '2018-02-08'\n);\n\nif ($response->userParcelTemplateList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListUserParcelTemplatesResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListUserParcelTemplatesResponse res = sdk.userParcelTemplates().list()\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.userParcelTemplateList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplateList] - ) + return unmarshal_json_response(components.UserParcelTemplateList, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def create( self, @@ -231,13 +279,15 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Create a new user parcel template - Creates a new user parcel template.
You can choose to create a + Creates a new user parcel template. + + You can choose to create a parcel template using a preset carrier template as a starting point, or you can create an entirely custom one. To use a preset carrier template, - pass in a unique template token from this list + pass in a unique template token from [this list](/shippoapi/public-api/parcel-templates) plus the weight fields (**weight** and **weight_unit**). Otherwise, omit the template field and pass the other fields, for the weight, length, height, and depth, as well as their units.\" @@ -287,6 +337,7 @@ def create( "json", components.UserParcelTemplateCreateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -300,39 +351,62 @@ def create( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/user-parcel-templates \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"\n -d \'{\n "name": "My Custom Template",\n "length": "10",\n "width": "8",\n "height": "6",\n "distance_unit": "in",\n "weight": "12",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.create(request=components.UserParcelTemplateWithCarrierTemplateCreateRequest(\n weight='12',\n weight_unit=components.WeightUnitEnum.LB,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.create({\n weight: "12",\n weightUnit: "lb",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.CreateAsync(\n userParcelTemplateCreateRequest: UserParcelTemplateCreateRequest.CreateUserParcelTemplateWithCarrierTemplateCreateRequest(\n new UserParcelTemplateWithCarrierTemplateCreateRequest() {\n Weight = "12",\n WeightUnit = WeightUnitEnum.Lb,\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->create(\n userParcelTemplateCreateRequest: new Components\\UserParcelTemplateWithCarrierTemplateCreateRequest(\n weight: '12',\n weightUnit: Components\\WeightUnitEnum::Lb,\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateWithCarrierTemplateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateUserParcelTemplateResponse res = sdk.userParcelTemplates().create()\n .shippoApiVersion("2018-02-08")\n .userParcelTemplateCreateRequest(UserParcelTemplateCreateRequest.of(UserParcelTemplateWithCarrierTemplateCreateRequest.builder()\n .weight("12")\n .weightUnit(WeightUnitEnum.LB)\n .build()))\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def create_async( self, @@ -345,13 +419,15 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Create a new user parcel template - Creates a new user parcel template.
You can choose to create a + Creates a new user parcel template. + + You can choose to create a parcel template using a preset carrier template as a starting point, or you can create an entirely custom one. To use a preset carrier template, - pass in a unique template token from this list + pass in a unique template token from [this list](/shippoapi/public-api/parcel-templates) plus the weight fields (**weight** and **weight_unit**). Otherwise, omit the template field and pass the other fields, for the weight, length, height, and depth, as well as their units.\" @@ -401,6 +477,7 @@ async def create_async( "json", components.UserParcelTemplateCreateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -414,39 +491,62 @@ async def create_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="CreateUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X POST https://api.goshippo.com/user-parcel-templates \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"\n -d \'{\n "name": "My Custom Template",\n "length": "10",\n "width": "8",\n "height": "6",\n "distance_unit": "in",\n "weight": "12",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.create(request=components.UserParcelTemplateWithCarrierTemplateCreateRequest(\n weight='12',\n weight_unit=components.WeightUnitEnum.LB,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.create({\n weight: "12",\n weightUnit: "lb",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.CreateAsync(\n userParcelTemplateCreateRequest: UserParcelTemplateCreateRequest.CreateUserParcelTemplateWithCarrierTemplateCreateRequest(\n new UserParcelTemplateWithCarrierTemplateCreateRequest() {\n Weight = "12",\n WeightUnit = WeightUnitEnum.Lb,\n }\n ),\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->create(\n userParcelTemplateCreateRequest: new Components\\UserParcelTemplateWithCarrierTemplateCreateRequest(\n weight: '12',\n weightUnit: Components\\WeightUnitEnum::Lb,\n ),\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateWithCarrierTemplateCreateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.CreateUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n CreateUserParcelTemplateResponse res = sdk.userParcelTemplates().create()\n .shippoApiVersion("2018-02-08")\n .userParcelTemplateCreateRequest(UserParcelTemplateCreateRequest.of(UserParcelTemplateWithCarrierTemplateCreateRequest.builder()\n .weight("12")\n .weightUnit(WeightUnitEnum.LB)\n .build()))\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def delete( self, @@ -497,6 +597,7 @@ def delete( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -510,13 +611,49 @@ def delete( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X DELETE https://api.goshippo.com/user-parcel-templates/{UserParcelTemplateObjectId} \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.user_parcel_templates.delete(user_parcel_template_object_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.userParcelTemplates.delete("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.UserParcelTemplates.DeleteAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->delete(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteUserParcelTemplateResponse res = sdk.userParcelTemplates().delete()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -524,23 +661,12 @@ def delete( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def delete_async( self, @@ -591,6 +717,7 @@ async def delete_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -604,13 +731,49 @@ async def delete_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="DeleteUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl -X DELETE https://api.goshippo.com/user-parcel-templates/{UserParcelTemplateObjectId} \\\n -H "Authorization: ShippoToken "', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.user_parcel_templates.delete(user_parcel_template_object_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.userParcelTemplates.delete("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.UserParcelTemplates.DeleteAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->delete(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteUserParcelTemplateResponse res = sdk.userParcelTemplates().delete()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -618,23 +781,12 @@ async def delete_async( return if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def get( self, @@ -644,7 +796,7 @@ def get( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Retrieves a user parcel template Returns the parcel template information for a specific user parcel @@ -686,6 +838,7 @@ def get( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -699,39 +852,62 @@ def get( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "CLI", + "lang": "cURL", + "source": 'curl /user-parcel-templates/{UserParcelTemplateToken} \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.get(user_parcel_template_object_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.GetAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->get(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetUserParcelTemplateResponse res = sdk.userParcelTemplates().get()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def get_async( self, @@ -741,7 +917,7 @@ async def get_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Retrieves a user parcel template Returns the parcel template information for a specific user parcel @@ -783,6 +959,7 @@ async def get_async( shippo_api_version=self.sdk_configuration.globals.shippo_api_version, ), security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -796,39 +973,62 @@ async def get_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="GetUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "CLI", + "lang": "cURL", + "source": 'curl /user-parcel-templates/{UserParcelTemplateToken} \\\n -H "Authorization: ShippoToken " \\\n -H "Content-Type: application/json"', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.get(user_parcel_template_object_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.get("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.GetAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08"\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->userParcelTemplates->get(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08'\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetUserParcelTemplateResponse res = sdk.userParcelTemplates().get()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) def update( self, @@ -844,7 +1044,7 @@ def update( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Update an existing user parcel template Updates an existing user parcel template. @@ -891,12 +1091,15 @@ def update( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.user_parcel_template_update_request, + request.user_parcel_template_update_request + if request is not None + else None, False, True, "json", Optional[components.UserParcelTemplateUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -910,39 +1113,62 @@ def update( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/user-parcel-templates/b958d3690bb04bb8b2986724872750f5 \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"\n -d \'{\n "name": "My Custom Template",\n "length": "10",\n "width": "8",\n "height": "6",\n "distance_unit": "in",\n "weight": "12",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.update(user_parcel_template_object_id='', user_parcel_template_update_request=components.UserParcelTemplateUpdateRequest(\n distance_unit=components.DistanceUnitEnum.IN,\n height='6',\n length='10',\n name='My Custom Template',\n weight='12',\n weight_unit=components.WeightUnitEnum.LB,\n width='8',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.update("", {\n distanceUnit: "in",\n height: "6",\n length: "10",\n name: "My Custom Template",\n weight: "12",\n weightUnit: "lb",\n width: "8",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.UpdateAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08",\n userParcelTemplateUpdateRequest: new UserParcelTemplateUpdateRequest() {\n DistanceUnit = DistanceUnitEnum.In,\n Height = "6",\n Length = "10",\n Name = "My Custom Template",\n Weight = "12",\n WeightUnit = WeightUnitEnum.Lb,\n Width = "8",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$userParcelTemplateUpdateRequest = new Components\\UserParcelTemplateUpdateRequest(\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '6',\n length: '10',\n name: 'My Custom Template',\n weight: '12',\n weightUnit: Components\\WeightUnitEnum::Lb,\n width: '8',\n);\n\n$response = $sdk->userParcelTemplates->update(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08',\n userParcelTemplateUpdateRequest: $userParcelTemplateUpdateRequest\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateUpdateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.UpdateUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateUserParcelTemplateResponse res = sdk.userParcelTemplates().update()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .userParcelTemplateUpdateRequest(UserParcelTemplateUpdateRequest.builder()\n .distanceUnit(DistanceUnitEnum.IN)\n .height("6")\n .length("10")\n .name("My Custom Template")\n .width("8")\n .weight("12")\n .weightUnit(WeightUnitEnum.LB)\n .build())\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) async def update_async( self, @@ -958,7 +1184,7 @@ async def update_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.UserParcelTemplate]: + ) -> components.UserParcelTemplate: r"""Update an existing user parcel template Updates an existing user parcel template. @@ -1005,12 +1231,15 @@ async def update_async( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.user_parcel_template_update_request, + request.user_parcel_template_update_request + if request is not None + else None, False, True, "json", Optional[components.UserParcelTemplateUpdateRequest], ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -1024,36 +1253,59 @@ async def update_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="UpdateUserParcelTemplate", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["User Parcel Templates"], + extensions={ + "x-codeSamples": [ + { + "label": "cURL", + "lang": "cURL", + "source": 'curl https://api.goshippo.com/user-parcel-templates/b958d3690bb04bb8b2986724872750f5 \\\n-H "Authorization: ShippoToken " \\\n-H "Content-Type: application/json"\n -d \'{\n "name": "My Custom Template",\n "length": "10",\n "width": "8",\n "height": "6",\n "distance_unit": "in",\n "weight": "12",\n "weight_unit": "lb"\n }\'', + }, + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.user_parcel_templates.update(user_parcel_template_object_id='', user_parcel_template_update_request=components.UserParcelTemplateUpdateRequest(\n distance_unit=components.DistanceUnitEnum.IN,\n height='6',\n length='10',\n name='My Custom Template',\n weight='12',\n weight_unit=components.WeightUnitEnum.LB,\n width='8',\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.userParcelTemplates.update("", {\n distanceUnit: "in",\n height: "6",\n length: "10",\n name: "My Custom Template",\n weight: "12",\n weightUnit: "lb",\n width: "8",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.UserParcelTemplates.UpdateAsync(\n userParcelTemplateObjectId: "",\n shippoApiVersion: "2018-02-08",\n userParcelTemplateUpdateRequest: new UserParcelTemplateUpdateRequest() {\n DistanceUnit = DistanceUnitEnum.In,\n Height = "6",\n Length = "10",\n Name = "My Custom Template",\n Weight = "12",\n WeightUnit = WeightUnitEnum.Lb,\n Width = "8",\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$userParcelTemplateUpdateRequest = new Components\\UserParcelTemplateUpdateRequest(\n distanceUnit: Components\\DistanceUnitEnum::In,\n height: '6',\n length: '10',\n name: 'My Custom Template',\n weight: '12',\n weightUnit: Components\\WeightUnitEnum::Lb,\n width: '8',\n);\n\n$response = $sdk->userParcelTemplates->update(\n userParcelTemplateObjectId: '',\n shippoApiVersion: '2018-02-08',\n userParcelTemplateUpdateRequest: $userParcelTemplateUpdateRequest\n\n);\n\nif ($response->userParcelTemplate !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.DistanceUnitEnum;\nimport com.goshippo.shippo_sdk.models.components.UserParcelTemplateUpdateRequest;\nimport com.goshippo.shippo_sdk.models.components.WeightUnitEnum;\nimport com.goshippo.shippo_sdk.models.operations.UpdateUserParcelTemplateResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateUserParcelTemplateResponse res = sdk.userParcelTemplates().update()\n .userParcelTemplateObjectId("")\n .shippoApiVersion("2018-02-08")\n .userParcelTemplateUpdateRequest(UserParcelTemplateUpdateRequest.builder()\n .distanceUnit(DistanceUnitEnum.IN)\n .height("6")\n .length("10")\n .name("My Custom Template")\n .width("8")\n .weight("12")\n .weightUnit(WeightUnitEnum.LB)\n .build())\n .call();\n\n if (res.userParcelTemplate().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["400", "4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.UserParcelTemplate] - ) + return unmarshal_json_response(components.UserParcelTemplate, http_res) if utils.match_response(http_res, ["400", "4XX"], "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("Unexpected response received", http_res) diff --git a/src/shippo/utils/__init__.py b/src/shippo/utils/__init__.py index 3cded8fe..7af3b82c 100644 --- a/src/shippo/utils/__init__.py +++ b/src/shippo/utils/__init__.py @@ -1,50 +1,64 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from .annotations import get_discriminator -from .enums import OpenEnumMeta -from .headers import get_headers, get_response_headers -from .metadata import ( - FieldMetadata, - find_metadata, - FormMetadata, - HeaderMetadata, - MultipartFormMetadata, - PathParamMetadata, - QueryParamMetadata, - RequestMetadata, - SecurityMetadata, -) -from .queryparams import get_query_params -from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig -from .requestbodies import serialize_request_body, SerializedRequestBody -from .security import get_security -from .serializers import ( - get_pydantic_model, - marshal_json, - unmarshal, - unmarshal_json, - serialize_decimal, - serialize_float, - serialize_int, - stream_to_text, - stream_to_text_async, - stream_to_bytes, - stream_to_bytes_async, - validate_const, - validate_decimal, - validate_float, - validate_int, - validate_open_enum, -) -from .url import generate_url, template_url, remove_suffix -from .values import ( - get_global_from_env, - match_content_type, - match_status_codes, - match_response, - cast_partial, -) -from .logger import Logger, get_body_content, get_default_logger +from typing import Any, TYPE_CHECKING, Callable, TypeVar +import asyncio + +from .dynamic_imports import lazy_getattr, lazy_dir + +_T = TypeVar("_T") + + +async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: + """Run a synchronous function in a thread pool to avoid blocking the event loop.""" + return await asyncio.to_thread(func, *args) + + +if TYPE_CHECKING: + from .annotations import get_discriminator + from .datetimes import parse_datetime, parse_duration + from .enums import OpenEnumMeta + from .headers import get_headers, get_response_headers + from .metadata import ( + FieldMetadata, + find_metadata, + FormMetadata, + HeaderMetadata, + MultipartFormMetadata, + PathParamMetadata, + QueryParamMetadata, + RequestMetadata, + SecurityMetadata, + ) + from .queryparams import get_query_params + from .retries import BackoffStrategy, Retries, retry, retry_async, RetryConfig + from .requestbodies import serialize_request_body, SerializedRequestBody + from .security import get_security + from .serializers import ( + get_pydantic_model, + marshal_json, + unmarshal, + unmarshal_json, + serialize_decimal, + serialize_float, + serialize_int, + stream_to_text, + stream_to_text_async, + stream_to_bytes, + stream_to_bytes_async, + validate_const, + validate_decimal, + validate_float, + validate_int, + ) + from .url import generate_url, template_url, remove_suffix + from .values import ( + get_global_from_env, + match_content_type, + match_status_codes, + match_response, + cast_partial, + ) + from .logger import Logger, get_body_content, get_default_logger __all__ = [ "BackoffStrategy", @@ -55,6 +69,8 @@ "get_body_content", "get_default_logger", "get_discriminator", + "parse_datetime", + "parse_duration", "get_global_from_env", "get_headers", "get_pydantic_model", @@ -94,6 +110,68 @@ "validate_const", "validate_float", "validate_int", - "validate_open_enum", "cast_partial", ] + +_dynamic_imports: dict[str, str] = { + "BackoffStrategy": ".retries", + "FieldMetadata": ".metadata", + "find_metadata": ".metadata", + "FormMetadata": ".metadata", + "generate_url": ".url", + "get_body_content": ".logger", + "get_default_logger": ".logger", + "get_discriminator": ".annotations", + "parse_datetime": ".datetimes", + "parse_duration": ".datetimes", + "get_global_from_env": ".values", + "get_headers": ".headers", + "get_pydantic_model": ".serializers", + "get_query_params": ".queryparams", + "get_response_headers": ".headers", + "get_security": ".security", + "HeaderMetadata": ".metadata", + "Logger": ".logger", + "marshal_json": ".serializers", + "match_content_type": ".values", + "match_status_codes": ".values", + "match_response": ".values", + "MultipartFormMetadata": ".metadata", + "OpenEnumMeta": ".enums", + "PathParamMetadata": ".metadata", + "QueryParamMetadata": ".metadata", + "remove_suffix": ".url", + "Retries": ".retries", + "retry": ".retries", + "retry_async": ".retries", + "RetryConfig": ".retries", + "RequestMetadata": ".metadata", + "SecurityMetadata": ".metadata", + "serialize_decimal": ".serializers", + "serialize_float": ".serializers", + "serialize_int": ".serializers", + "serialize_request_body": ".requestbodies", + "SerializedRequestBody": ".requestbodies", + "stream_to_text": ".serializers", + "stream_to_text_async": ".serializers", + "stream_to_bytes": ".serializers", + "stream_to_bytes_async": ".serializers", + "template_url": ".url", + "unmarshal": ".serializers", + "unmarshal_json": ".serializers", + "validate_decimal": ".serializers", + "validate_const": ".serializers", + "validate_float": ".serializers", + "validate_int": ".serializers", + "cast_partial": ".values", +} + + +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) + + +def __dir__(): + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/shippo/utils/annotations.py b/src/shippo/utils/annotations.py index 387874ed..12e0aa4f 100644 --- a/src/shippo/utils/annotations.py +++ b/src/shippo/utils/annotations.py @@ -3,6 +3,7 @@ from enum import Enum from typing import Any, Optional + def get_discriminator(model: Any, fieldname: str, key: str) -> str: """ Recursively search for the discriminator attribute in a model. @@ -25,31 +26,54 @@ def get_field_discriminator(field: Any) -> Optional[str]: if isinstance(field, dict): if key in field: - return f'{field[key]}' + return f"{field[key]}" if hasattr(field, fieldname): attr = getattr(field, fieldname) if isinstance(attr, Enum): - return f'{attr.value}' - return f'{attr}' + return f"{attr.value}" + return f"{attr}" if hasattr(field, upper_fieldname): attr = getattr(field, upper_fieldname) if isinstance(attr, Enum): - return f'{attr.value}' - return f'{attr}' + return f"{attr.value}" + return f"{attr}" return None + def search_nested_discriminator(obj: Any) -> Optional[str]: + """Recursively search for discriminator in nested structures.""" + # First try direct field lookup + discriminator = get_field_discriminator(obj) + if discriminator is not None: + return discriminator + + # If it's a dict, search in nested values + if isinstance(obj, dict): + for value in obj.values(): + if isinstance(value, list): + # Search in list items + for item in value: + nested_discriminator = search_nested_discriminator(item) + if nested_discriminator is not None: + return nested_discriminator + elif isinstance(value, dict): + # Search in nested dict + nested_discriminator = search_nested_discriminator(value) + if nested_discriminator is not None: + return nested_discriminator + + return None if isinstance(model, list): for field in model: - discriminator = get_field_discriminator(field) + discriminator = search_nested_discriminator(field) if discriminator is not None: return discriminator - discriminator = get_field_discriminator(model) + discriminator = search_nested_discriminator(model) if discriminator is not None: return discriminator - raise ValueError(f'Could not find discriminator field {fieldname} in {model}') + raise ValueError(f"Could not find discriminator field {fieldname} in {model}") diff --git a/src/shippo/utils/datetimes.py b/src/shippo/utils/datetimes.py new file mode 100644 index 00000000..adad2476 --- /dev/null +++ b/src/shippo/utils/datetimes.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from datetime import datetime, timedelta +import sys + +from pydantic import TypeAdapter + + +def parse_datetime(datetime_string: str) -> datetime: + """ + Convert a RFC 3339 / ISO 8601 formatted string into a datetime object. + Python versions 3.11 and later support parsing RFC 3339 directly with + datetime.fromisoformat(), but for earlier versions, this function + encapsulates the necessary extra logic. + """ + # Python 3.11 and later can parse RFC 3339 directly + if sys.version_info >= (3, 11): + return datetime.fromisoformat(datetime_string) + + # For Python 3.10 and earlier, a common ValueError is trailing 'Z' suffix, + # so fix that upfront. + if datetime_string.endswith("Z"): + datetime_string = datetime_string[:-1] + "+00:00" + + return datetime.fromisoformat(datetime_string) + + +_DURATION_ADAPTER = TypeAdapter(timedelta) + + +def parse_duration(duration_string: str) -> timedelta: + """ + Convert an ISO 8601 duration string (e.g. "PT1H30M") into a timedelta. + The standard library has no ISO 8601 duration parser, so this delegates to + pydantic, which is already a runtime dependency of the SDK. + """ + return _DURATION_ADAPTER.validate_python(duration_string) diff --git a/src/shippo/utils/dynamic_imports.py b/src/shippo/utils/dynamic_imports.py new file mode 100644 index 00000000..673edf82 --- /dev/null +++ b/src/shippo/utils/dynamic_imports.py @@ -0,0 +1,54 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from importlib import import_module +import builtins +import sys + + +def dynamic_import(package, modname, retries=3): + """Import a module relative to package, retrying on KeyError from half-initialized modules.""" + for attempt in range(retries): + try: + return import_module(modname, package) + except KeyError: + sys.modules.pop(modname, None) + if attempt == retries - 1: + break + raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") + + +def lazy_getattr(attr_name, *, package, dynamic_imports, sub_packages=None): + """Module-level __getattr__ that lazily loads from a dynamic_imports mapping. + + Args: + attr_name: The attribute being looked up. + package: The caller's __package__ (for relative imports). + dynamic_imports: Dict mapping attribute names to relative module paths. + sub_packages: Optional list of subpackage names to lazy-load. + """ + module_name = dynamic_imports.get(attr_name) + if module_name is not None: + try: + module = dynamic_import(package, module_name) + return getattr(module, attr_name) + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + if sub_packages and attr_name in sub_packages: + return import_module(f".{attr_name}", package) + + raise AttributeError(f"module '{package}' has no attribute '{attr_name}'") + + +def lazy_dir(*, dynamic_imports, sub_packages=None): + """Module-level __dir__ that lists lazily-loadable attributes.""" + lazy_attrs = builtins.list(dynamic_imports.keys()) + if sub_packages: + lazy_attrs.extend(sub_packages) + return builtins.sorted(lazy_attrs) diff --git a/src/shippo/utils/enums.py b/src/shippo/utils/enums.py index c650b10c..3324e1bc 100644 --- a/src/shippo/utils/enums.py +++ b/src/shippo/utils/enums.py @@ -1,34 +1,134 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" import enum +import sys +from typing import Any + +from pydantic_core import core_schema class OpenEnumMeta(enum.EnumMeta): - def __call__( - cls, value, names=None, *, module=None, qualname=None, type=None, start=1 - ): - # The `type` kwarg also happens to be a built-in that pylint flags as - # redeclared. Safe to ignore this lint rule with this scope. - # pylint: disable=redefined-builtin - - if names is not None: - return super().__call__( - value, - names=names, - module=module, - qualname=qualname, - type=type, - start=start, + # The __call__ method `boundary` kwarg was added in 3.11 and must be present + # for pyright. Refer also: https://github.com/pylint-dev/pylint/issues/9622 + # pylint: disable=unexpected-keyword-arg + # The __call__ method `values` varg must be named for pyright. + # pylint: disable=keyword-arg-before-vararg + + if sys.version_info >= (3, 11): + def __call__( + cls, value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None + ): + # The `type` kwarg also happens to be a built-in that pylint flags as + # redeclared. Safe to ignore this lint rule with this scope. + # pylint: disable=redefined-builtin + + if names is not None: + return super().__call__( + value, + names=names, + *values, + module=module, + qualname=qualname, + type=type, + start=start, + boundary=boundary, + ) + + try: + return super().__call__( + value, + names=names, # pyright: ignore[reportArgumentType] + *values, + module=module, + qualname=qualname, + type=type, + start=start, + boundary=boundary, + ) + except ValueError: + return value + else: + def __call__( + cls, value, names=None, *, module=None, qualname=None, type=None, start=1 + ): + # The `type` kwarg also happens to be a built-in that pylint flags as + # redeclared. Safe to ignore this lint rule with this scope. + # pylint: disable=redefined-builtin + + if names is not None: + return super().__call__( + value, + names=names, + module=module, + qualname=qualname, + type=type, + start=start, + ) + + try: + return super().__call__( + value, + names=names, # pyright: ignore[reportArgumentType] + module=module, + qualname=qualname, + type=type, + start=start, + ) + except ValueError: + return value + + def __new__(mcs, name, bases, namespace, **kwargs): + cls = super().__new__(mcs, name, bases, namespace, **kwargs) + + # Add __get_pydantic_core_schema__ to make open enums work correctly + # in union discrimination. In strict mode (used by Pydantic for unions), + # only known enum values match. In lax mode, unknown values are accepted. + def __get_pydantic_core_schema__( + cls_inner: Any, _source_type: Any, _handler: Any + ) -> core_schema.CoreSchema: + # Create a validator that only accepts known enum values (for strict mode) + def validate_strict(v: Any) -> Any: + if isinstance(v, cls_inner): + return v + # Use the parent EnumMeta's __call__ which raises ValueError for unknown values + return enum.EnumMeta.__call__(cls_inner, v) + + # Create a lax validator that accepts unknown values + def validate_lax(v: Any) -> Any: + if isinstance(v, cls_inner): + return v + try: + return enum.EnumMeta.__call__(cls_inner, v) + except ValueError: + # Return the raw value for unknown enum values + return v + + # Determine the base type schema (str or int) + is_int_enum = False + for base in cls_inner.__mro__: + if base is int: + is_int_enum = True + break + if base is str: + break + + base_schema = ( + core_schema.int_schema() + if is_int_enum + else core_schema.str_schema() ) - try: - return super().__call__( - value, - names=names, # pyright: ignore[reportArgumentType] - module=module, - qualname=qualname, - type=type, - start=start, + # Use lax_or_strict_schema: + # - strict mode: only known enum values match (raises ValueError for unknown) + # - lax mode: accept any value, return enum member or raw value + return core_schema.lax_or_strict_schema( + lax_schema=core_schema.chain_schema( + [base_schema, core_schema.no_info_plain_validator_function(validate_lax)] + ), + strict_schema=core_schema.chain_schema( + [base_schema, core_schema.no_info_plain_validator_function(validate_strict)] + ), ) - except ValueError: - return value + + setattr(cls, "__get_pydantic_core_schema__", classmethod(__get_pydantic_core_schema__)) + return cls diff --git a/src/shippo/utils/eventstreaming.py b/src/shippo/utils/eventstreaming.py index 74a63f75..a8d4fe5c 100644 --- a/src/shippo/utils/eventstreaming.py +++ b/src/shippo/utils/eventstreaming.py @@ -2,9 +2,12 @@ import re import json +from dataclasses import dataclass, asdict from typing import ( + Any, Callable, Generic, + List, TypeVar, Optional, Generator, @@ -17,214 +20,299 @@ class EventStream(Generic[T]): + # Holds a reference to the SDK client to avoid it being garbage collected + # and cause termination of the underlying httpx client. + client_ref: Optional[object] response: httpx.Response generator: Generator[T, None, None] + _closed: bool def __init__( self, response: httpx.Response, decoder: Callable[[str], T], sentinel: Optional[str] = None, + client_ref: Optional[object] = None, + data_required: bool = True, ): self.response = response - self.generator = stream_events(response, decoder, sentinel) + self.generator = stream_events( + response, decoder, sentinel, data_required=data_required + ) + self.client_ref = client_ref + self._closed = False def __iter__(self): return self def __next__(self): + if self._closed: + raise StopIteration return next(self.generator) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): + self.close() + + def close(self): + self._closed = True self.response.close() class EventStreamAsync(Generic[T]): + # Holds a reference to the SDK client to avoid it being garbage collected + # and cause termination of the underlying httpx client. + client_ref: Optional[object] response: httpx.Response generator: AsyncGenerator[T, None] + _closed: bool def __init__( self, response: httpx.Response, decoder: Callable[[str], T], sentinel: Optional[str] = None, + client_ref: Optional[object] = None, + data_required: bool = True, ): self.response = response - self.generator = stream_events_async(response, decoder, sentinel) + self.generator = stream_events_async( + response, decoder, sentinel, data_required=data_required + ) + self.client_ref = client_ref + self._closed = False def __aiter__(self): return self async def __anext__(self): + if self._closed: + raise StopAsyncIteration return await self.generator.__anext__() async def __aenter__(self): return self async def __aexit__(self, exc_type, exc_val, exc_tb): + await self.close() + + async def close(self): + self._closed = True await self.response.aclose() +@dataclass class ServerEvent: id: Optional[str] = None event: Optional[str] = None - data: Optional[str] = None + data: Any = None retry: Optional[int] = None MESSAGE_BOUNDARIES = [ b"\r\n\r\n", - b"\n\n", + b"\r\n\r", + b"\r\n\n", + b"\r\r\n", + b"\n\r\n", b"\r\r", + b"\n\r", + b"\n\n", ] +MAX_BOUNDARY_LEN = max(len(b) for b in MESSAGE_BOUNDARIES) + +UTF8_BOM = b"\xef\xbb\xbf" async def stream_events_async( response: httpx.Response, decoder: Callable[[str], T], sentinel: Optional[str] = None, + data_required: bool = True, ) -> AsyncGenerator[T, None]: - buffer = bytearray() - position = 0 - discard = False - async for chunk in response.aiter_bytes(): - # We've encountered the sentinel value and should no longer process - # incoming data. Instead we throw new data away until the server closes - # the connection. - if discard: - continue - - buffer += chunk - for i in range(position, len(buffer)): - char = buffer[i : i + 1] - seq: Optional[bytes] = None - if char in [b"\r", b"\n"]: - for boundary in MESSAGE_BOUNDARIES: - seq = _peek_sequence(i, buffer, boundary) - if seq is not None: - break - if seq is None: - continue - - block = buffer[position:i] - position = i + len(seq) - event, discard = _parse_event(block, decoder, sentinel) - if event is not None: - yield event - - if position > 0: - buffer = buffer[position:] - position = 0 - - event, discard = _parse_event(buffer, decoder, sentinel) - if event is not None: - yield event + try: + buffer = bytearray() + position = 0 + event_id: Optional[str] = None + async for chunk in response.aiter_bytes(): + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] + old_len = len(buffer) + buffer += chunk + search_start = max(position, old_len - MAX_BOUNDARY_LEN + 1) + for i in range(search_start, len(buffer)): + char = buffer[i : i + 1] + seq: Optional[bytes] = None + if char in [b"\r", b"\n"]: + for boundary in MESSAGE_BOUNDARIES: + seq = _peek_sequence(i, buffer, boundary) + if seq is not None: + break + if seq is None: + continue + + block = buffer[position:i] + position = i + len(seq) + event, discard, event_id = _parse_event( + raw=block, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + if discard: + return + + if position > 0: + buffer = buffer[position:] + position = 0 + + event, discard, _ = _parse_event( + raw=buffer, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + finally: + await response.aclose() def stream_events( response: httpx.Response, decoder: Callable[[str], T], sentinel: Optional[str] = None, + data_required: bool = True, ) -> Generator[T, None, None]: - buffer = bytearray() - position = 0 - discard = False - for chunk in response.iter_bytes(): - # We've encountered the sentinel value and should no longer process - # incoming data. Instead we throw new data away until the server closes - # the connection. - if discard: - continue - - buffer += chunk - for i in range(position, len(buffer)): - char = buffer[i : i + 1] - seq: Optional[bytes] = None - if char in [b"\r", b"\n"]: - for boundary in MESSAGE_BOUNDARIES: - seq = _peek_sequence(i, buffer, boundary) - if seq is not None: - break - if seq is None: - continue - - block = buffer[position:i] - position = i + len(seq) - event, discard = _parse_event(block, decoder, sentinel) - if event is not None: - yield event - - if position > 0: - buffer = buffer[position:] - position = 0 - - event, discard = _parse_event(buffer, decoder, sentinel) - if event is not None: - yield event + try: + buffer = bytearray() + position = 0 + event_id: Optional[str] = None + for chunk in response.iter_bytes(): + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] + old_len = len(buffer) + buffer += chunk + search_start = max(position, old_len - MAX_BOUNDARY_LEN + 1) + for i in range(search_start, len(buffer)): + char = buffer[i : i + 1] + seq: Optional[bytes] = None + if char in [b"\r", b"\n"]: + for boundary in MESSAGE_BOUNDARIES: + seq = _peek_sequence(i, buffer, boundary) + if seq is not None: + break + if seq is None: + continue + + block = buffer[position:i] + position = i + len(seq) + event, discard, event_id = _parse_event( + raw=block, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + if discard: + return + + if position > 0: + buffer = buffer[position:] + position = 0 + + event, discard, _ = _parse_event( + raw=buffer, + decoder=decoder, + sentinel=sentinel, + event_id=event_id, + data_required=data_required, + ) + if event is not None: + yield event + finally: + response.close() def _parse_event( - raw: bytearray, decoder: Callable[[str], T], sentinel: Optional[str] = None -) -> Tuple[Optional[T], bool]: + *, + raw: bytearray, + decoder: Callable[[str], T], + sentinel: Optional[str] = None, + event_id: Optional[str] = None, + data_required: bool = True, +) -> Tuple[Optional[T], bool, Optional[str]]: block = raw.decode() lines = re.split(r"\r?\n|\r", block) publish = False event = ServerEvent() - data = "" + data_parts: List[str] = [] for line in lines: if not line: continue delim = line.find(":") - if delim <= 0: + if delim == 0: continue - field = line[0:delim] - value = line[delim + 1 :] if delim < len(line) - 1 else "" - if len(value) and value[0] == " ": - value = value[1:] + field = line + value = "" + if delim > 0: + field = line[0:delim] + value = line[delim + 1 :] if delim < len(line) - 1 else "" + if len(value) and value[0] == " ": + value = value[1:] if field == "event": event.event = value publish = True elif field == "data": - data += value + "\n" + data_parts.append(value) publish = True elif field == "id": - event.id = value publish = True + if "\x00" not in value: + event_id = value elif field == "retry": - event.retry = int(value) if value.isdigit() else None + if value.isdigit(): + event.retry = int(value) publish = True - if sentinel and data == f"{sentinel}\n": - return None, True + event.id = event_id + has_data = bool(data_parts) + data = "\n".join(data_parts) - if data: - data = data[:-1] - event.data = data + if sentinel and has_data and data == sentinel: + return None, True, event_id - data_is_primitive = ( - data.isnumeric() or data == "true" or data == "false" or data == "null" - ) - data_is_json = ( - data.startswith("{") or data.startswith("[") or data.startswith('"') - ) + # Skip data-less events when data is required + if not has_data and publish and data_required: + return None, False, event_id - if data_is_primitive or data_is_json: - try: - event.data = json.loads(data) - except Exception: - pass + if has_data: + try: + event.data = json.loads(data) + except json.JSONDecodeError: + event.data = data out = None if publish: - out = decoder(json.dumps(event.__dict__)) - - return out, False + out_dict = { + k: v + for k, v in asdict(event).items() + if v is not None or (k == "data" and has_data) + } + out = decoder(json.dumps(out_dict)) + + return out, False, event_id def _peek_sequence(position: int, buffer: bytearray, sequence: bytes): diff --git a/src/shippo/utils/forms.py b/src/shippo/utils/forms.py index 0472aba8..fdf0dc9b 100644 --- a/src/shippo/utils/forms.py +++ b/src/shippo/utils/forms.py @@ -1,5 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +import io from typing import ( Any, Dict, @@ -86,11 +87,43 @@ def _populate_form( return form +def _extract_file_properties(file_obj: Any) -> Tuple[str, Any, Any]: + """Extract file name, content, and content type from a file object.""" + file_fields: Dict[str, FieldInfo] = file_obj.__class__.model_fields + + file_name = "" + content = None + content_type = None + + for file_field_name in file_fields: + file_field = file_fields[file_field_name] + + file_metadata = find_field_metadata(file_field, MultipartFormMetadata) + if file_metadata is None: + continue + + if file_metadata.content: + content = getattr(file_obj, file_field_name, None) + if isinstance(content, io.TextIOBase): + content = content.read().encode( + getattr(content, "encoding", None) or "utf-8" + ) + elif file_field_name == "content_type": + content_type = getattr(file_obj, file_field_name, None) + else: + file_name = getattr(file_obj, file_field_name) + + if file_name == "" or content is None: + raise ValueError("invalid multipart/form-data file") + + return file_name, content, content_type + + def serialize_multipart_form( media_type: str, request: Any -) -> Tuple[str, Dict[str, Any], Dict[str, Any]]: +) -> Tuple[str, Dict[str, Any], List[Tuple[str, Any]]]: form: Dict[str, Any] = {} - files: Dict[str, Any] = {} + files: List[Tuple[str, Any]] = [] if not isinstance(request, BaseModel): raise TypeError("invalid request body type") @@ -112,38 +145,41 @@ def serialize_multipart_form( f_name = field.alias if field.alias else name if field_metadata.file: - file_fields: Dict[str, FieldInfo] = val.__class__.model_fields - - file_name = "" - content = None - content_type = None + if isinstance(val, List): + # Handle array of files + array_field_name = f_name + "[]" + for file_obj in val: + if not _is_set(file_obj): + continue - for file_field_name in file_fields: - file_field = file_fields[file_field_name] + file_name, content, content_type = _extract_file_properties( + file_obj + ) - file_metadata = find_field_metadata(file_field, MultipartFormMetadata) - if file_metadata is None: - continue + if content_type is not None: + files.append( + (array_field_name, (file_name, content, content_type)) + ) + else: + files.append((array_field_name, (file_name, content))) + else: + # Handle single file + file_name, content, content_type = _extract_file_properties(val) - if file_metadata.content: - content = getattr(val, file_field_name, None) - elif file_field_name == "content_type": - content_type = getattr(val, file_field_name, None) + if content_type is not None: + files.append((f_name, (file_name, content, content_type))) else: - file_name = getattr(val, file_field_name) - - if file_name == "" or content is None: - raise ValueError("invalid multipart/form-data file") - - if content_type is not None: - files[f_name] = (file_name, content, content_type) - else: - files[f_name] = (file_name, content) + files.append((f_name, (file_name, content))) elif field_metadata.json: - files[f_name] = ( - None, - marshal_json(val, request_field_types[name]), - "application/json", + files.append( + ( + f_name, + ( + None, + marshal_json(val, request_field_types[name]), + "application/json", + ), + ) ) else: if isinstance(val, List): @@ -154,7 +190,8 @@ def serialize_multipart_form( continue values.append(_val_to_string(value)) - form[f_name + "[]"] = values + array_field_name = f_name + "[]" + form[array_field_name] = values else: form[f_name] = _val_to_string(val) return media_type, form, files diff --git a/src/shippo/utils/metadata.py b/src/shippo/utils/metadata.py index 173b3e5c..5abddd58 100644 --- a/src/shippo/utils/metadata.py +++ b/src/shippo/utils/metadata.py @@ -15,6 +15,7 @@ class SecurityMetadata: scheme_type: Optional[str] = None sub_type: Optional[str] = None field_name: Optional[str] = None + composite: bool = False def get_field_name(self, default: str) -> str: return self.field_name or default diff --git a/src/shippo/utils/queryparams.py b/src/shippo/utils/queryparams.py index 37a6e7f9..c04e0db8 100644 --- a/src/shippo/utils/queryparams.py +++ b/src/shippo/utils/queryparams.py @@ -27,12 +27,13 @@ def get_query_params( query_params: Any, gbls: Optional[Any] = None, + allow_empty_value: Optional[List[str]] = None, ) -> Dict[str, List[str]]: params: Dict[str, List[str]] = {} - globals_already_populated = _populate_query_params(query_params, gbls, params, []) + globals_already_populated = _populate_query_params(query_params, gbls, params, [], allow_empty_value) if _is_set(gbls): - _populate_query_params(gbls, None, params, globals_already_populated) + _populate_query_params(gbls, None, params, globals_already_populated, allow_empty_value) return params @@ -42,6 +43,7 @@ def _populate_query_params( gbls: Any, query_param_values: Dict[str, List[str]], skip_fields: List[str], + allow_empty_value: Optional[List[str]] = None, ) -> List[str]: globals_already_populated: List[str] = [] @@ -69,6 +71,16 @@ def _populate_query_params( globals_already_populated.append(name) f_name = field.alias if field.alias is not None else name + + allow_empty_set = set(allow_empty_value or []) + should_include_empty = f_name in allow_empty_set and ( + value is None or value == [] or value == "" + ) + + if should_include_empty: + query_param_values[f_name] = [""] + continue + serialization = metadata.serialization if serialization is not None: serialized_parms = _get_serialized_params( diff --git a/src/shippo/utils/requestbodies.py b/src/shippo/utils/requestbodies.py index d5240dd5..591415af 100644 --- a/src/shippo/utils/requestbodies.py +++ b/src/shippo/utils/requestbodies.py @@ -44,15 +44,16 @@ def serialize_request_body( serialized_request_body = SerializedRequestBody(media_type) - if re.match(r"(application|text)\/.*?\+*json.*", media_type) is not None: + if re.match(r"^(application|text)\/([^+]+\+)*json.*", media_type) is not None: serialized_request_body.content = marshal_json(request_body, request_body_type) - elif re.match(r"multipart\/.*", media_type) is not None: + + elif re.match(r"^multipart\/.*", media_type) is not None: ( serialized_request_body.media_type, serialized_request_body.data, serialized_request_body.files, ) = serialize_multipart_form(media_type, request_body) - elif re.match(r"application\/x-www-form-urlencoded.*", media_type) is not None: + elif re.match(r"^application\/x-www-form-urlencoded.*", media_type) is not None: serialized_request_body.data = serialize_form_data(request_body) elif isinstance(request_body, (bytes, bytearray, io.BytesIO, io.BufferedReader)): serialized_request_body.content = request_body diff --git a/src/shippo/utils/retries.py b/src/shippo/utils/retries.py index 4d608671..ca7b59ef 100644 --- a/src/shippo/utils/retries.py +++ b/src/shippo/utils/retries.py @@ -3,16 +3,21 @@ import asyncio import random import time -from typing import List +from datetime import datetime +from email.utils import parsedate_to_datetime +from typing import List, Optional import httpx class BackoffStrategy: + """Exponential backoff strategy configuration.""" + initial_interval: int max_interval: int exponent: float max_elapsed_time: int + jitter_ms: Optional[int] def __init__( self, @@ -20,24 +25,63 @@ def __init__( max_interval: int, exponent: float, max_elapsed_time: int, + jitter_ms: Optional[int] = None, ): + """Initialize a backoff strategy. + + Args: + initial_interval: Initial retry interval in milliseconds. + max_interval: Maximum retry interval in milliseconds. + exponent: Base of the exponential backoff; the interval grows as + ``initial_interval * exponent ** retries``. + max_elapsed_time: Maximum total elapsed time in milliseconds. + jitter_ms: Additive jitter bound in milliseconds. When set, adds a random + value in ``[0, jitter_ms]`` to each computed backoff interval (default + ``+[0, 1s]``). + + Note: + When a response carries a ``Retry-After`` or ``retry-after-ms`` header, + that delay is used as-is and the sleep-shaping parameters + (``initial_interval``, ``max_interval``, ``exponent``, ``jitter_ms``) are + ignored for that attempt. + """ + if jitter_ms is not None and jitter_ms < 0: + raise ValueError("jitter_ms must be >= 0") self.initial_interval = initial_interval self.max_interval = max_interval self.exponent = exponent self.max_elapsed_time = max_elapsed_time + self.jitter_ms = jitter_ms class RetryConfig: + """Runtime retry configuration.""" + strategy: str backoff: BackoffStrategy retry_connection_errors: bool + status_codes_override: Optional[List[str]] def __init__( - self, strategy: str, backoff: BackoffStrategy, retry_connection_errors: bool + self, + strategy: str, + backoff: BackoffStrategy, + retry_connection_errors: bool, + status_codes_override: Optional[List[str]] = None, ): + """Initialize a retry configuration. + + Args: + strategy: Retry strategy: ``"none"`` or ``"backoff"``. + backoff: Backoff parameters. + retry_connection_errors: Whether to also retry transport-level connection errors. + status_codes_override: Retryable HTTP status codes that take precedence over the + per-operation defaults when non-empty. + """ self.strategy = strategy self.backoff = backoff self.retry_connection_errors = retry_connection_errors + self.status_codes_override = status_codes_override class Retries: @@ -46,14 +90,16 @@ class Retries: def __init__(self, config: RetryConfig, status_codes: List[str]): self.config = config - self.status_codes = status_codes + self.status_codes = config.status_codes_override or status_codes class TemporaryError(Exception): response: httpx.Response + retry_after: Optional[int] def __init__(self, response: httpx.Response): self.response = response + self.retry_after = _parse_retry_after_header(response) class PermanentError(Exception): @@ -63,6 +109,83 @@ def __init__(self, inner: Exception): self.inner = inner +def _parse_retry_after_header(response: httpx.Response) -> Optional[int]: + """Parse Retry-After header from response. + + Returns: + Retry interval in milliseconds, or None if header is missing or invalid. + """ + retry_after_header = response.headers.get("retry-after") + if not retry_after_header: + return None + + try: + seconds = float(retry_after_header) + return round(seconds * 1000) + except ValueError: + pass + + try: + retry_date = parsedate_to_datetime(retry_after_header) + delta = (retry_date - datetime.now(retry_date.tzinfo)).total_seconds() + return round(max(0, delta) * 1000) + except (ValueError, TypeError): + pass + + return None + + +def _parse_retry_after_ms_header(response: httpx.Response) -> Optional[int]: + retry_after_ms_header = response.headers.get("retry-after-ms") + if not retry_after_ms_header: + return None + + try: + milliseconds = float(retry_after_ms_header) + if milliseconds >= 0: + return round(milliseconds) + except (OverflowError, ValueError): + pass + + return None + + +def _get_sleep_interval( + exception: Exception, + initial_interval: int, + max_interval: int, + exponent: float, + retries: int, + jitter_ms: Optional[int] = None, +) -> float: + """Get sleep interval for retry with exponential backoff. + + Args: + exception: The exception that triggered the retry. + initial_interval: Initial retry interval in milliseconds. + max_interval: Maximum retry interval in milliseconds. + exponent: Base for exponential backoff calculation. + retries: Current retry attempt count. + jitter_ms: Additive jitter bound in ms; see ``BackoffStrategy.jitter_ms``. + + Returns: + Sleep interval in seconds. + """ + if ( + isinstance(exception, TemporaryError) + and exception.retry_after is not None + and exception.retry_after > 0 + ): + return exception.retry_after / 1000 + + sleep = (initial_interval / 1000) * exponent**retries + if jitter_ms is not None: + sleep += random.uniform(0, jitter_ms / 1000) + else: + sleep += random.uniform(0, 1) + return min(sleep, max_interval / 1000) + + def retry(func, retries: Retries): if retries.config.strategy == "backoff": @@ -84,12 +207,7 @@ def do_request() -> httpx.Response: if res.status_code == parsed_code: raise TemporaryError(res) - except httpx.ConnectError as exception: - if retries.config.retry_connection_errors: - raise - - raise PermanentError(exception) from exception - except httpx.TimeoutException as exception: + except (httpx.NetworkError, httpx.TimeoutException) as exception: if retries.config.retry_connection_errors: raise @@ -107,6 +225,7 @@ def do_request() -> httpx.Response: retries.config.backoff.max_interval, retries.config.backoff.exponent, retries.config.backoff.max_elapsed_time, + retries.config.backoff.jitter_ms, ) return func() @@ -133,12 +252,7 @@ async def do_request() -> httpx.Response: if res.status_code == parsed_code: raise TemporaryError(res) - except httpx.ConnectError as exception: - if retries.config.retry_connection_errors: - raise - - raise PermanentError(exception) from exception - except httpx.TimeoutException as exception: + except (httpx.NetworkError, httpx.TimeoutException) as exception: if retries.config.retry_connection_errors: raise @@ -156,6 +270,7 @@ async def do_request() -> httpx.Response: retries.config.backoff.max_interval, retries.config.backoff.exponent, retries.config.backoff.max_elapsed_time, + retries.config.backoff.jitter_ms, ) return await func() @@ -167,6 +282,7 @@ def retry_with_backoff( max_interval=60000, exponent=1.5, max_elapsed_time=3600000, + jitter_ms=None, ): start = round(time.time() * 1000) retries = 0 @@ -183,8 +299,19 @@ def retry_with_backoff( return exception.response raise - sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1) - sleep = min(sleep, max_interval / 1000) + + if isinstance(exception, TemporaryError): + retry_after_ms = _parse_retry_after_ms_header(exception.response) + if retry_after_ms is not None: + exception.retry_after = retry_after_ms + sleep = _get_sleep_interval( + exception, + initial_interval, + max_interval, + exponent, + retries, + jitter_ms=jitter_ms, + ) time.sleep(sleep) retries += 1 @@ -195,6 +322,7 @@ async def retry_with_backoff_async( max_interval=60000, exponent=1.5, max_elapsed_time=3600000, + jitter_ms=None, ): start = round(time.time() * 1000) retries = 0 @@ -211,7 +339,18 @@ async def retry_with_backoff_async( return exception.response raise - sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1) - sleep = min(sleep, max_interval / 1000) + + if isinstance(exception, TemporaryError): + retry_after_ms = _parse_retry_after_ms_header(exception.response) + if retry_after_ms is not None: + exception.retry_after = retry_after_ms + sleep = _get_sleep_interval( + exception, + initial_interval, + max_interval, + exponent, + retries, + jitter_ms=jitter_ms, + ) await asyncio.sleep(sleep) retries += 1 diff --git a/src/shippo/utils/security.py b/src/shippo/utils/security.py index 295a3f40..42d8d78e 100644 --- a/src/shippo/utils/security.py +++ b/src/shippo/utils/security.py @@ -5,6 +5,7 @@ Any, Dict, List, + Optional, Tuple, ) from pydantic import BaseModel @@ -16,7 +17,9 @@ ) -def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: +def get_security( + security: Any, allowed_fields: Optional[List[str]] = None +) -> Tuple[Dict[str, str], Dict[str, List[str]]]: headers: Dict[str, str] = {} query_params: Dict[str, List[str]] = {} @@ -27,7 +30,14 @@ def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: raise TypeError("security must be a pydantic model") sec_fields: Dict[str, FieldInfo] = security.__class__.model_fields - for name in sec_fields: + sec_field_names = ( + list(sec_fields.keys()) if allowed_fields is None else allowed_fields + ) + + for name in sec_field_names: + if name not in sec_fields: + continue + sec_field = sec_fields[name] value = getattr(security, name) @@ -49,6 +59,9 @@ def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: else: _parse_security_scheme(headers, query_params, metadata, name, value) + if not metadata.composite: + return headers, query_params + return headers, query_params @@ -59,15 +72,24 @@ def _parse_security_option( raise TypeError("security option must be a pydantic model") opt_fields: Dict[str, FieldInfo] = option.__class__.model_fields + for name in opt_fields: opt_field = opt_fields[name] metadata = find_field_metadata(opt_field, SecurityMetadata) if metadata is None or not metadata.scheme: continue - _parse_security_scheme( - headers, query_params, metadata, name, getattr(option, name) - ) + + value = getattr(option, name) + if ( + metadata.scheme_type == "http" + and metadata.sub_type == "basic" + and not isinstance(value, BaseModel) + ): + _parse_basic_auth_scheme(headers, option) + return + + _parse_security_scheme(headers, query_params, metadata, name, value) def _parse_security_scheme( @@ -135,6 +157,8 @@ def _parse_security_scheme_value( elif scheme_type == "http": if sub_type == "bearer": headers[header_name] = _apply_bearer(value) + elif sub_type == "basic": + headers[header_name] = value elif sub_type == "custom": return else: diff --git a/src/shippo/utils/serializers.py b/src/shippo/utils/serializers.py index baa41fbd..1031ed93 100644 --- a/src/shippo/utils/serializers.py +++ b/src/shippo/utils/serializers.py @@ -1,21 +1,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from decimal import Decimal +import functools import json -from typing import Any, Dict, List, Union, get_args -import httpx +import typing +from typing import Any, Dict, Iterable, List, Mapping, Tuple, Union, get_args +import typing_extensions from typing_extensions import get_origin + +import httpx from pydantic import ConfigDict, create_model from pydantic_core import from_json -from typing_inspection.typing_objects import is_union from ..types.basemodel import BaseModel, Nullable, OptionalNullable, Unset def serialize_decimal(as_str: bool): def serialize(d): - # Optional[T] is a Union[T, None] - if is_union(type(d)) and type(None) in get_args(type(d)) and d is None: + if d is None: return None if isinstance(d, Unset): return d @@ -43,8 +45,7 @@ def validate_decimal(d): def serialize_float(as_str: bool): def serialize(f): - # Optional[T] is a Union[T, None] - if is_union(type(f)) and type(None) in get_args(type(f)) and f is None: + if f is None: return None if isinstance(f, Unset): return f @@ -72,8 +73,7 @@ def validate_float(f): def serialize_int(as_str: bool): def serialize(i): - # Optional[T] is a Union[T, None] - if is_union(type(i)) and type(None) in get_args(type(i)) and i is None: + if i is None: return None if isinstance(i, Unset): return i @@ -99,30 +99,9 @@ def validate_int(b): return int(b) -def validate_open_enum(is_int: bool): - def validate(e): - if e is None: - return None - - if isinstance(e, Unset): - return e - - if is_int: - if not isinstance(e, int): - raise ValueError("Expected int") - else: - if not isinstance(e, str): - raise ValueError("Expected string") - - return e - - return validate - - def validate_const(v): def validate(c): - # Optional[T] is a Union[T, None] - if is_union(type(c)) and type(None) in get_args(type(c)) and c is None: + if c is None: return None if v != c: @@ -134,10 +113,12 @@ def validate(c): def unmarshal_json(raw, typ: Any) -> Any: - return unmarshal(from_json(raw), typ) + return unmarshal(from_json(raw), typ, coerce_iterables=False) -def unmarshal(val, typ: Any) -> Any: +def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: + if coerce_iterables: + val = _coerce_iterables_for_type(val, typ) unmarshaller = create_model( "Unmarshaller", body=(typ, ...), @@ -185,6 +166,15 @@ def is_nullable(field): return False +def is_union(obj: object) -> bool: + """ + Returns True if the given object is a typing.Union or typing_extensions.Union. + """ + return any( + obj is typing_obj for typing_obj in _get_typing_objects_by_name_of("Union") + ) + + def stream_to_text(stream: httpx.Response) -> str: return "".join(stream.iter_text()) @@ -205,9 +195,88 @@ def get_pydantic_model(data: Any, typ: Any) -> Any: if not _contains_pydantic_model(data): return unmarshal(data, typ) + return _coerce_iterables_for_type(data, typ) + + +def _coerce_iterables_for_type(data: Any, typ: Any) -> Any: + if data is None or isinstance(data, (BaseModel, Unset)): + return data + + typ = _resolve_type_alias(typ) + origin = get_origin(typ) + + if _is_annotated_type(origin): + args = get_args(typ) + return _coerce_iterables_for_type(data, args[0]) if args else data + + if is_union(origin): + for arg in (arg for arg in get_args(typ) if arg is not type(None)): + coerced = _coerce_iterables_for_type(data, arg) + if coerced is not data: + return coerced + return data + + if _is_list_type(typ): + item_type = get_args(typ)[0] if get_args(typ) else Any + if isinstance(data, (str, bytes, bytearray, Mapping)): + return data + if isinstance(data, Iterable): + return [_coerce_iterables_for_type(item, item_type) for item in data] + return data + + if _is_mapping_type(typ): + value_type = get_args(typ)[1] if len(get_args(typ)) > 1 else Any + if isinstance(data, Mapping): + return { + key: _coerce_iterables_for_type(value, value_type) + for key, value in data.items() + } + return data + + if _is_pydantic_model_type(typ) and isinstance(data, Mapping): + coerced = None + for field_name, field in typ.model_fields.items(): + field_type = field.annotation + for key in (field_name, field.alias): + if key is not None and key in data: + value = data[key] if coerced is None else coerced[key] + coerced_value = _coerce_iterables_for_type(value, field_type) + if coerced_value is not value: + if coerced is None: + coerced = dict(data) + coerced[key] = coerced_value + return coerced if coerced is not None else data + return data +def _resolve_type_alias(typ: Any) -> Any: + return getattr(typ, "__value__", typ) + + +def _is_annotated_type(origin: Any) -> bool: + return any( + origin is typing_obj + for typing_obj in _get_typing_objects_by_name_of("Annotated") + ) + + +def _is_list_type(typ: Any) -> bool: + typ = _resolve_type_alias(typ) + return typ is list or get_origin(typ) is list + + +def _is_mapping_type(typ: Any) -> bool: + typ = _resolve_type_alias(typ) + origin = get_origin(typ) + mapping_origin = get_origin(Mapping[Any, Any]) + return typ in (dict, Dict, Mapping) or origin in (dict, Mapping, mapping_origin) + + +def _is_pydantic_model_type(typ: Any) -> bool: + return isinstance(typ, type) and issubclass(typ, BaseModel) + + def _contains_pydantic_model(data: Any) -> bool: if isinstance(data, BaseModel): return True @@ -217,3 +286,21 @@ def _contains_pydantic_model(data: Any) -> bool: return any(_contains_pydantic_model(value) for value in data.values()) return False + + +@functools.cache +def _get_typing_objects_by_name_of(name: str) -> Tuple[Any, ...]: + """ + Get typing objects by name from typing and typing_extensions. + Reference: https://typing-extensions.readthedocs.io/en/latest/#runtime-use-of-types + """ + result = tuple( + getattr(module, name) + for module in (typing, typing_extensions) + if hasattr(module, name) + ) + if not result: + raise ValueError( + f"Neither typing nor typing_extensions has an object called {name!r}" + ) + return result diff --git a/src/shippo/utils/unmarshal_json_response.py b/src/shippo/utils/unmarshal_json_response.py new file mode 100644 index 00000000..b1891105 --- /dev/null +++ b/src/shippo/utils/unmarshal_json_response.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from typing import Any, Optional, Type, TypeVar, overload + +import httpx + +from .serializers import unmarshal_json +from shippo.models import errors + +T = TypeVar("T") + + +@overload +def unmarshal_json_response( + typ: Type[T], http_res: httpx.Response, body: Optional[str] = None +) -> T: ... + + +@overload +def unmarshal_json_response( + typ: Any, http_res: httpx.Response, body: Optional[str] = None +) -> Any: ... + + +def unmarshal_json_response( + typ: Any, http_res: httpx.Response, body: Optional[str] = None +) -> Any: + if body is None: + body = http_res.text + try: + return unmarshal_json(body, typ) + except Exception as e: + raise errors.ResponseValidationError( + "Response validation failed", + http_res, + e, + body, + ) from e diff --git a/src/shippo/webhooks.py b/src/shippo/webhooks.py index 63d428a5..6f274da5 100644 --- a/src/shippo/webhooks.py +++ b/src/shippo/webhooks.py @@ -5,17 +5,12 @@ from shippo._hooks import HookContext from shippo.models import components, errors, operations from shippo.types import BaseModel, OptionalNullable, UNSET +from shippo.utils.unmarshal_json_response import unmarshal_json_response from typing import Mapping, Optional, Union, cast class Webhooks(BaseSDK): - r"""Webhooks are a way for Shippo to notify your application when a specific event occurs. For example, when a label is purchased or when a shipment tracking status has changed. You can use webhooks to trigger actions in your application, such as sending an email or updating a database. - - - # Webhook Payload - The payload is the body of the POST request Shippo sends to the URL specified at the time of webhook registration. - - """ + r"""Webhooks are a way for Shippo to notify your application when a specific event occurs. For example, when a label is purchased or when a shipment tracking status has changed. You can use webhooks to trigger actions in your application, such as sending an email or updating a database.""" def create_webhook( self, @@ -27,7 +22,7 @@ def create_webhook( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Create a new webhook Creates a new webhook to send notifications to a URL when a specific event occurs. @@ -68,6 +63,7 @@ def create_webhook( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.WebhookUpdateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -81,37 +77,57 @@ def create_webhook( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="createWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.create_webhook(request=components.WebhookUpdateRequest(\n event=components.WebhookEventTypeEnum.BATCH_CREATED,\n url='https://example.com/shippo-webhook',\n active=True,\n is_test=False,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.createWebhook({\n event: "batch_created",\n url: "https://example.com/shippo-webhook",\n active: true,\n isTest: false,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nWebhookUpdateRequest req = new WebhookUpdateRequest() {\n Event = WebhookEventTypeEnum.BatchCreated,\n Url = "https://example.com/shippo-webhook",\n Active = true,\n IsTest = false,\n};\n\nvar res = await sdk.Webhooks.CreateWebhookAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Components\\WebhookUpdateRequest(\n event: Components\\WebhookEventTypeEnum::BatchCreated,\n url: 'https://example.com/shippo-webhook',\n active: true,\n isTest: false,\n);\n\n$response = $sdk->webhooks->createWebhook(\n request: $request\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.WebhookEventTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.WebhookUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n WebhookUpdateRequest req = WebhookUpdateRequest.builder()\n .event(WebhookEventTypeEnum.BATCH_CREATED)\n .url("https://example.com/shippo-webhook")\n .active(true)\n .isTest(false)\n .build();\n\n CreateWebhookResponse res = sdk.webhooks().createWebhook()\n .request(req)\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def create_webhook_async( self, @@ -123,7 +139,7 @@ async def create_webhook_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Create a new webhook Creates a new webhook to send notifications to a URL when a specific event occurs. @@ -164,6 +180,7 @@ async def create_webhook_async( get_serialized_body=lambda: utils.serialize_request_body( request, False, False, "json", components.WebhookUpdateRequest ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -177,37 +194,57 @@ async def create_webhook_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="createWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.create_webhook(request=components.WebhookUpdateRequest(\n event=components.WebhookEventTypeEnum.BATCH_CREATED,\n url='https://example.com/shippo-webhook',\n active=True,\n is_test=False,\n))\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.createWebhook({\n event: "batch_created",\n url: "https://example.com/shippo-webhook",\n active: true,\n isTest: false,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nWebhookUpdateRequest req = new WebhookUpdateRequest() {\n Event = WebhookEventTypeEnum.BatchCreated,\n Url = "https://example.com/shippo-webhook",\n Active = true,\n IsTest = false,\n};\n\nvar res = await sdk.Webhooks.CreateWebhookAsync(req);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$request = new Components\\WebhookUpdateRequest(\n event: Components\\WebhookEventTypeEnum::BatchCreated,\n url: 'https://example.com/shippo-webhook',\n active: true,\n isTest: false,\n);\n\n$response = $sdk->webhooks->createWebhook(\n request: $request\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.WebhookEventTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.WebhookUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.CreateWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n WebhookUpdateRequest req = WebhookUpdateRequest.builder()\n .event(WebhookEventTypeEnum.BATCH_CREATED)\n .url("https://example.com/shippo-webhook")\n .active(true)\n .isTest(false)\n .build();\n\n CreateWebhookResponse res = sdk.webhooks().createWebhook()\n .request(req)\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "201", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def list_webhooks( self, @@ -216,7 +253,7 @@ def list_webhooks( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.WebhookPaginatedList]: + ) -> components.WebhookPaginatedList: r"""List all webhooks Returns a list of all webhooks you have created. @@ -248,6 +285,7 @@ def list_webhooks( accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -261,39 +299,57 @@ def list_webhooks( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="listWebhooks", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.list_webhooks()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.listWebhooks();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.ListWebhooksAsync();\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->listWebhooks(\n\n);\n\nif ($response->webhookPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListWebhooksResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListWebhooksResponse res = sdk.webhooks().listWebhooks()\n .call();\n\n if (res.webhookPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.WebhookPaginatedList] - ) + return unmarshal_json_response(components.WebhookPaginatedList, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def list_webhooks_async( self, @@ -302,7 +358,7 @@ async def list_webhooks_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.WebhookPaginatedList]: + ) -> components.WebhookPaginatedList: r"""List all webhooks Returns a list of all webhooks you have created. @@ -334,6 +390,7 @@ async def list_webhooks_async( accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -347,39 +404,57 @@ async def list_webhooks_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="listWebhooks", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.list_webhooks()\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.listWebhooks();\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.ListWebhooksAsync();\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->listWebhooks(\n\n);\n\nif ($response->webhookPaginatedList !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.ListWebhooksResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n ListWebhooksResponse res = sdk.webhooks().listWebhooks()\n .call();\n\n if (res.webhookPaginatedList().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json( - http_res.text, Optional[components.WebhookPaginatedList] - ) + return unmarshal_json_response(components.WebhookPaginatedList, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def get_webhook( self, @@ -389,7 +464,7 @@ def get_webhook( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Retrieve a specific webhook Returns the details of a specific webhook using the webhook object ID. @@ -427,6 +502,7 @@ def get_webhook( accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -440,37 +516,57 @@ def get_webhook( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.get_webhook(webhook_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.getWebhook("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.GetWebhookAsync(webhookId: "");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->getWebhook(\n webhookId: ''\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetWebhookResponse res = sdk.webhooks().getWebhook()\n .webhookId("")\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def get_webhook_async( self, @@ -480,7 +576,7 @@ async def get_webhook_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Retrieve a specific webhook Returns the details of a specific webhook using the webhook object ID. @@ -518,6 +614,7 @@ async def get_webhook_async( accept_header_value="application/json", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -531,37 +628,57 @@ async def get_webhook_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="getWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.get_webhook(webhook_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.getWebhook("");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.GetWebhookAsync(webhookId: "");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->getWebhook(\n webhookId: ''\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.GetWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n GetWebhookResponse res = sdk.webhooks().getWebhook()\n .webhookId("")\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def update_webhook( self, @@ -574,7 +691,7 @@ def update_webhook( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Update an existing webhook Updates an existing webhook using the webhook object ID. @@ -623,6 +740,7 @@ def update_webhook( "json", components.WebhookUpdateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -636,37 +754,57 @@ def update_webhook( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updateWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.update_webhook(webhook_update_request=components.WebhookUpdateRequest(\n event=components.WebhookEventTypeEnum.BATCH_CREATED,\n url='https://example.com/shippo-webhook',\n active=True,\n is_test=False,\n), webhook_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.updateWebhook({\n event: "batch_created",\n url: "https://example.com/shippo-webhook",\n active: true,\n isTest: false,\n }, "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.UpdateWebhookAsync(\n webhookId: "",\n webhookUpdateRequest: new WebhookUpdateRequest() {\n Event = WebhookEventTypeEnum.BatchCreated,\n Url = "https://example.com/shippo-webhook",\n Active = true,\n IsTest = false,\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$webhookUpdateRequest = new Components\\WebhookUpdateRequest(\n event: Components\\WebhookEventTypeEnum::BatchCreated,\n url: 'https://example.com/shippo-webhook',\n active: true,\n isTest: false,\n);\n\n$response = $sdk->webhooks->updateWebhook(\n webhookId: '',\n webhookUpdateRequest: $webhookUpdateRequest\n\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.WebhookEventTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.WebhookUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateWebhookResponse res = sdk.webhooks().updateWebhook()\n .webhookId("")\n .webhookUpdateRequest(WebhookUpdateRequest.builder()\n .event(WebhookEventTypeEnum.BATCH_CREATED)\n .url("https://example.com/shippo-webhook")\n .active(true)\n .isTest(false)\n .build())\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def update_webhook_async( self, @@ -679,7 +817,7 @@ async def update_webhook_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> Optional[components.Webhook]: + ) -> components.Webhook: r"""Update an existing webhook Updates an existing webhook using the webhook object ID. @@ -728,6 +866,7 @@ async def update_webhook_async( "json", components.WebhookUpdateRequest, ), + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -741,37 +880,57 @@ async def update_webhook_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="updateWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\nfrom shippo.models import components\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\nres = s.webhooks.update_webhook(webhook_update_request=components.WebhookUpdateRequest(\n event=components.WebhookEventTypeEnum.BATCH_CREATED,\n url='https://example.com/shippo-webhook',\n active=True,\n is_test=False,\n), webhook_id='')\n\nif res is not None:\n # handle response\n pass", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n const result = await shippo.webhooks.updateWebhook({\n event: "batch_created",\n url: "https://example.com/shippo-webhook",\n active: true,\n isTest: false,\n }, "");\n\n // Handle the result\n console.log(result);\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nvar res = await sdk.Webhooks.UpdateWebhookAsync(\n webhookId: "",\n webhookUpdateRequest: new WebhookUpdateRequest() {\n Event = WebhookEventTypeEnum.BatchCreated,\n Url = "https://example.com/shippo-webhook",\n Active = true,\n IsTest = false,\n }\n);\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\nuse Shippo\\API\\Models\\Components;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n$webhookUpdateRequest = new Components\\WebhookUpdateRequest(\n event: Components\\WebhookEventTypeEnum::BatchCreated,\n url: 'https://example.com/shippo-webhook',\n active: true,\n isTest: false,\n);\n\n$response = $sdk->webhooks->updateWebhook(\n webhookId: '',\n webhookUpdateRequest: $webhookUpdateRequest\n\n);\n\nif ($response->webhook !== null) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.components.WebhookEventTypeEnum;\nimport com.goshippo.shippo_sdk.models.components.WebhookUpdateRequest;\nimport com.goshippo.shippo_sdk.models.operations.UpdateWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n UpdateWebhookResponse res = sdk.webhooks().updateWebhook()\n .webhookId("")\n .webhookUpdateRequest(WebhookUpdateRequest.builder()\n .event(WebhookEventTypeEnum.BATCH_CREATED)\n .url("https://example.com/shippo-webhook")\n .active(true)\n .isTest(false)\n .build())\n .call();\n\n if (res.webhook().isPresent()) {\n // handle response\n }\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) if utils.match_response(http_res, "200", "application/json"): - return utils.unmarshal_json(http_res.text, Optional[components.Webhook]) + return unmarshal_json_response(components.Webhook, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) def delete_webhook( self, @@ -819,6 +978,7 @@ def delete_webhook( accept_header_value="*/*", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -832,13 +992,44 @@ def delete_webhook( http_res = self.do_request( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deleteWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.webhooks.delete_webhook(webhook_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.webhooks.deleteWebhook("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.Webhooks.DeleteWebhookAsync(webhookId: "");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->deleteWebhook(\n webhookId: ''\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteWebhookResponse res = sdk.webhooks().deleteWebhook()\n .webhookId("")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -846,23 +1037,12 @@ def delete_webhook( return if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = utils.stream_to_text(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res) async def delete_webhook_async( self, @@ -910,6 +1090,7 @@ async def delete_webhook_async( accept_header_value="*/*", http_headers=http_headers, security=self.sdk_configuration.security, + allow_empty_value=None, timeout_ms=timeout_ms, ) @@ -923,13 +1104,44 @@ async def delete_webhook_async( http_res = await self.do_request_async( hook_ctx=HookContext( + config=self.sdk_configuration, base_url=base_url or "", operation_id="deleteWebhook", - oauth2_scopes=[], + oauth2_scopes=None, security_source=self.sdk_configuration.security, + tags=["Webhooks"], + extensions={ + "x-codeSamples": [ + { + "label": "Python", + "lang": "python", + "source": "import shippo\n\ns = shippo.Shippo(\n api_key_header='ShippoToken ',\n shippo_api_version='2018-02-08',\n)\n\n\ns.webhooks.delete_webhook(webhook_id='')\n\n# Use the SDK ...", + }, + { + "label": "Typescript", + "lang": "typescript", + "source": 'import { Shippo } from "shippo";\n\nconst shippo = new Shippo({\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08",\n});\n\nasync function run() {\n await shippo.webhooks.deleteWebhook("");\n\n\n}\n\nrun();', + }, + { + "label": "C#", + "lang": "csharp", + "source": 'using Shippo;\nusing Shippo.Models.Components;\n\nvar sdk = new ShippoSDK(\n apiKeyHeader: "ShippoToken ",\n shippoApiVersion: "2018-02-08"\n);\n\nawait sdk.Webhooks.DeleteWebhookAsync(webhookId: "");\n\n// handle response', + }, + { + "label": "PHP", + "lang": "php", + "source": "declare(strict_types=1);\n\nrequire 'vendor/autoload.php';\n\nuse Shippo\\API;\n\n$sdk = API\\Shippo::builder()\n ->setSecurity(\n 'ShippoToken '\n )\n ->setShippoApiVersion('2018-02-08')\n ->build();\n\n\n\n$response = $sdk->webhooks->deleteWebhook(\n webhookId: ''\n);\n\nif ($response->statusCode === 200) {\n // handle response\n}", + }, + { + "label": "Java", + "lang": "java", + "source": 'package hello.world;\n\nimport com.goshippo.shippo_sdk.Shippo;\nimport com.goshippo.shippo_sdk.models.operations.DeleteWebhookResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n public static void main(String[] args) throws Exception {\n\n Shippo sdk = Shippo.builder()\n .apiKeyHeader("ShippoToken ")\n .shippoApiVersion("2018-02-08")\n .build();\n\n DeleteWebhookResponse res = sdk.webhooks().deleteWebhook()\n .webhookId("")\n .call();\n\n // handle response\n }\n}', + }, + ] + }, ), request=req, - error_status_codes=["4XX", "5XX"], + is_error_status_code=lambda c: utils.match_status_codes(["4XX", "5XX"], c), retry_config=retry_config, ) @@ -937,20 +1149,9 @@ async def delete_webhook_async( return if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) if utils.match_response(http_res, "5XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - "API error occurred", http_res.status_code, http_res_text, http_res - ) - - content_type = http_res.headers.get("Content-Type") - http_res_text = await utils.stream_to_text_async(http_res) - raise errors.SDKError( - f"Unexpected response received (code: {http_res.status_code}, type: {content_type})", - http_res.status_code, - http_res_text, - http_res, - ) + raise errors.SDKError("API error occurred", http_res, http_res_text) + + raise errors.SDKError("Unexpected response received", http_res)