paid-python 1.7.2__tar.gz → 1.8.0__tar.gz
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.
- {paid_python-1.7.2 → paid_python-1.8.0}/PKG-INFO +1 -1
- {paid_python-1.7.2 → paid_python-1.8.0}/pyproject.toml +1 -1
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/__init__.py +55 -1
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/checkouts/client.py +7 -4
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/checkouts/raw_client.py +9 -8
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/client.py +19 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/client_wrapper.py +2 -2
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customers/client.py +128 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customers/raw_client.py +222 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/errors/__init__.py +3 -1
- paid_python-1.8.0/src/paid/errors/conflict_error.py +11 -0
- paid_python-1.8.0/src/paid/orders/__init__.py +37 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/orders/client.py +317 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/orders/raw_client.py +742 -92
- paid_python-1.8.0/src/paid/orders/types/__init__.py +38 -0
- paid_python-1.8.0/src/paid/orders/types/batch_seat_assignments_request_assignments_item.py +24 -0
- paid_python-1.8.0/src/paid/orders/types/list_order_seats_request_status.py +5 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/__init__.py +39 -0
- paid_python-1.8.0/src/paid/types/batch_seat_assignments_response.py +20 -0
- paid_python-1.8.0/src/paid/types/checkout_details.py +65 -0
- paid_python-1.8.0/src/paid/types/customer_user.py +38 -0
- paid_python-1.8.0/src/paid/types/customer_user_status.py +5 -0
- paid_python-1.8.0/src/paid/types/order_seat.py +36 -0
- paid_python-1.8.0/src/paid/types/order_seat_list_response.py +22 -0
- paid_python-1.8.0/src/paid/types/seat_assignee.py +23 -0
- paid_python-1.8.0/src/paid/types/seat_assignment_status.py +5 -0
- paid_python-1.8.0/src/paid/types/webhook.py +34 -0
- paid_python-1.8.0/src/paid/types/webhook_delivery_status.py +5 -0
- paid_python-1.8.0/src/paid/types/webhook_list_response.py +20 -0
- paid_python-1.8.0/src/paid/types/webhook_name.py +18 -0
- paid_python-1.8.0/src/paid/types/webhook_test_response.py +19 -0
- paid_python-1.8.0/src/paid/webhooks/__init__.py +37 -0
- paid_python-1.8.0/src/paid/webhooks/client.py +277 -0
- paid_python-1.8.0/src/paid/webhooks/raw_client.py +526 -0
- paid_python-1.8.0/src/paid/webhooks/types/__init__.py +38 -0
- paid_python-1.8.0/src/paid/webhooks/types/test_webhook_request_webhook_name.py +18 -0
- paid_python-1.8.0/src/paid/webhooks/types/update_webhook_request_webhook_name.py +18 -0
- paid_python-1.7.2/src/paid/value_receipts/__init__.py +0 -4
- {paid_python-1.7.2 → paid_python-1.8.0}/LICENSE +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/README.md +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/checkouts/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/checkouts/types/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/checkouts/types/list_checkouts_request_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/contacts/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/contacts/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/contacts/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/contacts/types/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/contacts/types/create_contact_request_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/api_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/datetime_utils.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/file.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/force_multipart.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_sse/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_sse/_api.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_sse/_decoders.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_sse/_exceptions.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/http_sse/_models.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/jsonable_encoder.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/pydantic_utilities.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/query_encoder.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/remove_none_from_dict.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/request_options.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/core/serialization.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/credits/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/credits/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/credits/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customer_portals/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customer_portals/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customer_portals/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/customers/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/environment.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/errors/bad_request_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/errors/forbidden_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/errors/internal_server_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/errors/not_found_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/invoices/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/invoices/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/invoices/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/logger.py +0 -0
- {paid_python-1.7.2/src/paid/orders → paid_python-1.8.0/src/paid/products}/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/products/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/products/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/py.typed +0 -0
- {paid_python-1.7.2/src/paid/products → paid_python-1.8.0/src/paid/signals}/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/signals/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/signals/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/anthropic_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/anthropic_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/autoinstrumentation.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/context_data.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/context_manager.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/distributed_tracing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/gemini_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/gemini_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/openai_agents_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/openai_agents_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/openai_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/openai_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/signal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/tracing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/anthropic/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/anthropic/anthropicWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/bedrock/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/bedrock/bedrockWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/gemini/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/gemini/geminiWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/langchain/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/langchain/paidLangChainCallback.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/mistral/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/mistral/mistralWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/openai/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/openai/openAiWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/openai_agents/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/openai_agents/openaiAgentsHook.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/tracing/wrappers/utils.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/attribution.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/bulk_signals_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/checkout.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/checkout_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/checkout_product.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/checkout_product_input.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/checkout_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/contact.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/contact_billing_address.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/contact_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/contact_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_frequency.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_charge_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_allocation_cadence.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_credit_grant_timing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_recipient.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_rollover_duration_unit.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points_tiers_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points_tiers_item_tier_billing_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_pricing_model.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_attribute_request_pricing_signal_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/create_order_line_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/credit_balance.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/credit_balance_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/credit_balance_recipient.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/credit_currency.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/credit_currency_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_attribution.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_billing_address.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_by_external_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_by_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_creation_state.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_portal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/customer_portal_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/empty_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/error_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_line.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_line_payment_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_lines_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_payment_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_source.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/invoice_tax_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/order.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/order_creation_state.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/order_line.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/order_lines_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/order_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/pagination.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/product.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/product_by_external_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/product_by_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/product_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/signal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/update_contact_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/update_contact_request_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/update_customer_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/update_product_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/value_receipt_detail.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/value_receipt_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/types/value_receipt_summary.py +0 -0
- {paid_python-1.7.2/src/paid/signals → paid_python-1.8.0/src/paid/value_receipts}/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/value_receipts/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/value_receipts/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.8.0}/src/paid/version.py +0 -0
|
@@ -8,8 +8,10 @@ from importlib import import_module
|
|
|
8
8
|
if typing.TYPE_CHECKING:
|
|
9
9
|
from .types import (
|
|
10
10
|
Attribution,
|
|
11
|
+
BatchSeatAssignmentsResponse,
|
|
11
12
|
BulkSignalsResponse,
|
|
12
13
|
Checkout,
|
|
14
|
+
CheckoutDetails,
|
|
13
15
|
CheckoutListResponse,
|
|
14
16
|
CheckoutProduct,
|
|
15
17
|
CheckoutProductInput,
|
|
@@ -48,6 +50,8 @@ if typing.TYPE_CHECKING:
|
|
|
48
50
|
CustomerListResponse,
|
|
49
51
|
CustomerPortal,
|
|
50
52
|
CustomerPortalStatus,
|
|
53
|
+
CustomerUser,
|
|
54
|
+
CustomerUserStatus,
|
|
51
55
|
EmptyResponse,
|
|
52
56
|
ErrorResponse,
|
|
53
57
|
Invoice,
|
|
@@ -64,11 +68,15 @@ if typing.TYPE_CHECKING:
|
|
|
64
68
|
OrderLine,
|
|
65
69
|
OrderLinesResponse,
|
|
66
70
|
OrderListResponse,
|
|
71
|
+
OrderSeat,
|
|
72
|
+
OrderSeatListResponse,
|
|
67
73
|
Pagination,
|
|
68
74
|
Product,
|
|
69
75
|
ProductByExternalId,
|
|
70
76
|
ProductById,
|
|
71
77
|
ProductListResponse,
|
|
78
|
+
SeatAssignee,
|
|
79
|
+
SeatAssignmentStatus,
|
|
72
80
|
Signal,
|
|
73
81
|
UpdateContactRequest,
|
|
74
82
|
UpdateContactRequestRolesItem,
|
|
@@ -77,8 +85,13 @@ if typing.TYPE_CHECKING:
|
|
|
77
85
|
ValueReceiptDetail,
|
|
78
86
|
ValueReceiptListResponse,
|
|
79
87
|
ValueReceiptSummary,
|
|
88
|
+
Webhook,
|
|
89
|
+
WebhookDeliveryStatus,
|
|
90
|
+
WebhookListResponse,
|
|
91
|
+
WebhookName,
|
|
92
|
+
WebhookTestResponse,
|
|
80
93
|
)
|
|
81
|
-
from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFoundError
|
|
94
|
+
from .errors import BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError
|
|
82
95
|
from . import (
|
|
83
96
|
checkouts,
|
|
84
97
|
contacts,
|
|
@@ -90,22 +103,29 @@ if typing.TYPE_CHECKING:
|
|
|
90
103
|
products,
|
|
91
104
|
signals,
|
|
92
105
|
value_receipts,
|
|
106
|
+
webhooks,
|
|
93
107
|
)
|
|
94
108
|
from .checkouts import ListCheckoutsRequestStatus
|
|
95
109
|
from .client import AsyncPaid, Paid
|
|
96
110
|
from .contacts import CreateContactRequestRolesItem
|
|
97
111
|
from .environment import PaidEnvironment
|
|
112
|
+
from .orders import BatchSeatAssignmentsRequestAssignmentsItem, ListOrderSeatsRequestStatus
|
|
98
113
|
from .version import __version__
|
|
114
|
+
from .webhooks import TestWebhookRequestWebhookName, UpdateWebhookRequestWebhookName
|
|
99
115
|
_dynamic_imports: typing.Dict[str, str] = {
|
|
100
116
|
"AsyncPaid": ".client",
|
|
101
117
|
"Attribution": ".types",
|
|
102
118
|
"BadRequestError": ".errors",
|
|
119
|
+
"BatchSeatAssignmentsRequestAssignmentsItem": ".orders",
|
|
120
|
+
"BatchSeatAssignmentsResponse": ".types",
|
|
103
121
|
"BulkSignalsResponse": ".types",
|
|
104
122
|
"Checkout": ".types",
|
|
123
|
+
"CheckoutDetails": ".types",
|
|
105
124
|
"CheckoutListResponse": ".types",
|
|
106
125
|
"CheckoutProduct": ".types",
|
|
107
126
|
"CheckoutProductInput": ".types",
|
|
108
127
|
"CheckoutStatus": ".types",
|
|
128
|
+
"ConflictError": ".errors",
|
|
109
129
|
"Contact": ".types",
|
|
110
130
|
"ContactBillingAddress": ".types",
|
|
111
131
|
"ContactListResponse": ".types",
|
|
@@ -141,6 +161,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
141
161
|
"CustomerListResponse": ".types",
|
|
142
162
|
"CustomerPortal": ".types",
|
|
143
163
|
"CustomerPortalStatus": ".types",
|
|
164
|
+
"CustomerUser": ".types",
|
|
165
|
+
"CustomerUserStatus": ".types",
|
|
144
166
|
"EmptyResponse": ".types",
|
|
145
167
|
"ErrorResponse": ".types",
|
|
146
168
|
"ForbiddenError": ".errors",
|
|
@@ -155,12 +177,15 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
155
177
|
"InvoiceStatus": ".types",
|
|
156
178
|
"InvoiceTaxStatus": ".types",
|
|
157
179
|
"ListCheckoutsRequestStatus": ".checkouts",
|
|
180
|
+
"ListOrderSeatsRequestStatus": ".orders",
|
|
158
181
|
"NotFoundError": ".errors",
|
|
159
182
|
"Order": ".types",
|
|
160
183
|
"OrderCreationState": ".types",
|
|
161
184
|
"OrderLine": ".types",
|
|
162
185
|
"OrderLinesResponse": ".types",
|
|
163
186
|
"OrderListResponse": ".types",
|
|
187
|
+
"OrderSeat": ".types",
|
|
188
|
+
"OrderSeatListResponse": ".types",
|
|
164
189
|
"Pagination": ".types",
|
|
165
190
|
"Paid": ".client",
|
|
166
191
|
"PaidEnvironment": ".environment",
|
|
@@ -168,14 +193,23 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
168
193
|
"ProductByExternalId": ".types",
|
|
169
194
|
"ProductById": ".types",
|
|
170
195
|
"ProductListResponse": ".types",
|
|
196
|
+
"SeatAssignee": ".types",
|
|
197
|
+
"SeatAssignmentStatus": ".types",
|
|
171
198
|
"Signal": ".types",
|
|
199
|
+
"TestWebhookRequestWebhookName": ".webhooks",
|
|
172
200
|
"UpdateContactRequest": ".types",
|
|
173
201
|
"UpdateContactRequestRolesItem": ".types",
|
|
174
202
|
"UpdateCustomerRequest": ".types",
|
|
175
203
|
"UpdateProductRequest": ".types",
|
|
204
|
+
"UpdateWebhookRequestWebhookName": ".webhooks",
|
|
176
205
|
"ValueReceiptDetail": ".types",
|
|
177
206
|
"ValueReceiptListResponse": ".types",
|
|
178
207
|
"ValueReceiptSummary": ".types",
|
|
208
|
+
"Webhook": ".types",
|
|
209
|
+
"WebhookDeliveryStatus": ".types",
|
|
210
|
+
"WebhookListResponse": ".types",
|
|
211
|
+
"WebhookName": ".types",
|
|
212
|
+
"WebhookTestResponse": ".types",
|
|
179
213
|
"__version__": ".version",
|
|
180
214
|
"checkouts": ".checkouts",
|
|
181
215
|
"contacts": ".contacts",
|
|
@@ -187,6 +221,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
187
221
|
"products": ".products",
|
|
188
222
|
"signals": ".signals",
|
|
189
223
|
"value_receipts": ".value_receipts",
|
|
224
|
+
"webhooks": ".webhooks",
|
|
190
225
|
}
|
|
191
226
|
|
|
192
227
|
|
|
@@ -215,12 +250,16 @@ __all__ = [
|
|
|
215
250
|
"AsyncPaid",
|
|
216
251
|
"Attribution",
|
|
217
252
|
"BadRequestError",
|
|
253
|
+
"BatchSeatAssignmentsRequestAssignmentsItem",
|
|
254
|
+
"BatchSeatAssignmentsResponse",
|
|
218
255
|
"BulkSignalsResponse",
|
|
219
256
|
"Checkout",
|
|
257
|
+
"CheckoutDetails",
|
|
220
258
|
"CheckoutListResponse",
|
|
221
259
|
"CheckoutProduct",
|
|
222
260
|
"CheckoutProductInput",
|
|
223
261
|
"CheckoutStatus",
|
|
262
|
+
"ConflictError",
|
|
224
263
|
"Contact",
|
|
225
264
|
"ContactBillingAddress",
|
|
226
265
|
"ContactListResponse",
|
|
@@ -256,6 +295,8 @@ __all__ = [
|
|
|
256
295
|
"CustomerListResponse",
|
|
257
296
|
"CustomerPortal",
|
|
258
297
|
"CustomerPortalStatus",
|
|
298
|
+
"CustomerUser",
|
|
299
|
+
"CustomerUserStatus",
|
|
259
300
|
"EmptyResponse",
|
|
260
301
|
"ErrorResponse",
|
|
261
302
|
"ForbiddenError",
|
|
@@ -270,12 +311,15 @@ __all__ = [
|
|
|
270
311
|
"InvoiceStatus",
|
|
271
312
|
"InvoiceTaxStatus",
|
|
272
313
|
"ListCheckoutsRequestStatus",
|
|
314
|
+
"ListOrderSeatsRequestStatus",
|
|
273
315
|
"NotFoundError",
|
|
274
316
|
"Order",
|
|
275
317
|
"OrderCreationState",
|
|
276
318
|
"OrderLine",
|
|
277
319
|
"OrderLinesResponse",
|
|
278
320
|
"OrderListResponse",
|
|
321
|
+
"OrderSeat",
|
|
322
|
+
"OrderSeatListResponse",
|
|
279
323
|
"Pagination",
|
|
280
324
|
"Paid",
|
|
281
325
|
"PaidEnvironment",
|
|
@@ -283,14 +327,23 @@ __all__ = [
|
|
|
283
327
|
"ProductByExternalId",
|
|
284
328
|
"ProductById",
|
|
285
329
|
"ProductListResponse",
|
|
330
|
+
"SeatAssignee",
|
|
331
|
+
"SeatAssignmentStatus",
|
|
286
332
|
"Signal",
|
|
333
|
+
"TestWebhookRequestWebhookName",
|
|
287
334
|
"UpdateContactRequest",
|
|
288
335
|
"UpdateContactRequestRolesItem",
|
|
289
336
|
"UpdateCustomerRequest",
|
|
290
337
|
"UpdateProductRequest",
|
|
338
|
+
"UpdateWebhookRequestWebhookName",
|
|
291
339
|
"ValueReceiptDetail",
|
|
292
340
|
"ValueReceiptListResponse",
|
|
293
341
|
"ValueReceiptSummary",
|
|
342
|
+
"Webhook",
|
|
343
|
+
"WebhookDeliveryStatus",
|
|
344
|
+
"WebhookListResponse",
|
|
345
|
+
"WebhookName",
|
|
346
|
+
"WebhookTestResponse",
|
|
294
347
|
"__version__",
|
|
295
348
|
"checkouts",
|
|
296
349
|
"contacts",
|
|
@@ -302,4 +355,5 @@ __all__ = [
|
|
|
302
355
|
"products",
|
|
303
356
|
"signals",
|
|
304
357
|
"value_receipts",
|
|
358
|
+
"webhooks",
|
|
305
359
|
]
|
|
@@ -6,6 +6,7 @@ import typing
|
|
|
6
6
|
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
7
7
|
from ..core.request_options import RequestOptions
|
|
8
8
|
from ..types.checkout import Checkout
|
|
9
|
+
from ..types.checkout_details import CheckoutDetails
|
|
9
10
|
from ..types.checkout_list_response import CheckoutListResponse
|
|
10
11
|
from ..types.checkout_product_input import CheckoutProductInput
|
|
11
12
|
from ..types.empty_response import EmptyResponse
|
|
@@ -157,7 +158,7 @@ class CheckoutsClient:
|
|
|
157
158
|
)
|
|
158
159
|
return _response.data
|
|
159
160
|
|
|
160
|
-
def get_checkout(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) ->
|
|
161
|
+
def get_checkout(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> CheckoutDetails:
|
|
161
162
|
"""
|
|
162
163
|
Get a checkout by ID
|
|
163
164
|
|
|
@@ -170,7 +171,7 @@ class CheckoutsClient:
|
|
|
170
171
|
|
|
171
172
|
Returns
|
|
172
173
|
-------
|
|
173
|
-
|
|
174
|
+
CheckoutDetails
|
|
174
175
|
200
|
|
175
176
|
|
|
176
177
|
Examples
|
|
@@ -375,7 +376,9 @@ class AsyncCheckoutsClient:
|
|
|
375
376
|
)
|
|
376
377
|
return _response.data
|
|
377
378
|
|
|
378
|
-
async def get_checkout(
|
|
379
|
+
async def get_checkout(
|
|
380
|
+
self, id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
381
|
+
) -> CheckoutDetails:
|
|
379
382
|
"""
|
|
380
383
|
Get a checkout by ID
|
|
381
384
|
|
|
@@ -388,7 +391,7 @@ class AsyncCheckoutsClient:
|
|
|
388
391
|
|
|
389
392
|
Returns
|
|
390
393
|
-------
|
|
391
|
-
|
|
394
|
+
CheckoutDetails
|
|
392
395
|
200
|
|
393
396
|
|
|
394
397
|
Examples
|
|
@@ -16,6 +16,7 @@ from ..errors.forbidden_error import ForbiddenError
|
|
|
16
16
|
from ..errors.internal_server_error import InternalServerError
|
|
17
17
|
from ..errors.not_found_error import NotFoundError
|
|
18
18
|
from ..types.checkout import Checkout
|
|
19
|
+
from ..types.checkout_details import CheckoutDetails
|
|
19
20
|
from ..types.checkout_list_response import CheckoutListResponse
|
|
20
21
|
from ..types.checkout_product_input import CheckoutProductInput
|
|
21
22
|
from ..types.empty_response import EmptyResponse
|
|
@@ -253,7 +254,7 @@ class RawCheckoutsClient:
|
|
|
253
254
|
|
|
254
255
|
def get_checkout(
|
|
255
256
|
self, id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
256
|
-
) -> HttpResponse[
|
|
257
|
+
) -> HttpResponse[CheckoutDetails]:
|
|
257
258
|
"""
|
|
258
259
|
Get a checkout by ID
|
|
259
260
|
|
|
@@ -266,7 +267,7 @@ class RawCheckoutsClient:
|
|
|
266
267
|
|
|
267
268
|
Returns
|
|
268
269
|
-------
|
|
269
|
-
HttpResponse[
|
|
270
|
+
HttpResponse[CheckoutDetails]
|
|
270
271
|
200
|
|
271
272
|
"""
|
|
272
273
|
_response = self._client_wrapper.httpx_client.request(
|
|
@@ -277,9 +278,9 @@ class RawCheckoutsClient:
|
|
|
277
278
|
try:
|
|
278
279
|
if 200 <= _response.status_code < 300:
|
|
279
280
|
_data = typing.cast(
|
|
280
|
-
|
|
281
|
+
CheckoutDetails,
|
|
281
282
|
parse_obj_as(
|
|
282
|
-
type_=
|
|
283
|
+
type_=CheckoutDetails, # type: ignore
|
|
283
284
|
object_=_response.json(),
|
|
284
285
|
),
|
|
285
286
|
)
|
|
@@ -621,7 +622,7 @@ class AsyncRawCheckoutsClient:
|
|
|
621
622
|
|
|
622
623
|
async def get_checkout(
|
|
623
624
|
self, id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
624
|
-
) -> AsyncHttpResponse[
|
|
625
|
+
) -> AsyncHttpResponse[CheckoutDetails]:
|
|
625
626
|
"""
|
|
626
627
|
Get a checkout by ID
|
|
627
628
|
|
|
@@ -634,7 +635,7 @@ class AsyncRawCheckoutsClient:
|
|
|
634
635
|
|
|
635
636
|
Returns
|
|
636
637
|
-------
|
|
637
|
-
AsyncHttpResponse[
|
|
638
|
+
AsyncHttpResponse[CheckoutDetails]
|
|
638
639
|
200
|
|
639
640
|
"""
|
|
640
641
|
_response = await self._client_wrapper.httpx_client.request(
|
|
@@ -645,9 +646,9 @@ class AsyncRawCheckoutsClient:
|
|
|
645
646
|
try:
|
|
646
647
|
if 200 <= _response.status_code < 300:
|
|
647
648
|
_data = typing.cast(
|
|
648
|
-
|
|
649
|
+
CheckoutDetails,
|
|
649
650
|
parse_obj_as(
|
|
650
|
-
type_=
|
|
651
|
+
type_=CheckoutDetails, # type: ignore
|
|
651
652
|
object_=_response.json(),
|
|
652
653
|
),
|
|
653
654
|
)
|
|
@@ -19,6 +19,7 @@ if typing.TYPE_CHECKING:
|
|
|
19
19
|
from .products.client import AsyncProductsClient, ProductsClient
|
|
20
20
|
from .signals.client import AsyncSignalsClient, SignalsClient
|
|
21
21
|
from .value_receipts.client import AsyncValueReceiptsClient, ValueReceiptsClient
|
|
22
|
+
from .webhooks.client import AsyncWebhooksClient, WebhooksClient
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
class Paid:
|
|
@@ -96,6 +97,7 @@ class Paid:
|
|
|
96
97
|
self._checkouts: typing.Optional[CheckoutsClient] = None
|
|
97
98
|
self._customer_portals: typing.Optional[CustomerPortalsClient] = None
|
|
98
99
|
self._value_receipts: typing.Optional[ValueReceiptsClient] = None
|
|
100
|
+
self._webhooks: typing.Optional[WebhooksClient] = None
|
|
99
101
|
|
|
100
102
|
@property
|
|
101
103
|
def products(self):
|
|
@@ -177,6 +179,14 @@ class Paid:
|
|
|
177
179
|
self._value_receipts = ValueReceiptsClient(client_wrapper=self._client_wrapper)
|
|
178
180
|
return self._value_receipts
|
|
179
181
|
|
|
182
|
+
@property
|
|
183
|
+
def webhooks(self):
|
|
184
|
+
if self._webhooks is None:
|
|
185
|
+
from .webhooks.client import WebhooksClient # noqa: E402
|
|
186
|
+
|
|
187
|
+
self._webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
|
|
188
|
+
return self._webhooks
|
|
189
|
+
|
|
180
190
|
|
|
181
191
|
class AsyncPaid:
|
|
182
192
|
"""
|
|
@@ -253,6 +263,7 @@ class AsyncPaid:
|
|
|
253
263
|
self._checkouts: typing.Optional[AsyncCheckoutsClient] = None
|
|
254
264
|
self._customer_portals: typing.Optional[AsyncCustomerPortalsClient] = None
|
|
255
265
|
self._value_receipts: typing.Optional[AsyncValueReceiptsClient] = None
|
|
266
|
+
self._webhooks: typing.Optional[AsyncWebhooksClient] = None
|
|
256
267
|
|
|
257
268
|
@property
|
|
258
269
|
def products(self):
|
|
@@ -334,6 +345,14 @@ class AsyncPaid:
|
|
|
334
345
|
self._value_receipts = AsyncValueReceiptsClient(client_wrapper=self._client_wrapper)
|
|
335
346
|
return self._value_receipts
|
|
336
347
|
|
|
348
|
+
@property
|
|
349
|
+
def webhooks(self):
|
|
350
|
+
if self._webhooks is None:
|
|
351
|
+
from .webhooks.client import AsyncWebhooksClient # noqa: E402
|
|
352
|
+
|
|
353
|
+
self._webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
|
|
354
|
+
return self._webhooks
|
|
355
|
+
|
|
337
356
|
|
|
338
357
|
def _get_base_url(*, base_url: typing.Optional[str] = None, environment: PaidEnvironment) -> str:
|
|
339
358
|
if base_url is not None:
|
|
@@ -24,12 +24,12 @@ class BaseClientWrapper:
|
|
|
24
24
|
import platform
|
|
25
25
|
|
|
26
26
|
headers: typing.Dict[str, str] = {
|
|
27
|
-
"User-Agent": "paid-python/1.
|
|
27
|
+
"User-Agent": "paid-python/1.8.0",
|
|
28
28
|
"X-Fern-Language": "Python",
|
|
29
29
|
"X-Fern-Runtime": f"python/{platform.python_version()}",
|
|
30
30
|
"X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
|
|
31
31
|
"X-Fern-SDK-Name": "paid-python",
|
|
32
|
-
"X-Fern-SDK-Version": "1.
|
|
32
|
+
"X-Fern-SDK-Version": "1.8.0",
|
|
33
33
|
**(self.get_custom_headers() or {}),
|
|
34
34
|
}
|
|
35
35
|
headers["Authorization"] = f"Bearer {self._get_token()}"
|
|
@@ -10,6 +10,8 @@ from ..types.customer import Customer
|
|
|
10
10
|
from ..types.customer_billing_address import CustomerBillingAddress
|
|
11
11
|
from ..types.customer_creation_state import CustomerCreationState
|
|
12
12
|
from ..types.customer_list_response import CustomerListResponse
|
|
13
|
+
from ..types.customer_user import CustomerUser
|
|
14
|
+
from ..types.customer_user_status import CustomerUserStatus
|
|
13
15
|
from ..types.empty_response import EmptyResponse
|
|
14
16
|
from .raw_client import AsyncRawCustomersClient, RawCustomersClient
|
|
15
17
|
|
|
@@ -502,6 +504,65 @@ class CustomersClient:
|
|
|
502
504
|
)
|
|
503
505
|
return _response.data
|
|
504
506
|
|
|
507
|
+
def upsert_customer_user_by_external_id(
|
|
508
|
+
self,
|
|
509
|
+
customer_external_id: str,
|
|
510
|
+
user_external_id: str,
|
|
511
|
+
*,
|
|
512
|
+
name: typing.Optional[str] = OMIT,
|
|
513
|
+
email: typing.Optional[str] = OMIT,
|
|
514
|
+
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
|
515
|
+
status: typing.Optional[CustomerUserStatus] = OMIT,
|
|
516
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
517
|
+
) -> CustomerUser:
|
|
518
|
+
"""
|
|
519
|
+
Create or update a customer user using customer and user external IDs
|
|
520
|
+
|
|
521
|
+
Parameters
|
|
522
|
+
----------
|
|
523
|
+
customer_external_id : str
|
|
524
|
+
|
|
525
|
+
user_external_id : str
|
|
526
|
+
|
|
527
|
+
name : typing.Optional[str]
|
|
528
|
+
|
|
529
|
+
email : typing.Optional[str]
|
|
530
|
+
|
|
531
|
+
metadata : typing.Optional[typing.Dict[str, typing.Any]]
|
|
532
|
+
|
|
533
|
+
status : typing.Optional[CustomerUserStatus]
|
|
534
|
+
|
|
535
|
+
request_options : typing.Optional[RequestOptions]
|
|
536
|
+
Request-specific configuration.
|
|
537
|
+
|
|
538
|
+
Returns
|
|
539
|
+
-------
|
|
540
|
+
CustomerUser
|
|
541
|
+
200
|
|
542
|
+
|
|
543
|
+
Examples
|
|
544
|
+
--------
|
|
545
|
+
from paid import Paid
|
|
546
|
+
|
|
547
|
+
client = Paid(
|
|
548
|
+
token="YOUR_TOKEN",
|
|
549
|
+
)
|
|
550
|
+
client.customers.upsert_customer_user_by_external_id(
|
|
551
|
+
customer_external_id="customerExternalId",
|
|
552
|
+
user_external_id="userExternalId",
|
|
553
|
+
)
|
|
554
|
+
"""
|
|
555
|
+
_response = self._raw_client.upsert_customer_user_by_external_id(
|
|
556
|
+
customer_external_id,
|
|
557
|
+
user_external_id,
|
|
558
|
+
name=name,
|
|
559
|
+
email=email,
|
|
560
|
+
metadata=metadata,
|
|
561
|
+
status=status,
|
|
562
|
+
request_options=request_options,
|
|
563
|
+
)
|
|
564
|
+
return _response.data
|
|
565
|
+
|
|
505
566
|
|
|
506
567
|
class AsyncCustomersClient:
|
|
507
568
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
@@ -1067,3 +1128,70 @@ class AsyncCustomersClient:
|
|
|
1067
1128
|
external_id, request_options=request_options
|
|
1068
1129
|
)
|
|
1069
1130
|
return _response.data
|
|
1131
|
+
|
|
1132
|
+
async def upsert_customer_user_by_external_id(
|
|
1133
|
+
self,
|
|
1134
|
+
customer_external_id: str,
|
|
1135
|
+
user_external_id: str,
|
|
1136
|
+
*,
|
|
1137
|
+
name: typing.Optional[str] = OMIT,
|
|
1138
|
+
email: typing.Optional[str] = OMIT,
|
|
1139
|
+
metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
|
|
1140
|
+
status: typing.Optional[CustomerUserStatus] = OMIT,
|
|
1141
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1142
|
+
) -> CustomerUser:
|
|
1143
|
+
"""
|
|
1144
|
+
Create or update a customer user using customer and user external IDs
|
|
1145
|
+
|
|
1146
|
+
Parameters
|
|
1147
|
+
----------
|
|
1148
|
+
customer_external_id : str
|
|
1149
|
+
|
|
1150
|
+
user_external_id : str
|
|
1151
|
+
|
|
1152
|
+
name : typing.Optional[str]
|
|
1153
|
+
|
|
1154
|
+
email : typing.Optional[str]
|
|
1155
|
+
|
|
1156
|
+
metadata : typing.Optional[typing.Dict[str, typing.Any]]
|
|
1157
|
+
|
|
1158
|
+
status : typing.Optional[CustomerUserStatus]
|
|
1159
|
+
|
|
1160
|
+
request_options : typing.Optional[RequestOptions]
|
|
1161
|
+
Request-specific configuration.
|
|
1162
|
+
|
|
1163
|
+
Returns
|
|
1164
|
+
-------
|
|
1165
|
+
CustomerUser
|
|
1166
|
+
200
|
|
1167
|
+
|
|
1168
|
+
Examples
|
|
1169
|
+
--------
|
|
1170
|
+
import asyncio
|
|
1171
|
+
|
|
1172
|
+
from paid import AsyncPaid
|
|
1173
|
+
|
|
1174
|
+
client = AsyncPaid(
|
|
1175
|
+
token="YOUR_TOKEN",
|
|
1176
|
+
)
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
async def main() -> None:
|
|
1180
|
+
await client.customers.upsert_customer_user_by_external_id(
|
|
1181
|
+
customer_external_id="customerExternalId",
|
|
1182
|
+
user_external_id="userExternalId",
|
|
1183
|
+
)
|
|
1184
|
+
|
|
1185
|
+
|
|
1186
|
+
asyncio.run(main())
|
|
1187
|
+
"""
|
|
1188
|
+
_response = await self._raw_client.upsert_customer_user_by_external_id(
|
|
1189
|
+
customer_external_id,
|
|
1190
|
+
user_external_id,
|
|
1191
|
+
name=name,
|
|
1192
|
+
email=email,
|
|
1193
|
+
metadata=metadata,
|
|
1194
|
+
status=status,
|
|
1195
|
+
request_options=request_options,
|
|
1196
|
+
)
|
|
1197
|
+
return _response.data
|