kard-financial-sdk 0.0.82__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 (302) hide show
  1. kard/__init__.py +579 -0
  2. kard/auth/__init__.py +34 -0
  3. kard/auth/client.py +121 -0
  4. kard/auth/raw_client.py +108 -0
  5. kard/auth/types/__init__.py +34 -0
  6. kard/auth/types/token_response.py +25 -0
  7. kard/client.py +416 -0
  8. kard/commons/__init__.py +120 -0
  9. kard/commons/errors/__init__.py +44 -0
  10. kard/commons/errors/conflict_error.py +11 -0
  11. kard/commons/errors/does_not_exist_error.py +11 -0
  12. kard/commons/errors/internal_server_error.py +11 -0
  13. kard/commons/errors/invalid_request.py +11 -0
  14. kard/commons/errors/unauthorized_error.py +11 -0
  15. kard/commons/types/__init__.py +107 -0
  16. kard/commons/types/category_option.py +26 -0
  17. kard/commons/types/commission_type.py +5 -0
  18. kard/commons/types/commission_value.py +28 -0
  19. kard/commons/types/commission_value_type.py +5 -0
  20. kard/commons/types/empty_object.py +17 -0
  21. kard/commons/types/enrolled_rewards_type.py +5 -0
  22. kard/commons/types/error_object.py +43 -0
  23. kard/commons/types/error_response.py +20 -0
  24. kard/commons/types/error_source.py +32 -0
  25. kard/commons/types/job.py +24 -0
  26. kard/commons/types/job_response.py +27 -0
  27. kard/commons/types/job_status.py +5 -0
  28. kard/commons/types/links.py +27 -0
  29. kard/commons/types/mongo_id.py +3 -0
  30. kard/commons/types/notification_type.py +19 -0
  31. kard/commons/types/organization_id.py +3 -0
  32. kard/commons/types/purchase_channel.py +5 -0
  33. kard/commons/types/relationship_data.py +24 -0
  34. kard/commons/types/relationship_multiple.py +20 -0
  35. kard/commons/types/relationship_single.py +20 -0
  36. kard/commons/types/resource_type.py +3 -0
  37. kard/commons/types/state.py +68 -0
  38. kard/commons/types/subscription_id.py +3 -0
  39. kard/commons/types/user_id.py +3 -0
  40. kard/core/__init__.py +105 -0
  41. kard/core/api_error.py +23 -0
  42. kard/core/client_wrapper.py +97 -0
  43. kard/core/datetime_utils.py +28 -0
  44. kard/core/file.py +67 -0
  45. kard/core/force_multipart.py +18 -0
  46. kard/core/http_client.py +613 -0
  47. kard/core/http_response.py +55 -0
  48. kard/core/http_sse/__init__.py +42 -0
  49. kard/core/http_sse/_api.py +112 -0
  50. kard/core/http_sse/_decoders.py +61 -0
  51. kard/core/http_sse/_exceptions.py +7 -0
  52. kard/core/http_sse/_models.py +17 -0
  53. kard/core/jsonable_encoder.py +100 -0
  54. kard/core/oauth_token_provider.py +73 -0
  55. kard/core/pydantic_utilities.py +260 -0
  56. kard/core/query_encoder.py +58 -0
  57. kard/core/remove_none_from_dict.py +11 -0
  58. kard/core/request_options.py +35 -0
  59. kard/core/serialization.py +276 -0
  60. kard/environment.py +8 -0
  61. kard/files/__init__.py +58 -0
  62. kard/files/client.py +213 -0
  63. kard/files/errors/__init__.py +34 -0
  64. kard/files/errors/forbidden_error.py +11 -0
  65. kard/files/raw_client.py +278 -0
  66. kard/files/types/__init__.py +53 -0
  67. kard/files/types/file_metadata_attribute.py +39 -0
  68. kard/files/types/file_metadata_with_url.py +34 -0
  69. kard/files/types/file_type.py +13 -0
  70. kard/files/types/files_metadata_sort_options.py +5 -0
  71. kard/files/types/get_files_metadata_response.py +71 -0
  72. kard/files/types/pagination_meta.py +29 -0
  73. kard/notifications/__init__.py +279 -0
  74. kard/notifications/client.py +63 -0
  75. kard/notifications/raw_client.py +13 -0
  76. kard/notifications/subscriptions/__init__.py +97 -0
  77. kard/notifications/subscriptions/client.py +372 -0
  78. kard/notifications/subscriptions/raw_client.py +581 -0
  79. kard/notifications/subscriptions/types/__init__.py +94 -0
  80. kard/notifications/subscriptions/types/create_subscription_union.py +27 -0
  81. kard/notifications/subscriptions/types/create_subscriptions_response_object.py +43 -0
  82. kard/notifications/subscriptions/types/created_subscription.py +23 -0
  83. kard/notifications/subscriptions/types/subscription.py +25 -0
  84. kard/notifications/subscriptions/types/subscription_attributes.py +35 -0
  85. kard/notifications/subscriptions/types/subscription_request.py +20 -0
  86. kard/notifications/subscriptions/types/subscription_request_attributes.py +35 -0
  87. kard/notifications/subscriptions/types/subscription_request_body.py +42 -0
  88. kard/notifications/subscriptions/types/subscription_request_union.py +26 -0
  89. kard/notifications/subscriptions/types/subscription_union.py +27 -0
  90. kard/notifications/subscriptions/types/subscriptions_response_object.py +43 -0
  91. kard/notifications/subscriptions/types/update_subscription_request.py +20 -0
  92. kard/notifications/subscriptions/types/update_subscription_request_attributes.py +39 -0
  93. kard/notifications/subscriptions/types/update_subscription_request_body.py +40 -0
  94. kard/notifications/subscriptions/types/update_subscription_request_union.py +26 -0
  95. kard/notifications/subscriptions/types/update_subscriptions_response_object.py +41 -0
  96. kard/notifications/types/__init__.py +214 -0
  97. kard/notifications/types/audit_update_attributes.py +88 -0
  98. kard/notifications/types/audit_update_data.py +27 -0
  99. kard/notifications/types/audit_update_relationships.py +21 -0
  100. kard/notifications/types/broker_amount.py +28 -0
  101. kard/notifications/types/broker_amount_type.py +5 -0
  102. kard/notifications/types/broker_asset.py +33 -0
  103. kard/notifications/types/broker_asset_type.py +5 -0
  104. kard/notifications/types/broker_operation_hours.py +30 -0
  105. kard/notifications/types/broker_operation_period.py +28 -0
  106. kard/notifications/types/broker_purchase_channel.py +5 -0
  107. kard/notifications/types/broker_reward.py +28 -0
  108. kard/notifications/types/broker_reward_type.py +5 -0
  109. kard/notifications/types/clawback_data.py +27 -0
  110. kard/notifications/types/earned_reward_approved_data.py +27 -0
  111. kard/notifications/types/earned_reward_attributes.py +18 -0
  112. kard/notifications/types/earned_reward_relationships.py +21 -0
  113. kard/notifications/types/earned_reward_settled_attributes.py +23 -0
  114. kard/notifications/types/earned_reward_settled_data.py +27 -0
  115. kard/notifications/types/failed_transaction_attributes.py +41 -0
  116. kard/notifications/types/failed_transaction_data.py +27 -0
  117. kard/notifications/types/failed_transaction_relationships.py +22 -0
  118. kard/notifications/types/location_address.py +39 -0
  119. kard/notifications/types/location_coordinates.py +27 -0
  120. kard/notifications/types/location_status.py +5 -0
  121. kard/notifications/types/merchant_source.py +5 -0
  122. kard/notifications/types/notification_data_union.py +203 -0
  123. kard/notifications/types/notification_metadata.py +22 -0
  124. kard/notifications/types/notification_payload.py +65 -0
  125. kard/notifications/types/offer_status.py +5 -0
  126. kard/notifications/types/offer_type.py +5 -0
  127. kard/notifications/types/reward_notification_attributes.py +48 -0
  128. kard/notifications/types/time_period.py +27 -0
  129. kard/notifications/types/transaction_relationships.py +22 -0
  130. kard/notifications/types/user_offer_status.py +5 -0
  131. kard/notifications/types/valid_transaction_attributes.py +25 -0
  132. kard/notifications/types/valid_transaction_commission_earned.py +21 -0
  133. kard/notifications/types/valid_transaction_data.py +27 -0
  134. kard/notifications/types/webhook_locations_attributes.py +71 -0
  135. kard/notifications/types/webhook_locations_data.py +27 -0
  136. kard/notifications/types/webhook_locations_relationships.py +20 -0
  137. kard/notifications/types/webhook_merchant_attributes.py +67 -0
  138. kard/notifications/types/webhook_merchant_data.py +27 -0
  139. kard/notifications/types/webhook_merchant_relationships.py +20 -0
  140. kard/notifications/types/webhook_offer_attributes.py +143 -0
  141. kard/notifications/types/webhook_offer_data.py +27 -0
  142. kard/notifications/types/webhook_offer_relationships.py +20 -0
  143. kard/notifications/types/webhook_user_offer_attributes.py +41 -0
  144. kard/notifications/types/webhook_user_offer_data.py +27 -0
  145. kard/notifications/types/webhook_user_offer_relationships.py +21 -0
  146. kard/ping/__init__.py +39 -0
  147. kard/ping/client.py +100 -0
  148. kard/ping/errors/__init__.py +34 -0
  149. kard/ping/errors/network_blocked_error.py +11 -0
  150. kard/ping/raw_client.py +113 -0
  151. kard/ping/types/__init__.py +38 -0
  152. kard/ping/types/network_blocked_error_body.py +34 -0
  153. kard/ping/types/ping_response_object.py +46 -0
  154. kard/py.typed +0 -0
  155. kard/transactions/__init__.py +212 -0
  156. kard/transactions/client.py +639 -0
  157. kard/transactions/errors/__init__.py +40 -0
  158. kard/transactions/errors/create_audit_multi_status.py +11 -0
  159. kard/transactions/errors/create_incoming_transactions_multi_status.py +11 -0
  160. kard/transactions/errors/fraud_multi_status.py +11 -0
  161. kard/transactions/raw_client.py +925 -0
  162. kard/transactions/types/__init__.py +199 -0
  163. kard/transactions/types/audit_attributes.py +44 -0
  164. kard/transactions/types/audit_request_data.py +20 -0
  165. kard/transactions/types/audit_response_attributes.py +24 -0
  166. kard/transactions/types/audit_response_data.py +25 -0
  167. kard/transactions/types/audit_status.py +5 -0
  168. kard/transactions/types/card_network.py +5 -0
  169. kard/transactions/types/commission_earned_details.py +21 -0
  170. kard/transactions/types/create_audit_multi_status_response.py +21 -0
  171. kard/transactions/types/create_audit_request_body.py +43 -0
  172. kard/transactions/types/create_audit_request_data_union.py +26 -0
  173. kard/transactions/types/create_audit_response_body.py +41 -0
  174. kard/transactions/types/create_audit_response_data_union.py +27 -0
  175. kard/transactions/types/direction_type.py +5 -0
  176. kard/transactions/types/fraudulent_transaction_attributes.py +24 -0
  177. kard/transactions/types/fraudulent_transaction_data.py +30 -0
  178. kard/transactions/types/fraudulent_transaction_object.py +42 -0
  179. kard/transactions/types/fraudulent_transaction_request_body.py +45 -0
  180. kard/transactions/types/fraudulent_transaction_response.py +21 -0
  181. kard/transactions/types/get_earned_rewards_response.py +133 -0
  182. kard/transactions/types/matched_transactions_attributes.py +156 -0
  183. kard/transactions/types/matched_transactions_request.py +25 -0
  184. kard/transactions/types/merchant.py +82 -0
  185. kard/transactions/types/payment_status.py +5 -0
  186. kard/transactions/types/payment_type.py +5 -0
  187. kard/transactions/types/processor_mid.py +26 -0
  188. kard/transactions/types/receipt_medium_type.py +5 -0
  189. kard/transactions/types/rewarded_transaction.py +27 -0
  190. kard/transactions/types/rewarded_transaction_attributes.py +74 -0
  191. kard/transactions/types/rewarded_transaction_relationships.py +22 -0
  192. kard/transactions/types/rewarded_transaction_status.py +5 -0
  193. kard/transactions/types/rewarded_transaction_union.py +29 -0
  194. kard/transactions/types/states.py +68 -0
  195. kard/transactions/types/transaction_included_resource.py +47 -0
  196. kard/transactions/types/transaction_merchant_attributes.py +22 -0
  197. kard/transactions/types/transaction_merchant_resource.py +28 -0
  198. kard/transactions/types/transaction_offer_attributes.py +26 -0
  199. kard/transactions/types/transaction_offer_resource.py +28 -0
  200. kard/transactions/types/transaction_payment_type.py +5 -0
  201. kard/transactions/types/transaction_status.py +5 -0
  202. kard/transactions/types/transactions.py +46 -0
  203. kard/transactions/types/transactions_attributes.py +198 -0
  204. kard/transactions/types/transactions_multi_response.py +21 -0
  205. kard/transactions/types/transactions_request.py +25 -0
  206. kard/transactions/types/transactions_request_body.py +90 -0
  207. kard/transactions/types/transactions_response.py +38 -0
  208. kard/transactions/types/transactions_response_data.py +27 -0
  209. kard/transactions/types/visa_mid.py +23 -0
  210. kard/transactions/types/visa_mid_details.py +27 -0
  211. kard/users/__init__.py +293 -0
  212. kard/users/attributions/__init__.py +73 -0
  213. kard/users/attributions/client.py +229 -0
  214. kard/users/attributions/raw_client.py +215 -0
  215. kard/users/attributions/types/__init__.py +73 -0
  216. kard/users/attributions/types/create_attribution_request_object.py +75 -0
  217. kard/users/attributions/types/create_attribution_request_union.py +45 -0
  218. kard/users/attributions/types/create_attribution_response.py +38 -0
  219. kard/users/attributions/types/event_code.py +5 -0
  220. kard/users/attributions/types/notification_attribution_attributes.py +35 -0
  221. kard/users/attributions/types/notification_attribution_request.py +20 -0
  222. kard/users/attributions/types/notification_medium.py +5 -0
  223. kard/users/attributions/types/offer_attribution_attributes.py +35 -0
  224. kard/users/attributions/types/offer_attribution_request.py +20 -0
  225. kard/users/attributions/types/offer_medium.py +5 -0
  226. kard/users/client.py +512 -0
  227. kard/users/errors/__init__.py +34 -0
  228. kard/users/errors/multi_status.py +11 -0
  229. kard/users/raw_client.py +783 -0
  230. kard/users/rewards/__init__.py +133 -0
  231. kard/users/rewards/client.py +448 -0
  232. kard/users/rewards/raw_client.py +587 -0
  233. kard/users/rewards/types/__init__.py +130 -0
  234. kard/users/rewards/types/amount.py +21 -0
  235. kard/users/rewards/types/amount_type.py +5 -0
  236. kard/users/rewards/types/asset.py +28 -0
  237. kard/users/rewards/types/category_data.py +18 -0
  238. kard/users/rewards/types/category_fields.py +23 -0
  239. kard/users/rewards/types/category_identifier.py +24 -0
  240. kard/users/rewards/types/category_included.py +21 -0
  241. kard/users/rewards/types/category_relationship.py +20 -0
  242. kard/users/rewards/types/category_relationship_object.py +20 -0
  243. kard/users/rewards/types/commission.py +21 -0
  244. kard/users/rewards/types/coordinates.py +20 -0
  245. kard/users/rewards/types/eligibility_location_address.py +24 -0
  246. kard/users/rewards/types/eligibility_location_included.py +8 -0
  247. kard/users/rewards/types/eligibility_offer_included.py +7 -0
  248. kard/users/rewards/types/eligibility_offer_relationship.py +7 -0
  249. kard/users/rewards/types/location_attributes.py +28 -0
  250. kard/users/rewards/types/location_data.py +32 -0
  251. kard/users/rewards/types/location_relationships.py +18 -0
  252. kard/users/rewards/types/location_sort_options.py +5 -0
  253. kard/users/rewards/types/locations_response_object.py +215 -0
  254. kard/users/rewards/types/offer_common_fields.py +103 -0
  255. kard/users/rewards/types/offer_data_union.py +30 -0
  256. kard/users/rewards/types/offer_relationship.py +21 -0
  257. kard/users/rewards/types/offer_sort_options.py +7 -0
  258. kard/users/rewards/types/offers_response_object.py +130 -0
  259. kard/users/rewards/types/operation_hours.py +23 -0
  260. kard/users/rewards/types/operation_period.py +21 -0
  261. kard/users/rewards/types/operation_time.py +20 -0
  262. kard/users/rewards/types/standard_offer.py +21 -0
  263. kard/users/rewards/types/standard_offer_core.py +26 -0
  264. kard/users/rewards/types/standard_offer_fields.py +18 -0
  265. kard/users/types/__init__.py +66 -0
  266. kard/users/types/create_users_multi_status_response.py +21 -0
  267. kard/users/types/create_users_object.py +42 -0
  268. kard/users/types/delete_user_response_object.py +34 -0
  269. kard/users/types/update_user_object.py +40 -0
  270. kard/users/types/user_request_attributes.py +60 -0
  271. kard/users/types/user_request_data.py +22 -0
  272. kard/users/types/user_request_data_union.py +28 -0
  273. kard/users/types/user_response_no_data.py +22 -0
  274. kard/users/types/user_response_union_no_data.py +28 -0
  275. kard/users/uploads/__init__.py +112 -0
  276. kard/users/uploads/client.py +484 -0
  277. kard/users/uploads/errors/__init__.py +34 -0
  278. kard/users/uploads/errors/upload_part_multi_status.py +13 -0
  279. kard/users/uploads/raw_client.py +625 -0
  280. kard/users/uploads/types/__init__.py +119 -0
  281. kard/users/uploads/types/create_upload_part_data_union.py +27 -0
  282. kard/users/uploads/types/create_upload_part_multi_status_response.py +21 -0
  283. kard/users/uploads/types/create_upload_part_request_object.py +74 -0
  284. kard/users/uploads/types/create_upload_part_response_data.py +25 -0
  285. kard/users/uploads/types/create_upload_part_response_data_union.py +27 -0
  286. kard/users/uploads/types/create_upload_part_response_object.py +39 -0
  287. kard/users/uploads/types/create_upload_request_data_union.py +26 -0
  288. kard/users/uploads/types/create_upload_request_object.py +36 -0
  289. kard/users/uploads/types/create_upload_response_data.py +25 -0
  290. kard/users/uploads/types/create_upload_response_data_union.py +27 -0
  291. kard/users/uploads/types/create_upload_response_object.py +37 -0
  292. kard/users/uploads/types/historical_transaction_complete_no_data.py +25 -0
  293. kard/users/uploads/types/start_historical_upload_no_data.py +20 -0
  294. kard/users/uploads/types/update_upload_request_data_union.py +27 -0
  295. kard/users/uploads/types/update_upload_request_object.py +37 -0
  296. kard/users/uploads/types/update_upload_response_data.py +25 -0
  297. kard/users/uploads/types/update_upload_response_data_union.py +27 -0
  298. kard/users/uploads/types/update_upload_response_object.py +37 -0
  299. kard/version.py +3 -0
  300. kard_financial_sdk-0.0.82.dist-info/METADATA +238 -0
  301. kard_financial_sdk-0.0.82.dist-info/RECORD +302 -0
  302. kard_financial_sdk-0.0.82.dist-info/WHEEL +4 -0
@@ -0,0 +1,372 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ...commons.types.notification_type import NotificationType
6
+ from ...commons.types.organization_id import OrganizationId
7
+ from ...commons.types.subscription_id import SubscriptionId
8
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ...core.request_options import RequestOptions
10
+ from .raw_client import AsyncRawSubscriptionsClient, RawSubscriptionsClient
11
+ from .types.create_subscriptions_response_object import CreateSubscriptionsResponseObject
12
+ from .types.subscription_request_union import SubscriptionRequestUnion
13
+ from .types.subscriptions_response_object import SubscriptionsResponseObject
14
+ from .types.update_subscription_request_union import UpdateSubscriptionRequestUnion
15
+ from .types.update_subscriptions_response_object import UpdateSubscriptionsResponseObject
16
+
17
+ # this is used as the default value for optional parameters
18
+ OMIT = typing.cast(typing.Any, ...)
19
+
20
+
21
+ class SubscriptionsClient:
22
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
23
+ self._raw_client = RawSubscriptionsClient(client_wrapper=client_wrapper)
24
+
25
+ @property
26
+ def with_raw_response(self) -> RawSubscriptionsClient:
27
+ """
28
+ Retrieves a raw implementation of this client that returns raw responses.
29
+
30
+ Returns
31
+ -------
32
+ RawSubscriptionsClient
33
+ """
34
+ return self._raw_client
35
+
36
+ def get(
37
+ self,
38
+ organization_id: OrganizationId,
39
+ *,
40
+ filter_event_name: typing.Optional[NotificationType] = None,
41
+ request_options: typing.Optional[RequestOptions] = None,
42
+ ) -> SubscriptionsResponseObject:
43
+ """
44
+ Call this endpoint to fetch the subscriptions of the provided issuer.<br/>
45
+ <b>Required scopes:</b> `notifications:read`
46
+
47
+ Parameters
48
+ ----------
49
+ organization_id : OrganizationId
50
+
51
+ filter_event_name : typing.Optional[NotificationType]
52
+
53
+ request_options : typing.Optional[RequestOptions]
54
+ Request-specific configuration.
55
+
56
+ Returns
57
+ -------
58
+ SubscriptionsResponseObject
59
+
60
+ Examples
61
+ --------
62
+ from kard import KardApi
63
+
64
+ client = KardApi(
65
+ client_id="YOUR_CLIENT_ID",
66
+ client_secret="YOUR_CLIENT_SECRET",
67
+ )
68
+ client.notifications.subscriptions.get(
69
+ organization_id="organization-123",
70
+ )
71
+ """
72
+ _response = self._raw_client.get(
73
+ organization_id, filter_event_name=filter_event_name, request_options=request_options
74
+ )
75
+ return _response.data
76
+
77
+ def create(
78
+ self,
79
+ organization_id: OrganizationId,
80
+ *,
81
+ data: typing.Sequence[SubscriptionRequestUnion],
82
+ request_options: typing.Optional[RequestOptions] = None,
83
+ ) -> CreateSubscriptionsResponseObject:
84
+ """
85
+ Call this endpoint to subscribe to notification events.<br/>
86
+ <b>Required scopes:</b> `notifications:write`
87
+
88
+ Parameters
89
+ ----------
90
+ organization_id : OrganizationId
91
+
92
+ data : typing.Sequence[SubscriptionRequestUnion]
93
+
94
+ request_options : typing.Optional[RequestOptions]
95
+ Request-specific configuration.
96
+
97
+ Returns
98
+ -------
99
+ CreateSubscriptionsResponseObject
100
+
101
+ Examples
102
+ --------
103
+ from kard import KardApi
104
+ from kard.notifications.subscriptions import (
105
+ SubscriptionRequestAttributes,
106
+ SubscriptionRequestUnion_Subscription,
107
+ )
108
+
109
+ client = KardApi(
110
+ client_id="YOUR_CLIENT_ID",
111
+ client_secret="YOUR_CLIENT_SECRET",
112
+ )
113
+ client.notifications.subscriptions.create(
114
+ organization_id="organization-123",
115
+ data=[
116
+ SubscriptionRequestUnion_Subscription(
117
+ attributes=SubscriptionRequestAttributes(
118
+ event_name="earnedRewardApproved",
119
+ webhook_url="https://webhookUrl.com/post",
120
+ enabled=True,
121
+ ),
122
+ )
123
+ ],
124
+ )
125
+ """
126
+ _response = self._raw_client.create(organization_id, data=data, request_options=request_options)
127
+ return _response.data
128
+
129
+ def update(
130
+ self,
131
+ organization_id: OrganizationId,
132
+ subscription_id: SubscriptionId,
133
+ *,
134
+ data: UpdateSubscriptionRequestUnion,
135
+ request_options: typing.Optional[RequestOptions] = None,
136
+ ) -> UpdateSubscriptionsResponseObject:
137
+ """
138
+ Call this endpoint to update existing notification subscriptions.<br/>
139
+ <b>Required scopes:</b> `notifications:write`
140
+
141
+ Parameters
142
+ ----------
143
+ organization_id : OrganizationId
144
+
145
+ subscription_id : SubscriptionId
146
+
147
+ data : UpdateSubscriptionRequestUnion
148
+
149
+ request_options : typing.Optional[RequestOptions]
150
+ Request-specific configuration.
151
+
152
+ Returns
153
+ -------
154
+ UpdateSubscriptionsResponseObject
155
+
156
+ Examples
157
+ --------
158
+ from kard import KardApi
159
+ from kard.notifications.subscriptions import (
160
+ UpdateSubscriptionRequestAttributes,
161
+ UpdateSubscriptionRequestUnion_Subscription,
162
+ )
163
+
164
+ client = KardApi(
165
+ client_id="YOUR_CLIENT_ID",
166
+ client_secret="YOUR_CLIENT_SECRET",
167
+ )
168
+ client.notifications.subscriptions.update(
169
+ organization_id="organization-123",
170
+ subscription_id="subscription-123",
171
+ data=UpdateSubscriptionRequestUnion_Subscription(
172
+ attributes=UpdateSubscriptionRequestAttributes(
173
+ event_name="earnedRewardApproved",
174
+ webhook_url="https://webhookUrl.com/post",
175
+ enabled=True,
176
+ ),
177
+ ),
178
+ )
179
+ """
180
+ _response = self._raw_client.update(
181
+ organization_id, subscription_id, data=data, request_options=request_options
182
+ )
183
+ return _response.data
184
+
185
+
186
+ class AsyncSubscriptionsClient:
187
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
188
+ self._raw_client = AsyncRawSubscriptionsClient(client_wrapper=client_wrapper)
189
+
190
+ @property
191
+ def with_raw_response(self) -> AsyncRawSubscriptionsClient:
192
+ """
193
+ Retrieves a raw implementation of this client that returns raw responses.
194
+
195
+ Returns
196
+ -------
197
+ AsyncRawSubscriptionsClient
198
+ """
199
+ return self._raw_client
200
+
201
+ async def get(
202
+ self,
203
+ organization_id: OrganizationId,
204
+ *,
205
+ filter_event_name: typing.Optional[NotificationType] = None,
206
+ request_options: typing.Optional[RequestOptions] = None,
207
+ ) -> SubscriptionsResponseObject:
208
+ """
209
+ Call this endpoint to fetch the subscriptions of the provided issuer.<br/>
210
+ <b>Required scopes:</b> `notifications:read`
211
+
212
+ Parameters
213
+ ----------
214
+ organization_id : OrganizationId
215
+
216
+ filter_event_name : typing.Optional[NotificationType]
217
+
218
+ request_options : typing.Optional[RequestOptions]
219
+ Request-specific configuration.
220
+
221
+ Returns
222
+ -------
223
+ SubscriptionsResponseObject
224
+
225
+ Examples
226
+ --------
227
+ import asyncio
228
+
229
+ from kard import AsyncKardApi
230
+
231
+ client = AsyncKardApi(
232
+ client_id="YOUR_CLIENT_ID",
233
+ client_secret="YOUR_CLIENT_SECRET",
234
+ )
235
+
236
+
237
+ async def main() -> None:
238
+ await client.notifications.subscriptions.get(
239
+ organization_id="organization-123",
240
+ )
241
+
242
+
243
+ asyncio.run(main())
244
+ """
245
+ _response = await self._raw_client.get(
246
+ organization_id, filter_event_name=filter_event_name, request_options=request_options
247
+ )
248
+ return _response.data
249
+
250
+ async def create(
251
+ self,
252
+ organization_id: OrganizationId,
253
+ *,
254
+ data: typing.Sequence[SubscriptionRequestUnion],
255
+ request_options: typing.Optional[RequestOptions] = None,
256
+ ) -> CreateSubscriptionsResponseObject:
257
+ """
258
+ Call this endpoint to subscribe to notification events.<br/>
259
+ <b>Required scopes:</b> `notifications:write`
260
+
261
+ Parameters
262
+ ----------
263
+ organization_id : OrganizationId
264
+
265
+ data : typing.Sequence[SubscriptionRequestUnion]
266
+
267
+ request_options : typing.Optional[RequestOptions]
268
+ Request-specific configuration.
269
+
270
+ Returns
271
+ -------
272
+ CreateSubscriptionsResponseObject
273
+
274
+ Examples
275
+ --------
276
+ import asyncio
277
+
278
+ from kard import AsyncKardApi
279
+ from kard.notifications.subscriptions import (
280
+ SubscriptionRequestAttributes,
281
+ SubscriptionRequestUnion_Subscription,
282
+ )
283
+
284
+ client = AsyncKardApi(
285
+ client_id="YOUR_CLIENT_ID",
286
+ client_secret="YOUR_CLIENT_SECRET",
287
+ )
288
+
289
+
290
+ async def main() -> None:
291
+ await client.notifications.subscriptions.create(
292
+ organization_id="organization-123",
293
+ data=[
294
+ SubscriptionRequestUnion_Subscription(
295
+ attributes=SubscriptionRequestAttributes(
296
+ event_name="earnedRewardApproved",
297
+ webhook_url="https://webhookUrl.com/post",
298
+ enabled=True,
299
+ ),
300
+ )
301
+ ],
302
+ )
303
+
304
+
305
+ asyncio.run(main())
306
+ """
307
+ _response = await self._raw_client.create(organization_id, data=data, request_options=request_options)
308
+ return _response.data
309
+
310
+ async def update(
311
+ self,
312
+ organization_id: OrganizationId,
313
+ subscription_id: SubscriptionId,
314
+ *,
315
+ data: UpdateSubscriptionRequestUnion,
316
+ request_options: typing.Optional[RequestOptions] = None,
317
+ ) -> UpdateSubscriptionsResponseObject:
318
+ """
319
+ Call this endpoint to update existing notification subscriptions.<br/>
320
+ <b>Required scopes:</b> `notifications:write`
321
+
322
+ Parameters
323
+ ----------
324
+ organization_id : OrganizationId
325
+
326
+ subscription_id : SubscriptionId
327
+
328
+ data : UpdateSubscriptionRequestUnion
329
+
330
+ request_options : typing.Optional[RequestOptions]
331
+ Request-specific configuration.
332
+
333
+ Returns
334
+ -------
335
+ UpdateSubscriptionsResponseObject
336
+
337
+ Examples
338
+ --------
339
+ import asyncio
340
+
341
+ from kard import AsyncKardApi
342
+ from kard.notifications.subscriptions import (
343
+ UpdateSubscriptionRequestAttributes,
344
+ UpdateSubscriptionRequestUnion_Subscription,
345
+ )
346
+
347
+ client = AsyncKardApi(
348
+ client_id="YOUR_CLIENT_ID",
349
+ client_secret="YOUR_CLIENT_SECRET",
350
+ )
351
+
352
+
353
+ async def main() -> None:
354
+ await client.notifications.subscriptions.update(
355
+ organization_id="organization-123",
356
+ subscription_id="subscription-123",
357
+ data=UpdateSubscriptionRequestUnion_Subscription(
358
+ attributes=UpdateSubscriptionRequestAttributes(
359
+ event_name="earnedRewardApproved",
360
+ webhook_url="https://webhookUrl.com/post",
361
+ enabled=True,
362
+ ),
363
+ ),
364
+ )
365
+
366
+
367
+ asyncio.run(main())
368
+ """
369
+ _response = await self._raw_client.update(
370
+ organization_id, subscription_id, data=data, request_options=request_options
371
+ )
372
+ return _response.data