moovio_sdk 0.18.2__py3-none-any.whl → 0.18.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. moovio_sdk/_version.py +3 -3
  2. moovio_sdk/images.py +278 -24
  3. moovio_sdk/models/components/__init__.py +0 -37
  4. moovio_sdk/models/components/businessprofile.py +5 -0
  5. moovio_sdk/models/components/createbusinesserror.py +5 -0
  6. moovio_sdk/models/components/createbusinessprofile.py +5 -0
  7. moovio_sdk/models/components/generatedby.py +30 -36
  8. moovio_sdk/models/components/imageupdaterequestmultipart.py +4 -4
  9. moovio_sdk/models/components/industrytaxonomy.py +2 -2
  10. moovio_sdk/models/components/patchbusiness.py +5 -0
  11. moovio_sdk/models/components/requirementid.py +1 -0
  12. moovio_sdk/models/errors/__init__.py +8 -0
  13. moovio_sdk/models/errors/imagemetadatavalidationerror.py +29 -0
  14. moovio_sdk/models/internal/globals.py +1 -1
  15. moovio_sdk/models/operations/__init__.py +20 -0
  16. moovio_sdk/models/operations/acceptdispute.py +1 -1
  17. moovio_sdk/models/operations/assignaccountcountries.py +1 -1
  18. moovio_sdk/models/operations/cancelschedule.py +1 -1
  19. moovio_sdk/models/operations/completebankaccountverification.py +1 -1
  20. moovio_sdk/models/operations/completemicrodeposits.py +1 -1
  21. moovio_sdk/models/operations/createaccesstoken.py +1 -1
  22. moovio_sdk/models/operations/createaccount.py +1 -1
  23. moovio_sdk/models/operations/createapplepaysession.py +1 -1
  24. moovio_sdk/models/operations/createbrand.py +1 -1
  25. moovio_sdk/models/operations/createcancellation.py +1 -1
  26. moovio_sdk/models/operations/createfeeplanagreements.py +1 -1
  27. moovio_sdk/models/operations/createonboardinginvite.py +1 -1
  28. moovio_sdk/models/operations/createpaymentlink.py +1 -1
  29. moovio_sdk/models/operations/createproduct.py +1 -1
  30. moovio_sdk/models/operations/createreceipts.py +1 -1
  31. moovio_sdk/models/operations/createrepresentative.py +1 -1
  32. moovio_sdk/models/operations/createreversal.py +1 -1
  33. moovio_sdk/models/operations/createschedule.py +1 -1
  34. moovio_sdk/models/operations/createsweepconfig.py +1 -1
  35. moovio_sdk/models/operations/createterminalapplication.py +1 -1
  36. moovio_sdk/models/operations/createterminalapplicationversion.py +1 -1
  37. moovio_sdk/models/operations/createticket.py +1 -1
  38. moovio_sdk/models/operations/createtransfer.py +1 -1
  39. moovio_sdk/models/operations/createtransferoptions.py +1 -1
  40. moovio_sdk/models/operations/createwallet.py +1 -1
  41. moovio_sdk/models/operations/deletedisputeevidencefile.py +1 -1
  42. moovio_sdk/models/operations/deleteimage.py +1 -1
  43. moovio_sdk/models/operations/deleterepresentative.py +1 -1
  44. moovio_sdk/models/operations/deleteterminalapplication.py +1 -1
  45. moovio_sdk/models/operations/disablebankaccount.py +1 -1
  46. moovio_sdk/models/operations/disablecapability.py +1 -1
  47. moovio_sdk/models/operations/disablecard.py +1 -1
  48. moovio_sdk/models/operations/disablepaymentlink.py +1 -1
  49. moovio_sdk/models/operations/disableproduct.py +1 -1
  50. moovio_sdk/models/operations/disconnectaccount.py +1 -1
  51. moovio_sdk/models/operations/generateendtoendkey.py +1 -1
  52. moovio_sdk/models/operations/getaccount.py +1 -1
  53. moovio_sdk/models/operations/getaccountcountries.py +1 -1
  54. moovio_sdk/models/operations/getaccountterminalapplication.py +1 -1
  55. moovio_sdk/models/operations/getadjustment.py +1 -1
  56. moovio_sdk/models/operations/getapplepaymerchantdomains.py +1 -1
  57. moovio_sdk/models/operations/getavatar.py +1 -1
  58. moovio_sdk/models/operations/getbankaccount.py +1 -1
  59. moovio_sdk/models/operations/getbankaccountverification.py +1 -1
  60. moovio_sdk/models/operations/getbrand.py +1 -1
  61. moovio_sdk/models/operations/getcancellation.py +1 -1
  62. moovio_sdk/models/operations/getcapability.py +1 -1
  63. moovio_sdk/models/operations/getcard.py +1 -1
  64. moovio_sdk/models/operations/getdispute.py +1 -1
  65. moovio_sdk/models/operations/getdisputeevidence.py +1 -1
  66. moovio_sdk/models/operations/getdisputeevidencedata.py +1 -1
  67. moovio_sdk/models/operations/getenrichmentaddress.py +1 -1
  68. moovio_sdk/models/operations/getenrichmentprofile.py +1 -1
  69. moovio_sdk/models/operations/getfiledetails.py +1 -1
  70. moovio_sdk/models/operations/getfullissuedcard.py +1 -1
  71. moovio_sdk/models/operations/getimagemetadata.py +1 -1
  72. moovio_sdk/models/operations/getissuedcard.py +1 -1
  73. moovio_sdk/models/operations/getissuedcardauthorization.py +1 -1
  74. moovio_sdk/models/operations/getissuedcardtransaction.py +1 -1
  75. moovio_sdk/models/operations/getmerchantprocessingagreement.py +1 -1
  76. moovio_sdk/models/operations/getonboardinginvite.py +1 -1
  77. moovio_sdk/models/operations/getpaymentlink.py +1 -1
  78. moovio_sdk/models/operations/getpaymentlinkqrcode.py +1 -1
  79. moovio_sdk/models/operations/getpaymentmethod.py +1 -1
  80. moovio_sdk/models/operations/getproduct.py +1 -1
  81. moovio_sdk/models/operations/getrefund.py +1 -1
  82. moovio_sdk/models/operations/getrepresentative.py +1 -1
  83. moovio_sdk/models/operations/getscheduledoccurrence.py +1 -1
  84. moovio_sdk/models/operations/getschedules.py +1 -1
  85. moovio_sdk/models/operations/getstatement.py +1 -1
  86. moovio_sdk/models/operations/getsweep.py +1 -1
  87. moovio_sdk/models/operations/getsweepconfig.py +1 -1
  88. moovio_sdk/models/operations/getterminalapplication.py +1 -1
  89. moovio_sdk/models/operations/getterminalconfiguration.py +1 -1
  90. moovio_sdk/models/operations/gettermsofservicetoken.py +1 -1
  91. moovio_sdk/models/operations/getticket.py +1 -1
  92. moovio_sdk/models/operations/gettransfer.py +1 -1
  93. moovio_sdk/models/operations/getunderwriting.py +1 -1
  94. moovio_sdk/models/operations/getwallet.py +1 -1
  95. moovio_sdk/models/operations/getwallettransaction.py +1 -1
  96. moovio_sdk/models/operations/initiatebankaccountverification.py +1 -1
  97. moovio_sdk/models/operations/initiatemicrodeposits.py +1 -1
  98. moovio_sdk/models/operations/initiaterefund.py +1 -1
  99. moovio_sdk/models/operations/linkaccountterminalapplication.py +1 -1
  100. moovio_sdk/models/operations/linkapplepaytoken.py +1 -1
  101. moovio_sdk/models/operations/linkbankaccount.py +1 -1
  102. moovio_sdk/models/operations/linkcard.py +1 -1
  103. moovio_sdk/models/operations/listaccounts.py +1 -1
  104. moovio_sdk/models/operations/listaccountterminalapplications.py +1 -1
  105. moovio_sdk/models/operations/listadjustments.py +1 -1
  106. moovio_sdk/models/operations/listbankaccounts.py +1 -1
  107. moovio_sdk/models/operations/listcapabilities.py +1 -1
  108. moovio_sdk/models/operations/listcards.py +1 -1
  109. moovio_sdk/models/operations/listdisputeevidence.py +1 -1
  110. moovio_sdk/models/operations/listdisputes.py +1 -1
  111. moovio_sdk/models/operations/listfeeplanagreements.py +1 -1
  112. moovio_sdk/models/operations/listfeeplans.py +1 -1
  113. moovio_sdk/models/operations/listfeesfetch.py +1 -1
  114. moovio_sdk/models/operations/listfiles.py +1 -1
  115. moovio_sdk/models/operations/listimagemetadata.py +1 -1
  116. moovio_sdk/models/operations/listindustries.py +1 -1
  117. moovio_sdk/models/operations/listinstitutions.py +1 -1
  118. moovio_sdk/models/operations/listissuedcardauthorizationevents.py +1 -1
  119. moovio_sdk/models/operations/listissuedcardauthorizations.py +1 -1
  120. moovio_sdk/models/operations/listissuedcards.py +1 -1
  121. moovio_sdk/models/operations/listissuedcardtransactions.py +1 -1
  122. moovio_sdk/models/operations/listonboardinginvites.py +1 -1
  123. moovio_sdk/models/operations/listpartnerpricing.py +1 -1
  124. moovio_sdk/models/operations/listpartnerpricingagreements.py +1 -1
  125. moovio_sdk/models/operations/listpaymentlinks.py +1 -1
  126. moovio_sdk/models/operations/listpaymentmethods.py +1 -1
  127. moovio_sdk/models/operations/listproducts.py +1 -1
  128. moovio_sdk/models/operations/listreceipts.py +1 -1
  129. moovio_sdk/models/operations/listrefunds.py +1 -1
  130. moovio_sdk/models/operations/listrepresentatives.py +1 -1
  131. moovio_sdk/models/operations/listschedules.py +1 -1
  132. moovio_sdk/models/operations/liststatements.py +1 -1
  133. moovio_sdk/models/operations/listsweepconfigs.py +1 -1
  134. moovio_sdk/models/operations/listsweeps.py +1 -1
  135. moovio_sdk/models/operations/listterminalapplications.py +1 -1
  136. moovio_sdk/models/operations/listticketmessages.py +1 -1
  137. moovio_sdk/models/operations/listtickets.py +1 -1
  138. moovio_sdk/models/operations/listtransfers.py +1 -1
  139. moovio_sdk/models/operations/listwallets.py +1 -1
  140. moovio_sdk/models/operations/listwallettransactions.py +1 -1
  141. moovio_sdk/models/operations/ping.py +1 -1
  142. moovio_sdk/models/operations/registerapplepaymerchantdomains.py +1 -1
  143. moovio_sdk/models/operations/requestcapabilities.py +1 -1
  144. moovio_sdk/models/operations/requestcard.py +1 -1
  145. moovio_sdk/models/operations/retrievefees.py +1 -1
  146. moovio_sdk/models/operations/revokeaccesstoken.py +1 -1
  147. moovio_sdk/models/operations/revokeonboardinginvite.py +1 -1
  148. moovio_sdk/models/operations/saveunderwriting.py +1 -1
  149. moovio_sdk/models/operations/searchinstitutions.py +1 -1
  150. moovio_sdk/models/operations/submitdisputeevidence.py +1 -1
  151. moovio_sdk/models/operations/testendtoendtoken.py +1 -1
  152. moovio_sdk/models/operations/updateaccount.py +1 -1
  153. moovio_sdk/models/operations/updateapplepaymerchantdomains.py +1 -1
  154. moovio_sdk/models/operations/updatebrand.py +1 -1
  155. moovio_sdk/models/operations/updatecard.py +1 -1
  156. moovio_sdk/models/operations/updatedisputeevidence.py +1 -1
  157. moovio_sdk/models/operations/updateimage.py +1 -1
  158. moovio_sdk/models/operations/updateimagemetadata.py +87 -0
  159. moovio_sdk/models/operations/updateissuedcard.py +1 -1
  160. moovio_sdk/models/operations/updatepaymentlink.py +1 -1
  161. moovio_sdk/models/operations/updateproduct.py +1 -1
  162. moovio_sdk/models/operations/updaterepresentative.py +1 -1
  163. moovio_sdk/models/operations/updateschedule.py +1 -1
  164. moovio_sdk/models/operations/updatesweepconfig.py +1 -1
  165. moovio_sdk/models/operations/updateticket.py +1 -1
  166. moovio_sdk/models/operations/updatetransfer.py +1 -1
  167. moovio_sdk/models/operations/updatewallet.py +1 -1
  168. moovio_sdk/models/operations/uploaddisputeevidencefile.py +1 -1
  169. moovio_sdk/models/operations/uploaddisputeevidencetext.py +1 -1
  170. moovio_sdk/models/operations/uploadfile.py +1 -1
  171. moovio_sdk/models/operations/uploadimage.py +1 -1
  172. moovio_sdk/models/operations/upsertbrand.py +1 -1
  173. moovio_sdk/models/operations/upsertunderwriting.py +1 -1
  174. {moovio_sdk-0.18.2.dist-info → moovio_sdk-0.18.4.dist-info}/METADATA +53 -51
  175. {moovio_sdk-0.18.2.dist-info → moovio_sdk-0.18.4.dist-info}/RECORD +176 -179
  176. moovio_sdk/models/components/generatedbyaccountid.py +0 -15
  177. moovio_sdk/models/components/generatedbybankaccountid.py +0 -17
  178. moovio_sdk/models/components/generatedbycardid.py +0 -15
  179. moovio_sdk/models/components/generatedbydisputeid.py +0 -15
  180. moovio_sdk/models/components/generatedbytransferid.py +0 -15
  181. {moovio_sdk-0.18.2.dist-info → moovio_sdk-0.18.4.dist-info}/WHEEL +0 -0
moovio_sdk/_version.py CHANGED
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "moovio_sdk"
6
- __version__: str = "0.18.2"
6
+ __version__: str = "0.18.4"
7
7
  __openapi_doc_version__: str = "latest"
8
- __gen_version__: str = "2.728.0"
9
- __user_agent__: str = "speakeasy-sdk/python 0.18.2 2.728.0 latest moovio_sdk"
8
+ __gen_version__: str = "2.730.5"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.18.4 2.730.5 latest moovio_sdk"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
moovio_sdk/images.py CHANGED
@@ -691,12 +691,10 @@ class Images(BaseSDK):
691
691
  *,
692
692
  account_id: str,
693
693
  image_id: str,
694
- image: Optional[
695
- Union[
696
- components.ImageUpdateRequestMultiPartImage,
697
- components.ImageUpdateRequestMultiPartImageTypedDict,
698
- ]
699
- ] = None,
694
+ image: Union[
695
+ components.ImageUpdateRequestMultiPartImage,
696
+ components.ImageUpdateRequestMultiPartImageTypedDict,
697
+ ],
700
698
  metadata: OptionalNullable[
701
699
  Union[components.Metadata, components.MetadataTypedDict]
702
700
  ] = UNSET,
@@ -705,11 +703,11 @@ class Images(BaseSDK):
705
703
  timeout_ms: Optional[int] = None,
706
704
  http_headers: Optional[Mapping[str, str]] = None,
707
705
  ) -> operations.UpdateImageResponse:
708
- r"""Update an existing image and/or its metadata.
706
+ r"""Replace an existing image and, optionally, its metadata.
709
707
 
710
- Duplicate images, and requests larger than 16MB will be rejected. Omit any
711
- form parts you do not wish to update. Existing metadata can be cleared by
712
- sending `null` for the `metadata` form part.
708
+ This endpoint replaces the existing image with the new PNG, JPEG, or WebP. Omit
709
+ the metadata form section to keep existing metadata, or send `null` to clear it.
710
+ Duplicate images, and requests larger than 16MB will be rejected.
713
711
 
714
712
  :param account_id:
715
713
  :param image_id:
@@ -735,7 +733,7 @@ class Images(BaseSDK):
735
733
  image_id=image_id,
736
734
  image_update_request_multi_part=components.ImageUpdateRequestMultiPart(
737
735
  image=utils.get_pydantic_model(
738
- image, Optional[components.ImageUpdateRequestMultiPartImage]
736
+ image, components.ImageUpdateRequestMultiPartImage
739
737
  ),
740
738
  metadata=utils.get_pydantic_model(
741
739
  metadata, OptionalNullable[components.Metadata]
@@ -744,7 +742,7 @@ class Images(BaseSDK):
744
742
  )
745
743
 
746
744
  req = self._build_request(
747
- method="PATCH",
745
+ method="PUT",
748
746
  path="/accounts/{accountID}/images/{imageID}",
749
747
  base_url=base_url,
750
748
  url_variables=url_variables,
@@ -838,12 +836,10 @@ class Images(BaseSDK):
838
836
  *,
839
837
  account_id: str,
840
838
  image_id: str,
841
- image: Optional[
842
- Union[
843
- components.ImageUpdateRequestMultiPartImage,
844
- components.ImageUpdateRequestMultiPartImageTypedDict,
845
- ]
846
- ] = None,
839
+ image: Union[
840
+ components.ImageUpdateRequestMultiPartImage,
841
+ components.ImageUpdateRequestMultiPartImageTypedDict,
842
+ ],
847
843
  metadata: OptionalNullable[
848
844
  Union[components.Metadata, components.MetadataTypedDict]
849
845
  ] = UNSET,
@@ -852,11 +848,11 @@ class Images(BaseSDK):
852
848
  timeout_ms: Optional[int] = None,
853
849
  http_headers: Optional[Mapping[str, str]] = None,
854
850
  ) -> operations.UpdateImageResponse:
855
- r"""Update an existing image and/or its metadata.
851
+ r"""Replace an existing image and, optionally, its metadata.
856
852
 
857
- Duplicate images, and requests larger than 16MB will be rejected. Omit any
858
- form parts you do not wish to update. Existing metadata can be cleared by
859
- sending `null` for the `metadata` form part.
853
+ This endpoint replaces the existing image with the new PNG, JPEG, or WebP. Omit
854
+ the metadata form section to keep existing metadata, or send `null` to clear it.
855
+ Duplicate images, and requests larger than 16MB will be rejected.
860
856
 
861
857
  :param account_id:
862
858
  :param image_id:
@@ -882,7 +878,7 @@ class Images(BaseSDK):
882
878
  image_id=image_id,
883
879
  image_update_request_multi_part=components.ImageUpdateRequestMultiPart(
884
880
  image=utils.get_pydantic_model(
885
- image, Optional[components.ImageUpdateRequestMultiPartImage]
881
+ image, components.ImageUpdateRequestMultiPartImage
886
882
  ),
887
883
  metadata=utils.get_pydantic_model(
888
884
  metadata, OptionalNullable[components.Metadata]
@@ -891,7 +887,7 @@ class Images(BaseSDK):
891
887
  )
892
888
 
893
889
  req = self._build_request_async(
894
- method="PATCH",
890
+ method="PUT",
895
891
  path="/accounts/{accountID}/images/{imageID}",
896
892
  base_url=base_url,
897
893
  url_variables=url_variables,
@@ -1200,6 +1196,264 @@ class Images(BaseSDK):
1200
1196
 
1201
1197
  raise errors.APIError("Unexpected response received", http_res)
1202
1198
 
1199
+ def update_metadata(
1200
+ self,
1201
+ *,
1202
+ account_id: str,
1203
+ image_id: str,
1204
+ alt_text: Optional[str] = None,
1205
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1206
+ server_url: Optional[str] = None,
1207
+ timeout_ms: Optional[int] = None,
1208
+ http_headers: Optional[Mapping[str, str]] = None,
1209
+ ) -> operations.UpdateImageMetadataResponse:
1210
+ r"""Replace the metadata for an existing image.
1211
+
1212
+ :param account_id:
1213
+ :param image_id:
1214
+ :param alt_text: Alternative text for the image.
1215
+ :param retries: Override the default retry configuration for this method
1216
+ :param server_url: Override the default server URL for this method
1217
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1218
+ :param http_headers: Additional headers to set or replace on requests.
1219
+ """
1220
+ base_url = None
1221
+ url_variables = None
1222
+ if timeout_ms is None:
1223
+ timeout_ms = self.sdk_configuration.timeout_ms
1224
+
1225
+ if server_url is not None:
1226
+ base_url = server_url
1227
+ else:
1228
+ base_url = self._get_url(base_url, url_variables)
1229
+
1230
+ request = operations.UpdateImageMetadataRequest(
1231
+ account_id=account_id,
1232
+ image_id=image_id,
1233
+ image_metadata_request=components.ImageMetadataRequest(
1234
+ alt_text=alt_text,
1235
+ ),
1236
+ )
1237
+
1238
+ req = self._build_request(
1239
+ method="PUT",
1240
+ path="/accounts/{accountID}/images/{imageID}/metadata",
1241
+ base_url=base_url,
1242
+ url_variables=url_variables,
1243
+ request=request,
1244
+ request_body_required=True,
1245
+ request_has_path_params=True,
1246
+ request_has_query_params=True,
1247
+ user_agent_header="user-agent",
1248
+ accept_header_value="application/json",
1249
+ http_headers=http_headers,
1250
+ _globals=operations.UpdateImageMetadataGlobals(
1251
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1252
+ ),
1253
+ security=self.sdk_configuration.security,
1254
+ get_serialized_body=lambda: utils.serialize_request_body(
1255
+ request.image_metadata_request,
1256
+ False,
1257
+ False,
1258
+ "json",
1259
+ components.ImageMetadataRequest,
1260
+ ),
1261
+ timeout_ms=timeout_ms,
1262
+ )
1263
+
1264
+ if retries == UNSET:
1265
+ if self.sdk_configuration.retry_config is not UNSET:
1266
+ retries = self.sdk_configuration.retry_config
1267
+
1268
+ retry_config = None
1269
+ if isinstance(retries, utils.RetryConfig):
1270
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1271
+
1272
+ http_res = self.do_request(
1273
+ hook_ctx=HookContext(
1274
+ config=self.sdk_configuration,
1275
+ base_url=base_url or "",
1276
+ operation_id="updateImageMetadata",
1277
+ oauth2_scopes=None,
1278
+ security_source=get_security_from_env(
1279
+ self.sdk_configuration.security, components.Security
1280
+ ),
1281
+ ),
1282
+ request=req,
1283
+ error_status_codes=[
1284
+ "400",
1285
+ "401",
1286
+ "403",
1287
+ "404",
1288
+ "409",
1289
+ "422",
1290
+ "429",
1291
+ "4XX",
1292
+ "500",
1293
+ "504",
1294
+ "5XX",
1295
+ ],
1296
+ retry_config=retry_config,
1297
+ )
1298
+
1299
+ response_data: Any = None
1300
+ if utils.match_response(http_res, "200", "application/json"):
1301
+ return operations.UpdateImageMetadataResponse(
1302
+ result=unmarshal_json_response(components.ImageMetadata, http_res),
1303
+ headers=utils.get_response_headers(http_res.headers),
1304
+ )
1305
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1306
+ response_data = unmarshal_json_response(errors.GenericErrorData, http_res)
1307
+ raise errors.GenericError(response_data, http_res)
1308
+ if utils.match_response(http_res, "422", "application/json"):
1309
+ response_data = unmarshal_json_response(
1310
+ errors.ImageMetadataValidationErrorData, http_res
1311
+ )
1312
+ raise errors.ImageMetadataValidationError(response_data, http_res)
1313
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1314
+ http_res_text = utils.stream_to_text(http_res)
1315
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1316
+ if utils.match_response(http_res, ["500", "504"], "*"):
1317
+ http_res_text = utils.stream_to_text(http_res)
1318
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1319
+ if utils.match_response(http_res, "4XX", "*"):
1320
+ http_res_text = utils.stream_to_text(http_res)
1321
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1322
+ if utils.match_response(http_res, "5XX", "*"):
1323
+ http_res_text = utils.stream_to_text(http_res)
1324
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1325
+
1326
+ raise errors.APIError("Unexpected response received", http_res)
1327
+
1328
+ async def update_metadata_async(
1329
+ self,
1330
+ *,
1331
+ account_id: str,
1332
+ image_id: str,
1333
+ alt_text: Optional[str] = None,
1334
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1335
+ server_url: Optional[str] = None,
1336
+ timeout_ms: Optional[int] = None,
1337
+ http_headers: Optional[Mapping[str, str]] = None,
1338
+ ) -> operations.UpdateImageMetadataResponse:
1339
+ r"""Replace the metadata for an existing image.
1340
+
1341
+ :param account_id:
1342
+ :param image_id:
1343
+ :param alt_text: Alternative text for the image.
1344
+ :param retries: Override the default retry configuration for this method
1345
+ :param server_url: Override the default server URL for this method
1346
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1347
+ :param http_headers: Additional headers to set or replace on requests.
1348
+ """
1349
+ base_url = None
1350
+ url_variables = None
1351
+ if timeout_ms is None:
1352
+ timeout_ms = self.sdk_configuration.timeout_ms
1353
+
1354
+ if server_url is not None:
1355
+ base_url = server_url
1356
+ else:
1357
+ base_url = self._get_url(base_url, url_variables)
1358
+
1359
+ request = operations.UpdateImageMetadataRequest(
1360
+ account_id=account_id,
1361
+ image_id=image_id,
1362
+ image_metadata_request=components.ImageMetadataRequest(
1363
+ alt_text=alt_text,
1364
+ ),
1365
+ )
1366
+
1367
+ req = self._build_request_async(
1368
+ method="PUT",
1369
+ path="/accounts/{accountID}/images/{imageID}/metadata",
1370
+ base_url=base_url,
1371
+ url_variables=url_variables,
1372
+ request=request,
1373
+ request_body_required=True,
1374
+ request_has_path_params=True,
1375
+ request_has_query_params=True,
1376
+ user_agent_header="user-agent",
1377
+ accept_header_value="application/json",
1378
+ http_headers=http_headers,
1379
+ _globals=operations.UpdateImageMetadataGlobals(
1380
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1381
+ ),
1382
+ security=self.sdk_configuration.security,
1383
+ get_serialized_body=lambda: utils.serialize_request_body(
1384
+ request.image_metadata_request,
1385
+ False,
1386
+ False,
1387
+ "json",
1388
+ components.ImageMetadataRequest,
1389
+ ),
1390
+ timeout_ms=timeout_ms,
1391
+ )
1392
+
1393
+ if retries == UNSET:
1394
+ if self.sdk_configuration.retry_config is not UNSET:
1395
+ retries = self.sdk_configuration.retry_config
1396
+
1397
+ retry_config = None
1398
+ if isinstance(retries, utils.RetryConfig):
1399
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1400
+
1401
+ http_res = await self.do_request_async(
1402
+ hook_ctx=HookContext(
1403
+ config=self.sdk_configuration,
1404
+ base_url=base_url or "",
1405
+ operation_id="updateImageMetadata",
1406
+ oauth2_scopes=None,
1407
+ security_source=get_security_from_env(
1408
+ self.sdk_configuration.security, components.Security
1409
+ ),
1410
+ ),
1411
+ request=req,
1412
+ error_status_codes=[
1413
+ "400",
1414
+ "401",
1415
+ "403",
1416
+ "404",
1417
+ "409",
1418
+ "422",
1419
+ "429",
1420
+ "4XX",
1421
+ "500",
1422
+ "504",
1423
+ "5XX",
1424
+ ],
1425
+ retry_config=retry_config,
1426
+ )
1427
+
1428
+ response_data: Any = None
1429
+ if utils.match_response(http_res, "200", "application/json"):
1430
+ return operations.UpdateImageMetadataResponse(
1431
+ result=unmarshal_json_response(components.ImageMetadata, http_res),
1432
+ headers=utils.get_response_headers(http_res.headers),
1433
+ )
1434
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1435
+ response_data = unmarshal_json_response(errors.GenericErrorData, http_res)
1436
+ raise errors.GenericError(response_data, http_res)
1437
+ if utils.match_response(http_res, "422", "application/json"):
1438
+ response_data = unmarshal_json_response(
1439
+ errors.ImageMetadataValidationErrorData, http_res
1440
+ )
1441
+ raise errors.ImageMetadataValidationError(response_data, http_res)
1442
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1443
+ http_res_text = await utils.stream_to_text_async(http_res)
1444
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1445
+ if utils.match_response(http_res, ["500", "504"], "*"):
1446
+ http_res_text = await utils.stream_to_text_async(http_res)
1447
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1448
+ if utils.match_response(http_res, "4XX", "*"):
1449
+ http_res_text = await utils.stream_to_text_async(http_res)
1450
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1451
+ if utils.match_response(http_res, "5XX", "*"):
1452
+ http_res_text = await utils.stream_to_text_async(http_res)
1453
+ raise errors.APIError("API error occurred", http_res, http_res_text)
1454
+
1455
+ raise errors.APIError("Unexpected response received", http_res)
1456
+
1203
1457
  def get_public(
1204
1458
  self,
1205
1459
  *,
@@ -490,23 +490,6 @@ if TYPE_CHECKING:
490
490
  from .fulfillmenttimeframe import FulfillmentTimeframe
491
491
  from .fullissuedcard import FullIssuedCard, FullIssuedCardTypedDict
492
492
  from .generatedby import GeneratedBy, GeneratedByTypedDict
493
- from .generatedbyaccountid import (
494
- GeneratedByAccountID,
495
- GeneratedByAccountIDTypedDict,
496
- )
497
- from .generatedbybankaccountid import (
498
- GeneratedByBankAccountID,
499
- GeneratedByBankAccountIDTypedDict,
500
- )
501
- from .generatedbycardid import GeneratedByCardID, GeneratedByCardIDTypedDict
502
- from .generatedbydisputeid import (
503
- GeneratedByDisputeID,
504
- GeneratedByDisputeIDTypedDict,
505
- )
506
- from .generatedbytransferid import (
507
- GeneratedByTransferID,
508
- GeneratedByTransferIDTypedDict,
509
- )
510
493
  from .geographicreach import GeographicReach
511
494
  from .governmentid import (
512
495
  GovernmentID,
@@ -1604,16 +1587,6 @@ __all__ = [
1604
1587
  "FullIssuedCard",
1605
1588
  "FullIssuedCardTypedDict",
1606
1589
  "GeneratedBy",
1607
- "GeneratedByAccountID",
1608
- "GeneratedByAccountIDTypedDict",
1609
- "GeneratedByBankAccountID",
1610
- "GeneratedByBankAccountIDTypedDict",
1611
- "GeneratedByCardID",
1612
- "GeneratedByCardIDTypedDict",
1613
- "GeneratedByDisputeID",
1614
- "GeneratedByDisputeIDTypedDict",
1615
- "GeneratedByTransferID",
1616
- "GeneratedByTransferIDTypedDict",
1617
1590
  "GeneratedByTypedDict",
1618
1591
  "GeographicReach",
1619
1592
  "GovernmentID",
@@ -2592,16 +2565,6 @@ _dynamic_imports: dict[str, str] = {
2592
2565
  "FullIssuedCardTypedDict": ".fullissuedcard",
2593
2566
  "GeneratedBy": ".generatedby",
2594
2567
  "GeneratedByTypedDict": ".generatedby",
2595
- "GeneratedByAccountID": ".generatedbyaccountid",
2596
- "GeneratedByAccountIDTypedDict": ".generatedbyaccountid",
2597
- "GeneratedByBankAccountID": ".generatedbybankaccountid",
2598
- "GeneratedByBankAccountIDTypedDict": ".generatedbybankaccountid",
2599
- "GeneratedByCardID": ".generatedbycardid",
2600
- "GeneratedByCardIDTypedDict": ".generatedbycardid",
2601
- "GeneratedByDisputeID": ".generatedbydisputeid",
2602
- "GeneratedByDisputeIDTypedDict": ".generatedbydisputeid",
2603
- "GeneratedByTransferID": ".generatedbytransferid",
2604
- "GeneratedByTransferIDTypedDict": ".generatedbytransferid",
2605
2568
  "GeographicReach": ".geographicreach",
2606
2569
  "GovernmentID": ".governmentid",
2607
2570
  "GovernmentIDTypedDict": ".governmentid",
@@ -32,6 +32,8 @@ class BusinessProfileTypedDict(TypedDict):
32
32
  r"""Indicates whether a tax ID has been provided for this business."""
33
33
  representatives: NotRequired[List[RepresentativeTypedDict]]
34
34
  industry_codes: NotRequired[IndustryCodesTypedDict]
35
+ industry: NotRequired[str]
36
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
35
37
  primary_regulator: NotRequired[PrimaryRegulator]
36
38
  r"""If the business is a financial institution, this field describes its primary regulator."""
37
39
 
@@ -75,6 +77,9 @@ class BusinessProfile(BaseModel):
75
77
  Optional[IndustryCodes], pydantic.Field(alias="industryCodes")
76
78
  ] = None
77
79
 
80
+ industry: Optional[str] = None
81
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
82
+
78
83
  primary_regulator: Annotated[
79
84
  Optional[PrimaryRegulator], pydantic.Field(alias="primaryRegulator")
80
85
  ] = None
@@ -50,6 +50,8 @@ class CreateBusinessErrorTypedDict(TypedDict):
50
50
  description: NotRequired[str]
51
51
  tax_id: NotRequired[CreateBusinessErrorTaxIDTypedDict]
52
52
  industry_codes: NotRequired[CreateBusinessErrorIndustryCodesTypedDict]
53
+ industry: NotRequired[str]
54
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
53
55
  primary_regulator: NotRequired[str]
54
56
 
55
57
 
@@ -83,6 +85,9 @@ class CreateBusinessError(BaseModel):
83
85
  pydantic.Field(alias="industryCodes"),
84
86
  ] = None
85
87
 
88
+ industry: Optional[str] = None
89
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
90
+
86
91
  primary_regulator: Annotated[
87
92
  Optional[str], pydantic.Field(alias="primaryRegulator")
88
93
  ] = None
@@ -28,6 +28,8 @@ class CreateBusinessProfileTypedDict(TypedDict):
28
28
  tax_id: NotRequired[TaxIDTypedDict]
29
29
  r"""An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN."""
30
30
  industry_codes: NotRequired[IndustryCodesTypedDict]
31
+ industry: NotRequired[str]
32
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
31
33
  primary_regulator: NotRequired[PrimaryRegulator]
32
34
  r"""If the business is a financial institution, this field describes its primary regulator."""
33
35
 
@@ -63,6 +65,9 @@ class CreateBusinessProfile(BaseModel):
63
65
  Optional[IndustryCodes], pydantic.Field(alias="industryCodes")
64
66
  ] = None
65
67
 
68
+ industry: Optional[str] = None
69
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
70
+
66
71
  primary_regulator: Annotated[
67
72
  Optional[PrimaryRegulator], pydantic.Field(alias="primaryRegulator")
68
73
  ] = None
@@ -1,39 +1,33 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .generatedbyaccountid import GeneratedByAccountID, GeneratedByAccountIDTypedDict
5
- from .generatedbybankaccountid import (
6
- GeneratedByBankAccountID,
7
- GeneratedByBankAccountIDTypedDict,
8
- )
9
- from .generatedbycardid import GeneratedByCardID, GeneratedByCardIDTypedDict
10
- from .generatedbydisputeid import GeneratedByDisputeID, GeneratedByDisputeIDTypedDict
11
- from .generatedbytransferid import GeneratedByTransferID, GeneratedByTransferIDTypedDict
12
- from typing import Union
13
- from typing_extensions import TypeAliasType
14
-
15
-
16
- GeneratedByTypedDict = TypeAliasType(
17
- "GeneratedByTypedDict",
18
- Union[
19
- GeneratedByTransferIDTypedDict,
20
- GeneratedByCardIDTypedDict,
21
- GeneratedByDisputeIDTypedDict,
22
- GeneratedByAccountIDTypedDict,
23
- GeneratedByBankAccountIDTypedDict,
24
- ],
25
- )
26
- r"""The entity that generated the fee."""
27
-
28
-
29
- GeneratedBy = TypeAliasType(
30
- "GeneratedBy",
31
- Union[
32
- GeneratedByTransferID,
33
- GeneratedByCardID,
34
- GeneratedByDisputeID,
35
- GeneratedByAccountID,
36
- GeneratedByBankAccountID,
37
- ],
38
- )
39
- r"""The entity that generated the fee."""
4
+ from moovio_sdk.types import BaseModel
5
+ import pydantic
6
+ from typing import Optional
7
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
+
9
+
10
+ class GeneratedByTypedDict(TypedDict):
11
+ r"""The entity that generated the fee."""
12
+
13
+ transfer_id: NotRequired[str]
14
+ card_id: NotRequired[str]
15
+ dispute_id: NotRequired[str]
16
+ account_id: NotRequired[str]
17
+ bank_account_id: NotRequired[str]
18
+
19
+
20
+ class GeneratedBy(BaseModel):
21
+ r"""The entity that generated the fee."""
22
+
23
+ transfer_id: Annotated[Optional[str], pydantic.Field(alias="transferID")] = None
24
+
25
+ card_id: Annotated[Optional[str], pydantic.Field(alias="cardID")] = None
26
+
27
+ dispute_id: Annotated[Optional[str], pydantic.Field(alias="disputeID")] = None
28
+
29
+ account_id: Annotated[Optional[str], pydantic.Field(alias="accountID")] = None
30
+
31
+ bank_account_id: Annotated[Optional[str], pydantic.Field(alias="bankAccountID")] = (
32
+ None
33
+ )
@@ -63,7 +63,7 @@ class Metadata(BaseModel):
63
63
  class ImageUpdateRequestMultiPartTypedDict(TypedDict):
64
64
  r"""Multipart request body for updating an image and/or its metadata."""
65
65
 
66
- image: NotRequired[ImageUpdateRequestMultiPartImageTypedDict]
66
+ image: ImageUpdateRequestMultiPartImageTypedDict
67
67
  metadata: NotRequired[Nullable[MetadataTypedDict]]
68
68
  r"""JSON-encoded metadata to update for the image.
69
69
 
@@ -75,9 +75,9 @@ class ImageUpdateRequestMultiPart(BaseModel):
75
75
  r"""Multipart request body for updating an image and/or its metadata."""
76
76
 
77
77
  image: Annotated[
78
- Optional[ImageUpdateRequestMultiPartImage],
78
+ ImageUpdateRequestMultiPartImage,
79
79
  FieldMetadata(multipart=MultipartFormMetadata(file=True)),
80
- ] = None
80
+ ]
81
81
 
82
82
  metadata: Annotated[
83
83
  OptionalNullable[Metadata],
@@ -90,7 +90,7 @@ class ImageUpdateRequestMultiPart(BaseModel):
90
90
 
91
91
  @model_serializer(mode="wrap")
92
92
  def serialize_model(self, handler):
93
- optional_fields = ["image", "metadata"]
93
+ optional_fields = ["metadata"]
94
94
  nullable_fields = ["metadata"]
95
95
  null_default_fields = []
96
96
 
@@ -10,7 +10,7 @@ class IndustryTaxonomyTypedDict(TypedDict):
10
10
  r"""A structured industry taxonomy entry with category and mapped to a default MCC code."""
11
11
 
12
12
  industry: str
13
- r"""URL-safe identifier for the industry"""
13
+ r"""Classification identifier for the industry."""
14
14
  display_name: str
15
15
  r"""Display name of the industry"""
16
16
  category: str
@@ -25,7 +25,7 @@ class IndustryTaxonomy(BaseModel):
25
25
  r"""A structured industry taxonomy entry with category and mapped to a default MCC code."""
26
26
 
27
27
  industry: str
28
- r"""URL-safe identifier for the industry"""
28
+ r"""Classification identifier for the industry."""
29
29
 
30
30
  display_name: Annotated[str, pydantic.Field(alias="displayName")]
31
31
  r"""Display name of the industry"""
@@ -27,6 +27,8 @@ class PatchBusinessTypedDict(TypedDict):
27
27
  r"""An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN."""
28
28
  owners_provided: NotRequired[bool]
29
29
  industry_codes: NotRequired[IndustryCodesTypedDict]
30
+ industry: NotRequired[str]
31
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
30
32
  primary_regulator: NotRequired[PrimaryRegulator]
31
33
  r"""If the business is a financial institution, this field describes its primary regulator."""
32
34
 
@@ -66,6 +68,9 @@ class PatchBusiness(BaseModel):
66
68
  Optional[IndustryCodes], pydantic.Field(alias="industryCodes")
67
69
  ] = None
68
70
 
71
+ industry: Optional[str] = None
72
+ r"""Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values."""
73
+
69
74
  primary_regulator: Annotated[
70
75
  Optional[PrimaryRegulator], pydantic.Field(alias="primaryRegulator")
71
76
  ] = None
@@ -30,6 +30,7 @@ class RequirementID(str, Enum):
30
30
  BUSINESS_OWNERS = "business.owners"
31
31
  BUSINESS_CLASSIFICATION = "business.classification"
32
32
  BUSINESS_INDUSTRY_CODE_MCC = "business.industry-code-mcc"
33
+ BUSINESS_INDUSTRY = "business.industry"
33
34
  BUSINESS_INDICATE_OWNERS_PROVIDED = "business.indicate-owners-provided"
34
35
  BUSINESS_AVERAGE_TRANSACTION_SIZE = "business.average-transaction-size"
35
36
  BUSINESS_MAX_TRANSACTION_SIZE = "business.max-transaction-size"