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.
- kard/__init__.py +579 -0
- kard/auth/__init__.py +34 -0
- kard/auth/client.py +121 -0
- kard/auth/raw_client.py +108 -0
- kard/auth/types/__init__.py +34 -0
- kard/auth/types/token_response.py +25 -0
- kard/client.py +416 -0
- kard/commons/__init__.py +120 -0
- kard/commons/errors/__init__.py +44 -0
- kard/commons/errors/conflict_error.py +11 -0
- kard/commons/errors/does_not_exist_error.py +11 -0
- kard/commons/errors/internal_server_error.py +11 -0
- kard/commons/errors/invalid_request.py +11 -0
- kard/commons/errors/unauthorized_error.py +11 -0
- kard/commons/types/__init__.py +107 -0
- kard/commons/types/category_option.py +26 -0
- kard/commons/types/commission_type.py +5 -0
- kard/commons/types/commission_value.py +28 -0
- kard/commons/types/commission_value_type.py +5 -0
- kard/commons/types/empty_object.py +17 -0
- kard/commons/types/enrolled_rewards_type.py +5 -0
- kard/commons/types/error_object.py +43 -0
- kard/commons/types/error_response.py +20 -0
- kard/commons/types/error_source.py +32 -0
- kard/commons/types/job.py +24 -0
- kard/commons/types/job_response.py +27 -0
- kard/commons/types/job_status.py +5 -0
- kard/commons/types/links.py +27 -0
- kard/commons/types/mongo_id.py +3 -0
- kard/commons/types/notification_type.py +19 -0
- kard/commons/types/organization_id.py +3 -0
- kard/commons/types/purchase_channel.py +5 -0
- kard/commons/types/relationship_data.py +24 -0
- kard/commons/types/relationship_multiple.py +20 -0
- kard/commons/types/relationship_single.py +20 -0
- kard/commons/types/resource_type.py +3 -0
- kard/commons/types/state.py +68 -0
- kard/commons/types/subscription_id.py +3 -0
- kard/commons/types/user_id.py +3 -0
- kard/core/__init__.py +105 -0
- kard/core/api_error.py +23 -0
- kard/core/client_wrapper.py +97 -0
- kard/core/datetime_utils.py +28 -0
- kard/core/file.py +67 -0
- kard/core/force_multipart.py +18 -0
- kard/core/http_client.py +613 -0
- kard/core/http_response.py +55 -0
- kard/core/http_sse/__init__.py +42 -0
- kard/core/http_sse/_api.py +112 -0
- kard/core/http_sse/_decoders.py +61 -0
- kard/core/http_sse/_exceptions.py +7 -0
- kard/core/http_sse/_models.py +17 -0
- kard/core/jsonable_encoder.py +100 -0
- kard/core/oauth_token_provider.py +73 -0
- kard/core/pydantic_utilities.py +260 -0
- kard/core/query_encoder.py +58 -0
- kard/core/remove_none_from_dict.py +11 -0
- kard/core/request_options.py +35 -0
- kard/core/serialization.py +276 -0
- kard/environment.py +8 -0
- kard/files/__init__.py +58 -0
- kard/files/client.py +213 -0
- kard/files/errors/__init__.py +34 -0
- kard/files/errors/forbidden_error.py +11 -0
- kard/files/raw_client.py +278 -0
- kard/files/types/__init__.py +53 -0
- kard/files/types/file_metadata_attribute.py +39 -0
- kard/files/types/file_metadata_with_url.py +34 -0
- kard/files/types/file_type.py +13 -0
- kard/files/types/files_metadata_sort_options.py +5 -0
- kard/files/types/get_files_metadata_response.py +71 -0
- kard/files/types/pagination_meta.py +29 -0
- kard/notifications/__init__.py +279 -0
- kard/notifications/client.py +63 -0
- kard/notifications/raw_client.py +13 -0
- kard/notifications/subscriptions/__init__.py +97 -0
- kard/notifications/subscriptions/client.py +372 -0
- kard/notifications/subscriptions/raw_client.py +581 -0
- kard/notifications/subscriptions/types/__init__.py +94 -0
- kard/notifications/subscriptions/types/create_subscription_union.py +27 -0
- kard/notifications/subscriptions/types/create_subscriptions_response_object.py +43 -0
- kard/notifications/subscriptions/types/created_subscription.py +23 -0
- kard/notifications/subscriptions/types/subscription.py +25 -0
- kard/notifications/subscriptions/types/subscription_attributes.py +35 -0
- kard/notifications/subscriptions/types/subscription_request.py +20 -0
- kard/notifications/subscriptions/types/subscription_request_attributes.py +35 -0
- kard/notifications/subscriptions/types/subscription_request_body.py +42 -0
- kard/notifications/subscriptions/types/subscription_request_union.py +26 -0
- kard/notifications/subscriptions/types/subscription_union.py +27 -0
- kard/notifications/subscriptions/types/subscriptions_response_object.py +43 -0
- kard/notifications/subscriptions/types/update_subscription_request.py +20 -0
- kard/notifications/subscriptions/types/update_subscription_request_attributes.py +39 -0
- kard/notifications/subscriptions/types/update_subscription_request_body.py +40 -0
- kard/notifications/subscriptions/types/update_subscription_request_union.py +26 -0
- kard/notifications/subscriptions/types/update_subscriptions_response_object.py +41 -0
- kard/notifications/types/__init__.py +214 -0
- kard/notifications/types/audit_update_attributes.py +88 -0
- kard/notifications/types/audit_update_data.py +27 -0
- kard/notifications/types/audit_update_relationships.py +21 -0
- kard/notifications/types/broker_amount.py +28 -0
- kard/notifications/types/broker_amount_type.py +5 -0
- kard/notifications/types/broker_asset.py +33 -0
- kard/notifications/types/broker_asset_type.py +5 -0
- kard/notifications/types/broker_operation_hours.py +30 -0
- kard/notifications/types/broker_operation_period.py +28 -0
- kard/notifications/types/broker_purchase_channel.py +5 -0
- kard/notifications/types/broker_reward.py +28 -0
- kard/notifications/types/broker_reward_type.py +5 -0
- kard/notifications/types/clawback_data.py +27 -0
- kard/notifications/types/earned_reward_approved_data.py +27 -0
- kard/notifications/types/earned_reward_attributes.py +18 -0
- kard/notifications/types/earned_reward_relationships.py +21 -0
- kard/notifications/types/earned_reward_settled_attributes.py +23 -0
- kard/notifications/types/earned_reward_settled_data.py +27 -0
- kard/notifications/types/failed_transaction_attributes.py +41 -0
- kard/notifications/types/failed_transaction_data.py +27 -0
- kard/notifications/types/failed_transaction_relationships.py +22 -0
- kard/notifications/types/location_address.py +39 -0
- kard/notifications/types/location_coordinates.py +27 -0
- kard/notifications/types/location_status.py +5 -0
- kard/notifications/types/merchant_source.py +5 -0
- kard/notifications/types/notification_data_union.py +203 -0
- kard/notifications/types/notification_metadata.py +22 -0
- kard/notifications/types/notification_payload.py +65 -0
- kard/notifications/types/offer_status.py +5 -0
- kard/notifications/types/offer_type.py +5 -0
- kard/notifications/types/reward_notification_attributes.py +48 -0
- kard/notifications/types/time_period.py +27 -0
- kard/notifications/types/transaction_relationships.py +22 -0
- kard/notifications/types/user_offer_status.py +5 -0
- kard/notifications/types/valid_transaction_attributes.py +25 -0
- kard/notifications/types/valid_transaction_commission_earned.py +21 -0
- kard/notifications/types/valid_transaction_data.py +27 -0
- kard/notifications/types/webhook_locations_attributes.py +71 -0
- kard/notifications/types/webhook_locations_data.py +27 -0
- kard/notifications/types/webhook_locations_relationships.py +20 -0
- kard/notifications/types/webhook_merchant_attributes.py +67 -0
- kard/notifications/types/webhook_merchant_data.py +27 -0
- kard/notifications/types/webhook_merchant_relationships.py +20 -0
- kard/notifications/types/webhook_offer_attributes.py +143 -0
- kard/notifications/types/webhook_offer_data.py +27 -0
- kard/notifications/types/webhook_offer_relationships.py +20 -0
- kard/notifications/types/webhook_user_offer_attributes.py +41 -0
- kard/notifications/types/webhook_user_offer_data.py +27 -0
- kard/notifications/types/webhook_user_offer_relationships.py +21 -0
- kard/ping/__init__.py +39 -0
- kard/ping/client.py +100 -0
- kard/ping/errors/__init__.py +34 -0
- kard/ping/errors/network_blocked_error.py +11 -0
- kard/ping/raw_client.py +113 -0
- kard/ping/types/__init__.py +38 -0
- kard/ping/types/network_blocked_error_body.py +34 -0
- kard/ping/types/ping_response_object.py +46 -0
- kard/py.typed +0 -0
- kard/transactions/__init__.py +212 -0
- kard/transactions/client.py +639 -0
- kard/transactions/errors/__init__.py +40 -0
- kard/transactions/errors/create_audit_multi_status.py +11 -0
- kard/transactions/errors/create_incoming_transactions_multi_status.py +11 -0
- kard/transactions/errors/fraud_multi_status.py +11 -0
- kard/transactions/raw_client.py +925 -0
- kard/transactions/types/__init__.py +199 -0
- kard/transactions/types/audit_attributes.py +44 -0
- kard/transactions/types/audit_request_data.py +20 -0
- kard/transactions/types/audit_response_attributes.py +24 -0
- kard/transactions/types/audit_response_data.py +25 -0
- kard/transactions/types/audit_status.py +5 -0
- kard/transactions/types/card_network.py +5 -0
- kard/transactions/types/commission_earned_details.py +21 -0
- kard/transactions/types/create_audit_multi_status_response.py +21 -0
- kard/transactions/types/create_audit_request_body.py +43 -0
- kard/transactions/types/create_audit_request_data_union.py +26 -0
- kard/transactions/types/create_audit_response_body.py +41 -0
- kard/transactions/types/create_audit_response_data_union.py +27 -0
- kard/transactions/types/direction_type.py +5 -0
- kard/transactions/types/fraudulent_transaction_attributes.py +24 -0
- kard/transactions/types/fraudulent_transaction_data.py +30 -0
- kard/transactions/types/fraudulent_transaction_object.py +42 -0
- kard/transactions/types/fraudulent_transaction_request_body.py +45 -0
- kard/transactions/types/fraudulent_transaction_response.py +21 -0
- kard/transactions/types/get_earned_rewards_response.py +133 -0
- kard/transactions/types/matched_transactions_attributes.py +156 -0
- kard/transactions/types/matched_transactions_request.py +25 -0
- kard/transactions/types/merchant.py +82 -0
- kard/transactions/types/payment_status.py +5 -0
- kard/transactions/types/payment_type.py +5 -0
- kard/transactions/types/processor_mid.py +26 -0
- kard/transactions/types/receipt_medium_type.py +5 -0
- kard/transactions/types/rewarded_transaction.py +27 -0
- kard/transactions/types/rewarded_transaction_attributes.py +74 -0
- kard/transactions/types/rewarded_transaction_relationships.py +22 -0
- kard/transactions/types/rewarded_transaction_status.py +5 -0
- kard/transactions/types/rewarded_transaction_union.py +29 -0
- kard/transactions/types/states.py +68 -0
- kard/transactions/types/transaction_included_resource.py +47 -0
- kard/transactions/types/transaction_merchant_attributes.py +22 -0
- kard/transactions/types/transaction_merchant_resource.py +28 -0
- kard/transactions/types/transaction_offer_attributes.py +26 -0
- kard/transactions/types/transaction_offer_resource.py +28 -0
- kard/transactions/types/transaction_payment_type.py +5 -0
- kard/transactions/types/transaction_status.py +5 -0
- kard/transactions/types/transactions.py +46 -0
- kard/transactions/types/transactions_attributes.py +198 -0
- kard/transactions/types/transactions_multi_response.py +21 -0
- kard/transactions/types/transactions_request.py +25 -0
- kard/transactions/types/transactions_request_body.py +90 -0
- kard/transactions/types/transactions_response.py +38 -0
- kard/transactions/types/transactions_response_data.py +27 -0
- kard/transactions/types/visa_mid.py +23 -0
- kard/transactions/types/visa_mid_details.py +27 -0
- kard/users/__init__.py +293 -0
- kard/users/attributions/__init__.py +73 -0
- kard/users/attributions/client.py +229 -0
- kard/users/attributions/raw_client.py +215 -0
- kard/users/attributions/types/__init__.py +73 -0
- kard/users/attributions/types/create_attribution_request_object.py +75 -0
- kard/users/attributions/types/create_attribution_request_union.py +45 -0
- kard/users/attributions/types/create_attribution_response.py +38 -0
- kard/users/attributions/types/event_code.py +5 -0
- kard/users/attributions/types/notification_attribution_attributes.py +35 -0
- kard/users/attributions/types/notification_attribution_request.py +20 -0
- kard/users/attributions/types/notification_medium.py +5 -0
- kard/users/attributions/types/offer_attribution_attributes.py +35 -0
- kard/users/attributions/types/offer_attribution_request.py +20 -0
- kard/users/attributions/types/offer_medium.py +5 -0
- kard/users/client.py +512 -0
- kard/users/errors/__init__.py +34 -0
- kard/users/errors/multi_status.py +11 -0
- kard/users/raw_client.py +783 -0
- kard/users/rewards/__init__.py +133 -0
- kard/users/rewards/client.py +448 -0
- kard/users/rewards/raw_client.py +587 -0
- kard/users/rewards/types/__init__.py +130 -0
- kard/users/rewards/types/amount.py +21 -0
- kard/users/rewards/types/amount_type.py +5 -0
- kard/users/rewards/types/asset.py +28 -0
- kard/users/rewards/types/category_data.py +18 -0
- kard/users/rewards/types/category_fields.py +23 -0
- kard/users/rewards/types/category_identifier.py +24 -0
- kard/users/rewards/types/category_included.py +21 -0
- kard/users/rewards/types/category_relationship.py +20 -0
- kard/users/rewards/types/category_relationship_object.py +20 -0
- kard/users/rewards/types/commission.py +21 -0
- kard/users/rewards/types/coordinates.py +20 -0
- kard/users/rewards/types/eligibility_location_address.py +24 -0
- kard/users/rewards/types/eligibility_location_included.py +8 -0
- kard/users/rewards/types/eligibility_offer_included.py +7 -0
- kard/users/rewards/types/eligibility_offer_relationship.py +7 -0
- kard/users/rewards/types/location_attributes.py +28 -0
- kard/users/rewards/types/location_data.py +32 -0
- kard/users/rewards/types/location_relationships.py +18 -0
- kard/users/rewards/types/location_sort_options.py +5 -0
- kard/users/rewards/types/locations_response_object.py +215 -0
- kard/users/rewards/types/offer_common_fields.py +103 -0
- kard/users/rewards/types/offer_data_union.py +30 -0
- kard/users/rewards/types/offer_relationship.py +21 -0
- kard/users/rewards/types/offer_sort_options.py +7 -0
- kard/users/rewards/types/offers_response_object.py +130 -0
- kard/users/rewards/types/operation_hours.py +23 -0
- kard/users/rewards/types/operation_period.py +21 -0
- kard/users/rewards/types/operation_time.py +20 -0
- kard/users/rewards/types/standard_offer.py +21 -0
- kard/users/rewards/types/standard_offer_core.py +26 -0
- kard/users/rewards/types/standard_offer_fields.py +18 -0
- kard/users/types/__init__.py +66 -0
- kard/users/types/create_users_multi_status_response.py +21 -0
- kard/users/types/create_users_object.py +42 -0
- kard/users/types/delete_user_response_object.py +34 -0
- kard/users/types/update_user_object.py +40 -0
- kard/users/types/user_request_attributes.py +60 -0
- kard/users/types/user_request_data.py +22 -0
- kard/users/types/user_request_data_union.py +28 -0
- kard/users/types/user_response_no_data.py +22 -0
- kard/users/types/user_response_union_no_data.py +28 -0
- kard/users/uploads/__init__.py +112 -0
- kard/users/uploads/client.py +484 -0
- kard/users/uploads/errors/__init__.py +34 -0
- kard/users/uploads/errors/upload_part_multi_status.py +13 -0
- kard/users/uploads/raw_client.py +625 -0
- kard/users/uploads/types/__init__.py +119 -0
- kard/users/uploads/types/create_upload_part_data_union.py +27 -0
- kard/users/uploads/types/create_upload_part_multi_status_response.py +21 -0
- kard/users/uploads/types/create_upload_part_request_object.py +74 -0
- kard/users/uploads/types/create_upload_part_response_data.py +25 -0
- kard/users/uploads/types/create_upload_part_response_data_union.py +27 -0
- kard/users/uploads/types/create_upload_part_response_object.py +39 -0
- kard/users/uploads/types/create_upload_request_data_union.py +26 -0
- kard/users/uploads/types/create_upload_request_object.py +36 -0
- kard/users/uploads/types/create_upload_response_data.py +25 -0
- kard/users/uploads/types/create_upload_response_data_union.py +27 -0
- kard/users/uploads/types/create_upload_response_object.py +37 -0
- kard/users/uploads/types/historical_transaction_complete_no_data.py +25 -0
- kard/users/uploads/types/start_historical_upload_no_data.py +20 -0
- kard/users/uploads/types/update_upload_request_data_union.py +27 -0
- kard/users/uploads/types/update_upload_request_object.py +37 -0
- kard/users/uploads/types/update_upload_response_data.py +25 -0
- kard/users/uploads/types/update_upload_response_data_union.py +27 -0
- kard/users/uploads/types/update_upload_response_object.py +37 -0
- kard/version.py +3 -0
- kard_financial_sdk-0.0.82.dist-info/METADATA +238 -0
- kard_financial_sdk-0.0.82.dist-info/RECORD +302 -0
- kard_financial_sdk-0.0.82.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.links import Links
|
|
7
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .eligibility_location_included import EligibilityLocationIncluded
|
|
9
|
+
from .location_data import LocationData
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class LocationsResponseObject(UniversalBaseModel):
|
|
13
|
+
"""
|
|
14
|
+
Examples
|
|
15
|
+
--------
|
|
16
|
+
import datetime
|
|
17
|
+
|
|
18
|
+
from kard.commons import Links, RelationshipData, RelationshipMultiple
|
|
19
|
+
from kard.users.rewards import (
|
|
20
|
+
Amount,
|
|
21
|
+
Asset,
|
|
22
|
+
CategoryFields,
|
|
23
|
+
CategoryIncluded,
|
|
24
|
+
Commission,
|
|
25
|
+
Coordinates,
|
|
26
|
+
EligibilityLocationAddress,
|
|
27
|
+
LocationAttributes,
|
|
28
|
+
LocationData,
|
|
29
|
+
LocationRelationships,
|
|
30
|
+
LocationsResponseObject,
|
|
31
|
+
OfferDataUnion_StandardOffer,
|
|
32
|
+
OperationHours,
|
|
33
|
+
OperationPeriod,
|
|
34
|
+
OperationTime,
|
|
35
|
+
StandardOfferFields,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
LocationsResponseObject(
|
|
39
|
+
data=[
|
|
40
|
+
LocationData(
|
|
41
|
+
id="5e27318c9b346f00087fba8l",
|
|
42
|
+
attributes=LocationAttributes(
|
|
43
|
+
name="Worlds Greatest Chicken",
|
|
44
|
+
address=EligibilityLocationAddress(
|
|
45
|
+
street="120 Main St",
|
|
46
|
+
city="Philadelphia",
|
|
47
|
+
state="PA",
|
|
48
|
+
zip_code="19147",
|
|
49
|
+
),
|
|
50
|
+
coordinates=Coordinates(
|
|
51
|
+
longitude=-75.1446869,
|
|
52
|
+
latitude=39.9419429,
|
|
53
|
+
),
|
|
54
|
+
phone="+1 (123) 555-8880",
|
|
55
|
+
operation_hours=OperationHours(
|
|
56
|
+
periods=[
|
|
57
|
+
OperationPeriod(
|
|
58
|
+
close=OperationTime(
|
|
59
|
+
day=1,
|
|
60
|
+
time="1700",
|
|
61
|
+
),
|
|
62
|
+
open=OperationTime(
|
|
63
|
+
day=1,
|
|
64
|
+
time="0900",
|
|
65
|
+
),
|
|
66
|
+
),
|
|
67
|
+
OperationPeriod(
|
|
68
|
+
close=OperationTime(
|
|
69
|
+
day=2,
|
|
70
|
+
time="1700",
|
|
71
|
+
),
|
|
72
|
+
open=OperationTime(
|
|
73
|
+
day=2,
|
|
74
|
+
time="0900",
|
|
75
|
+
),
|
|
76
|
+
),
|
|
77
|
+
OperationPeriod(
|
|
78
|
+
close=OperationTime(
|
|
79
|
+
day=3,
|
|
80
|
+
time="1700",
|
|
81
|
+
),
|
|
82
|
+
open=OperationTime(
|
|
83
|
+
day=3,
|
|
84
|
+
time="0900",
|
|
85
|
+
),
|
|
86
|
+
),
|
|
87
|
+
OperationPeriod(
|
|
88
|
+
close=OperationTime(
|
|
89
|
+
day=4,
|
|
90
|
+
time="1700",
|
|
91
|
+
),
|
|
92
|
+
open=OperationTime(
|
|
93
|
+
day=4,
|
|
94
|
+
time="0900",
|
|
95
|
+
),
|
|
96
|
+
),
|
|
97
|
+
OperationPeriod(
|
|
98
|
+
close=OperationTime(
|
|
99
|
+
day=5,
|
|
100
|
+
time="1700",
|
|
101
|
+
),
|
|
102
|
+
open=OperationTime(
|
|
103
|
+
day=5,
|
|
104
|
+
time="0900",
|
|
105
|
+
),
|
|
106
|
+
),
|
|
107
|
+
],
|
|
108
|
+
weekday_text=[
|
|
109
|
+
"Monday: 9:00 AM – 5:00 PM",
|
|
110
|
+
"Tuesday: 9:00 AM – 5:00 PM",
|
|
111
|
+
"Wednesday: 9:00 AM – 5:00 PM",
|
|
112
|
+
"Thursday: 9:00 AM – 5:00 PM",
|
|
113
|
+
"Friday: 9:00 AM – 5:00 PM",
|
|
114
|
+
"Saturday: Closed",
|
|
115
|
+
"Sunday: Closed",
|
|
116
|
+
],
|
|
117
|
+
),
|
|
118
|
+
),
|
|
119
|
+
relationships=LocationRelationships(
|
|
120
|
+
offers=RelationshipMultiple(
|
|
121
|
+
data=[
|
|
122
|
+
RelationshipData(
|
|
123
|
+
type="standardOffer",
|
|
124
|
+
id="5e27318c9b346f00087fbb5b",
|
|
125
|
+
)
|
|
126
|
+
],
|
|
127
|
+
),
|
|
128
|
+
category=RelationshipMultiple(
|
|
129
|
+
data=[
|
|
130
|
+
RelationshipData(
|
|
131
|
+
type="category",
|
|
132
|
+
id="65920081b524d126068de24a",
|
|
133
|
+
)
|
|
134
|
+
],
|
|
135
|
+
),
|
|
136
|
+
),
|
|
137
|
+
)
|
|
138
|
+
],
|
|
139
|
+
included=[
|
|
140
|
+
CategoryIncluded(
|
|
141
|
+
id="65920081b524d126068de24a",
|
|
142
|
+
attributes=CategoryFields(
|
|
143
|
+
name="Food & Beverage",
|
|
144
|
+
),
|
|
145
|
+
),
|
|
146
|
+
OfferDataUnion_StandardOffer(
|
|
147
|
+
id="5e27318c9b346f00087fbb5c",
|
|
148
|
+
attributes=StandardOfferFields(
|
|
149
|
+
name="Worlds Greatest Chicken",
|
|
150
|
+
terms="Worlds Greatest Chicken offers are only available within US Locations.",
|
|
151
|
+
purchase_channel=["INSTORE"],
|
|
152
|
+
user_reward=Commission(
|
|
153
|
+
type="PERCENT",
|
|
154
|
+
value=5.7,
|
|
155
|
+
),
|
|
156
|
+
start_date=datetime.datetime.fromisoformat(
|
|
157
|
+
"2022-01-01 05:00:00+00:00",
|
|
158
|
+
),
|
|
159
|
+
expiration_date=datetime.datetime.fromisoformat(
|
|
160
|
+
"2022-01-01 05:00:00+00:00",
|
|
161
|
+
),
|
|
162
|
+
min_reward_amount=Amount(
|
|
163
|
+
type="CENTS",
|
|
164
|
+
value=500,
|
|
165
|
+
),
|
|
166
|
+
max_reward_amount=Amount(
|
|
167
|
+
type="CENTS",
|
|
168
|
+
value=2000,
|
|
169
|
+
),
|
|
170
|
+
min_transaction_amount=Amount(
|
|
171
|
+
type="CENTS",
|
|
172
|
+
value=500,
|
|
173
|
+
),
|
|
174
|
+
max_transaction_amount=Amount(
|
|
175
|
+
type="CENTS",
|
|
176
|
+
value=2000,
|
|
177
|
+
),
|
|
178
|
+
max_redemptions=1,
|
|
179
|
+
is_targeted=True,
|
|
180
|
+
assets=[
|
|
181
|
+
Asset(
|
|
182
|
+
type="IMG_VIEW",
|
|
183
|
+
url="http://assets.getkard.com/logo/img?attribution-tokens",
|
|
184
|
+
alt="Worlds Greatest Chicken Logo Image",
|
|
185
|
+
),
|
|
186
|
+
Asset(
|
|
187
|
+
type="BANNER_VIEW",
|
|
188
|
+
url="http://assets.getkard.com/banner/img?attribution-tokens",
|
|
189
|
+
alt="Worlds Greatest Chicken Banner Image",
|
|
190
|
+
),
|
|
191
|
+
],
|
|
192
|
+
website_url="http://worldsgreatestchickent.test.com",
|
|
193
|
+
description="Worlds Greatest Chicken brings you the tastiest crispy, double fried spicy chicken in the world.",
|
|
194
|
+
),
|
|
195
|
+
),
|
|
196
|
+
],
|
|
197
|
+
links=Links(
|
|
198
|
+
self_="/v2/issuers/{organizationId}/users/{userId}/locations?page[size]=1&filter[latitude]=39.9419429&filter[longitude]=-75.1446869&filter[radius]=10&include=offers,categories",
|
|
199
|
+
next="/v2/issuers/{organizationId}/users/{userId}/locations?page[after]=NDMyNzQyODI3OTQw&page[size]=1&filter[latitude]=39.9419429&filter[longitude]=-75.1446869&filter[radius]=10&include=offers,categories",
|
|
200
|
+
),
|
|
201
|
+
)
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
data: typing.List[LocationData]
|
|
205
|
+
links: Links
|
|
206
|
+
included: typing.Optional[typing.List[EligibilityLocationIncluded]] = None
|
|
207
|
+
|
|
208
|
+
if IS_PYDANTIC_V2:
|
|
209
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
210
|
+
else:
|
|
211
|
+
|
|
212
|
+
class Config:
|
|
213
|
+
frozen = True
|
|
214
|
+
smart_union = True
|
|
215
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
import typing_extensions
|
|
8
|
+
from ....commons.types.purchase_channel import PurchaseChannel
|
|
9
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
10
|
+
from ....core.serialization import FieldMetadata
|
|
11
|
+
from .amount import Amount
|
|
12
|
+
from .asset import Asset
|
|
13
|
+
from .commission import Commission
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class OfferCommonFields(UniversalBaseModel):
|
|
17
|
+
terms: str = pydantic.Field()
|
|
18
|
+
"""
|
|
19
|
+
Terms and conditions on offer
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
max_redemptions: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="maxRedemptions")] = (
|
|
23
|
+
pydantic.Field(default=None)
|
|
24
|
+
)
|
|
25
|
+
"""
|
|
26
|
+
Maximum times cardholder can redeem offer, if applicable
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
name: str = pydantic.Field()
|
|
30
|
+
"""
|
|
31
|
+
Name of offer
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
purchase_channel: typing_extensions.Annotated[typing.List[PurchaseChannel], FieldMetadata(alias="purchaseChannel")]
|
|
35
|
+
user_reward: typing_extensions.Annotated[Commission, FieldMetadata(alias="userReward")]
|
|
36
|
+
assets: typing.List[Asset] = pydantic.Field()
|
|
37
|
+
"""
|
|
38
|
+
Assets associated with offer
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
start_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="startDate")] = pydantic.Field()
|
|
42
|
+
"""
|
|
43
|
+
Beginning date of offer (UTC)
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
expiration_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="expirationDate")] = pydantic.Field()
|
|
47
|
+
"""
|
|
48
|
+
Expiration date of offer if applicable (UTC)
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
is_targeted: typing_extensions.Annotated[bool, FieldMetadata(alias="isTargeted")] = pydantic.Field()
|
|
52
|
+
"""
|
|
53
|
+
True returns only targeted offers, false returns only non-targeted offers
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
min_transaction_amount: typing_extensions.Annotated[
|
|
57
|
+
typing.Optional[Amount], FieldMetadata(alias="minTransactionAmount")
|
|
58
|
+
] = pydantic.Field(default=None)
|
|
59
|
+
"""
|
|
60
|
+
Minimum Transaction Amount required to redeem offer, if available on offer
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
max_transaction_amount: typing_extensions.Annotated[
|
|
64
|
+
typing.Optional[Amount], FieldMetadata(alias="maxTransactionAmount")
|
|
65
|
+
] = pydantic.Field(default=None)
|
|
66
|
+
"""
|
|
67
|
+
Maximum Transaction Amount allowed to redeem offer, if available on offer
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
min_reward_amount: typing_extensions.Annotated[typing.Optional[Amount], FieldMetadata(alias="minRewardAmount")] = (
|
|
71
|
+
pydantic.Field(default=None)
|
|
72
|
+
)
|
|
73
|
+
"""
|
|
74
|
+
Minimum Reward Amount, if available on offer
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
max_reward_amount: typing_extensions.Annotated[typing.Optional[Amount], FieldMetadata(alias="maxRewardAmount")] = (
|
|
78
|
+
pydantic.Field(default=None)
|
|
79
|
+
)
|
|
80
|
+
"""
|
|
81
|
+
Maximum Reward Amount, if available on offer
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
website_url: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="websiteUrl")] = pydantic.Field(
|
|
85
|
+
default=None
|
|
86
|
+
)
|
|
87
|
+
"""
|
|
88
|
+
URL to the website of the offer provider
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
92
|
+
"""
|
|
93
|
+
Description of the offer
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
if IS_PYDANTIC_V2:
|
|
97
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
98
|
+
else:
|
|
99
|
+
|
|
100
|
+
class Config:
|
|
101
|
+
frozen = True
|
|
102
|
+
smart_union = True
|
|
103
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import typing
|
|
6
|
+
|
|
7
|
+
import pydantic
|
|
8
|
+
from ....commons.types.mongo_id import MongoId
|
|
9
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
10
|
+
from .eligibility_offer_relationship import EligibilityOfferRelationship
|
|
11
|
+
from .standard_offer_fields import StandardOfferFields
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class OfferDataUnion_StandardOffer(UniversalBaseModel):
|
|
15
|
+
type: typing.Literal["standardOffer"] = "standardOffer"
|
|
16
|
+
relationships: typing.Optional[EligibilityOfferRelationship] = None
|
|
17
|
+
id: MongoId
|
|
18
|
+
attributes: StandardOfferFields
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
OfferDataUnion = OfferDataUnion_StandardOffer
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.relationship_multiple import RelationshipMultiple
|
|
7
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class OfferRelationship(UniversalBaseModel):
|
|
11
|
+
offers: RelationshipMultiple
|
|
12
|
+
category: RelationshipMultiple
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.links import Links
|
|
7
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .eligibility_offer_included import EligibilityOfferIncluded
|
|
9
|
+
from .offer_data_union import OfferDataUnion
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OffersResponseObject(UniversalBaseModel):
|
|
13
|
+
"""
|
|
14
|
+
Examples
|
|
15
|
+
--------
|
|
16
|
+
import datetime
|
|
17
|
+
|
|
18
|
+
from kard.commons import Links
|
|
19
|
+
from kard.users.rewards import (
|
|
20
|
+
Amount,
|
|
21
|
+
Asset,
|
|
22
|
+
CategoryData,
|
|
23
|
+
CategoryFields,
|
|
24
|
+
CategoryIncluded,
|
|
25
|
+
CategoryRelationship,
|
|
26
|
+
CategoryRelationshipObject,
|
|
27
|
+
Commission,
|
|
28
|
+
OfferDataUnion_StandardOffer,
|
|
29
|
+
OffersResponseObject,
|
|
30
|
+
StandardOfferFields,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
OffersResponseObject(
|
|
34
|
+
data=[
|
|
35
|
+
OfferDataUnion_StandardOffer(
|
|
36
|
+
id="5e27318c9b346f00087fbb5c",
|
|
37
|
+
attributes=StandardOfferFields(
|
|
38
|
+
name="Worlds Greatest Chicken",
|
|
39
|
+
terms="Worlds Greatest Chicken offers are only available within US Locations.",
|
|
40
|
+
purchase_channel=["INSTORE"],
|
|
41
|
+
user_reward=Commission(
|
|
42
|
+
type="PERCENT",
|
|
43
|
+
value=5.7,
|
|
44
|
+
),
|
|
45
|
+
start_date=datetime.datetime.fromisoformat(
|
|
46
|
+
"2024-11-17 05:00:00+00:00",
|
|
47
|
+
),
|
|
48
|
+
expiration_date=datetime.datetime.fromisoformat(
|
|
49
|
+
"2025-03-17 05:00:00+00:00",
|
|
50
|
+
),
|
|
51
|
+
min_reward_amount=Amount(
|
|
52
|
+
type="CENTS",
|
|
53
|
+
value=500,
|
|
54
|
+
),
|
|
55
|
+
max_reward_amount=Amount(
|
|
56
|
+
type="CENTS",
|
|
57
|
+
value=2000,
|
|
58
|
+
),
|
|
59
|
+
min_transaction_amount=Amount(
|
|
60
|
+
type="CENTS",
|
|
61
|
+
value=500,
|
|
62
|
+
),
|
|
63
|
+
max_transaction_amount=Amount(
|
|
64
|
+
type="CENTS",
|
|
65
|
+
value=10000,
|
|
66
|
+
),
|
|
67
|
+
max_redemptions=1,
|
|
68
|
+
is_targeted=True,
|
|
69
|
+
assets=[
|
|
70
|
+
Asset(
|
|
71
|
+
type="IMG_VIEW",
|
|
72
|
+
url="http://assets.getkard.com/logo/img?attribution-tokens",
|
|
73
|
+
alt="Worlds Greatest Chicken Logo Image",
|
|
74
|
+
),
|
|
75
|
+
Asset(
|
|
76
|
+
type="BANNER_VIEW",
|
|
77
|
+
url="http://assets.getkard.com/banner/img?attribution-tokens",
|
|
78
|
+
alt="Worlds Greatest Chicken Banner Image",
|
|
79
|
+
),
|
|
80
|
+
],
|
|
81
|
+
website_url="http://worldsgreatestchickent.test.com",
|
|
82
|
+
description="Worlds Greatest Chicken brings you the tastiest crispy, double fried spicy chicken in the world.",
|
|
83
|
+
),
|
|
84
|
+
relationships=CategoryRelationshipObject(
|
|
85
|
+
category=CategoryRelationship(
|
|
86
|
+
data=[
|
|
87
|
+
CategoryData(
|
|
88
|
+
id="65920081b524d126068de24a",
|
|
89
|
+
),
|
|
90
|
+
CategoryData(
|
|
91
|
+
id="65920081b524d126068de24c",
|
|
92
|
+
),
|
|
93
|
+
],
|
|
94
|
+
),
|
|
95
|
+
),
|
|
96
|
+
)
|
|
97
|
+
],
|
|
98
|
+
included=[
|
|
99
|
+
CategoryIncluded(
|
|
100
|
+
id="65920081b524d126068de24a",
|
|
101
|
+
attributes=CategoryFields(
|
|
102
|
+
name="Food & Beverage",
|
|
103
|
+
),
|
|
104
|
+
),
|
|
105
|
+
CategoryIncluded(
|
|
106
|
+
id="65920081b524d126068de24c",
|
|
107
|
+
attributes=CategoryFields(
|
|
108
|
+
name="Department Stores",
|
|
109
|
+
),
|
|
110
|
+
),
|
|
111
|
+
],
|
|
112
|
+
links=Links(
|
|
113
|
+
self_="/v2/issuers/{organizationId}/users/{userId}/offers?page[size]=1?sort=-startDate",
|
|
114
|
+
next="/v2/issuers/{organizationId}/users/{userId}/offers?page[after]=NDMyNzQyODI3OTQw&page[size]=1?&sort=-startDate",
|
|
115
|
+
),
|
|
116
|
+
)
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
data: typing.List[OfferDataUnion]
|
|
120
|
+
links: Links
|
|
121
|
+
included: typing.Optional[typing.List[EligibilityOfferIncluded]] = None
|
|
122
|
+
|
|
123
|
+
if IS_PYDANTIC_V2:
|
|
124
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
125
|
+
else:
|
|
126
|
+
|
|
127
|
+
class Config:
|
|
128
|
+
frozen = True
|
|
129
|
+
smart_union = True
|
|
130
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from ....core.serialization import FieldMetadata
|
|
9
|
+
from .operation_period import OperationPeriod
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class OperationHours(UniversalBaseModel):
|
|
13
|
+
periods: typing.List[OperationPeriod]
|
|
14
|
+
weekday_text: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="weekdayText")]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .operation_time import OperationTime
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class OperationPeriod(UniversalBaseModel):
|
|
11
|
+
close: OperationTime
|
|
12
|
+
open: OperationTime
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class OperationTime(UniversalBaseModel):
|
|
10
|
+
day: int
|
|
11
|
+
time: str
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from .eligibility_offer_relationship import EligibilityOfferRelationship
|
|
8
|
+
from .standard_offer_core import StandardOfferCore
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class StandardOffer(StandardOfferCore):
|
|
12
|
+
relationships: typing.Optional[EligibilityOfferRelationship] = None
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....commons.types.mongo_id import MongoId
|
|
7
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
|
+
from .standard_offer_fields import StandardOfferFields
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class StandardOfferCore(UniversalBaseModel):
|
|
12
|
+
id: MongoId = pydantic.Field()
|
|
13
|
+
"""
|
|
14
|
+
Offer ID in Kard's system
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
attributes: StandardOfferFields
|
|
18
|
+
|
|
19
|
+
if IS_PYDANTIC_V2:
|
|
20
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
21
|
+
else:
|
|
22
|
+
|
|
23
|
+
class Config:
|
|
24
|
+
frozen = True
|
|
25
|
+
smart_union = True
|
|
26
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from .offer_common_fields import OfferCommonFields
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class StandardOfferFields(OfferCommonFields):
|
|
11
|
+
if IS_PYDANTIC_V2:
|
|
12
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
13
|
+
else:
|
|
14
|
+
|
|
15
|
+
class Config:
|
|
16
|
+
frozen = True
|
|
17
|
+
smart_union = True
|
|
18
|
+
extra = pydantic.Extra.allow
|