paid-python 1.7.2__tar.gz → 1.9.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.9.0}/PKG-INFO +1 -1
- {paid_python-1.7.2 → paid_python-1.9.0}/pyproject.toml +1 -1
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/__init__.py +66 -1
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/client.py +7 -4
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/raw_client.py +9 -8
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/client.py +19 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/client_wrapper.py +2 -2
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/client.py +128 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/raw_client.py +222 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/__init__.py +3 -1
- paid_python-1.9.0/src/paid/errors/conflict_error.py +11 -0
- paid_python-1.9.0/src/paid/orders/__init__.py +37 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/orders/client.py +317 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/orders/raw_client.py +742 -92
- paid_python-1.9.0/src/paid/orders/types/__init__.py +38 -0
- paid_python-1.9.0/src/paid/orders/types/batch_seat_assignments_request_assignments_item.py +24 -0
- paid_python-1.9.0/src/paid/orders/types/list_order_seats_request_status.py +5 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/__init__.py +45 -0
- paid_python-1.9.0/src/paid/types/batch_seat_assignments_response.py +20 -0
- paid_python-1.9.0/src/paid/types/checkout_details.py +65 -0
- paid_python-1.9.0/src/paid/types/customer_user.py +38 -0
- paid_python-1.9.0/src/paid/types/customer_user_status.py +5 -0
- paid_python-1.9.0/src/paid/types/order_seat.py +36 -0
- paid_python-1.9.0/src/paid/types/order_seat_list_response.py +22 -0
- paid_python-1.9.0/src/paid/types/seat_assignee.py +23 -0
- paid_python-1.9.0/src/paid/types/seat_assignment_status.py +5 -0
- paid_python-1.9.0/src/paid/types/success_response.py +19 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_detail.py +6 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_summary.py +6 -0
- paid_python-1.9.0/src/paid/types/value_receipt_sync_response.py +26 -0
- paid_python-1.9.0/src/paid/types/webhook.py +34 -0
- paid_python-1.9.0/src/paid/types/webhook_delivery_status.py +5 -0
- paid_python-1.9.0/src/paid/types/webhook_list_response.py +20 -0
- paid_python-1.9.0/src/paid/types/webhook_name.py +18 -0
- paid_python-1.9.0/src/paid/types/webhook_test_response.py +19 -0
- paid_python-1.9.0/src/paid/value_receipts/__init__.py +37 -0
- paid_python-1.9.0/src/paid/value_receipts/client.py +848 -0
- paid_python-1.9.0/src/paid/value_receipts/raw_client.py +1397 -0
- paid_python-1.9.0/src/paid/value_receipts/types/__init__.py +38 -0
- paid_python-1.9.0/src/paid/value_receipts/types/list_value_receipts_request_archived.py +5 -0
- paid_python-1.9.0/src/paid/value_receipts/types/sync_value_receipt_request_product.py +26 -0
- paid_python-1.9.0/src/paid/webhooks/__init__.py +37 -0
- paid_python-1.9.0/src/paid/webhooks/client.py +277 -0
- {paid_python-1.7.2/src/paid/value_receipts → paid_python-1.9.0/src/paid/webhooks}/raw_client.py +168 -202
- paid_python-1.9.0/src/paid/webhooks/types/__init__.py +38 -0
- paid_python-1.9.0/src/paid/webhooks/types/test_webhook_request_webhook_name.py +18 -0
- paid_python-1.9.0/src/paid/webhooks/types/update_webhook_request_webhook_name.py +18 -0
- paid_python-1.7.2/src/paid/signals/__init__.py +0 -4
- paid_python-1.7.2/src/paid/value_receipts/__init__.py +0 -4
- paid_python-1.7.2/src/paid/value_receipts/client.py +0 -373
- {paid_python-1.7.2 → paid_python-1.9.0}/LICENSE +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/README.md +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/types/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/types/list_checkouts_request_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/types/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/types/create_contact_request_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/api_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/datetime_utils.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/file.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/force_multipart.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_api.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_decoders.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_exceptions.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_models.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/jsonable_encoder.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/pydantic_utilities.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/query_encoder.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/remove_none_from_dict.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/request_options.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/serialization.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/environment.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/bad_request_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/forbidden_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/internal_server_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/not_found_error.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/logger.py +0 -0
- {paid_python-1.7.2/src/paid/orders → paid_python-1.9.0/src/paid/products}/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/products/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/products/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/py.typed +0 -0
- {paid_python-1.7.2/src/paid/products → paid_python-1.9.0/src/paid/signals}/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/signals/client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/signals/raw_client.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/anthropic_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/anthropic_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/autoinstrumentation.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/context_data.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/context_manager.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/distributed_tracing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/gemini_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/gemini_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_agents_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_agents_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_patches/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_patches/patches.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/signal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/tracing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/anthropic/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/anthropic/anthropicWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/bedrock/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/bedrock/bedrockWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/gemini/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/gemini/geminiWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/langchain/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/langchain/paidLangChainCallback.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/mistral/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/mistral/mistralWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai/openAiWrapper.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai_agents/__init__.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai_agents/openaiAgentsHook.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/utils.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/attribution.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/bulk_signals_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_product.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_product_input.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_billing_address.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_frequency.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_charge_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.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.9.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.9.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.9.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.9.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.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.9.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.9.0}/src/paid/types/create_order_line_attribute_request_pricing_pricing_model.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_signal_type.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance_recipient.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_currency.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_currency_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_attribution.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_billing_address.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_by_external_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_by_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_creation_state.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_portal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_portal_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/empty_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/error_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_line.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_line_payment_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_lines_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_payment_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_source.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_tax_status.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_creation_state.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_line.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_lines_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/pagination.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_by_external_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_by_id.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/signal.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_contact_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_contact_request_roles_item.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_customer_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_product_request.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_list_response.py +0 -0
- {paid_python-1.7.2 → paid_python-1.9.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,12 +68,17 @@ 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,
|
|
81
|
+
SuccessResponse,
|
|
73
82
|
UpdateContactRequest,
|
|
74
83
|
UpdateContactRequestRolesItem,
|
|
75
84
|
UpdateCustomerRequest,
|
|
@@ -77,8 +86,14 @@ if typing.TYPE_CHECKING:
|
|
|
77
86
|
ValueReceiptDetail,
|
|
78
87
|
ValueReceiptListResponse,
|
|
79
88
|
ValueReceiptSummary,
|
|
89
|
+
ValueReceiptSyncResponse,
|
|
90
|
+
Webhook,
|
|
91
|
+
WebhookDeliveryStatus,
|
|
92
|
+
WebhookListResponse,
|
|
93
|
+
WebhookName,
|
|
94
|
+
WebhookTestResponse,
|
|
80
95
|
)
|
|
81
|
-
from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFoundError
|
|
96
|
+
from .errors import BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError
|
|
82
97
|
from . import (
|
|
83
98
|
checkouts,
|
|
84
99
|
contacts,
|
|
@@ -90,22 +105,30 @@ if typing.TYPE_CHECKING:
|
|
|
90
105
|
products,
|
|
91
106
|
signals,
|
|
92
107
|
value_receipts,
|
|
108
|
+
webhooks,
|
|
93
109
|
)
|
|
94
110
|
from .checkouts import ListCheckoutsRequestStatus
|
|
95
111
|
from .client import AsyncPaid, Paid
|
|
96
112
|
from .contacts import CreateContactRequestRolesItem
|
|
97
113
|
from .environment import PaidEnvironment
|
|
114
|
+
from .orders import BatchSeatAssignmentsRequestAssignmentsItem, ListOrderSeatsRequestStatus
|
|
115
|
+
from .value_receipts import ListValueReceiptsRequestArchived, SyncValueReceiptRequestProduct
|
|
98
116
|
from .version import __version__
|
|
117
|
+
from .webhooks import TestWebhookRequestWebhookName, UpdateWebhookRequestWebhookName
|
|
99
118
|
_dynamic_imports: typing.Dict[str, str] = {
|
|
100
119
|
"AsyncPaid": ".client",
|
|
101
120
|
"Attribution": ".types",
|
|
102
121
|
"BadRequestError": ".errors",
|
|
122
|
+
"BatchSeatAssignmentsRequestAssignmentsItem": ".orders",
|
|
123
|
+
"BatchSeatAssignmentsResponse": ".types",
|
|
103
124
|
"BulkSignalsResponse": ".types",
|
|
104
125
|
"Checkout": ".types",
|
|
126
|
+
"CheckoutDetails": ".types",
|
|
105
127
|
"CheckoutListResponse": ".types",
|
|
106
128
|
"CheckoutProduct": ".types",
|
|
107
129
|
"CheckoutProductInput": ".types",
|
|
108
130
|
"CheckoutStatus": ".types",
|
|
131
|
+
"ConflictError": ".errors",
|
|
109
132
|
"Contact": ".types",
|
|
110
133
|
"ContactBillingAddress": ".types",
|
|
111
134
|
"ContactListResponse": ".types",
|
|
@@ -141,6 +164,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
141
164
|
"CustomerListResponse": ".types",
|
|
142
165
|
"CustomerPortal": ".types",
|
|
143
166
|
"CustomerPortalStatus": ".types",
|
|
167
|
+
"CustomerUser": ".types",
|
|
168
|
+
"CustomerUserStatus": ".types",
|
|
144
169
|
"EmptyResponse": ".types",
|
|
145
170
|
"ErrorResponse": ".types",
|
|
146
171
|
"ForbiddenError": ".errors",
|
|
@@ -155,12 +180,16 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
155
180
|
"InvoiceStatus": ".types",
|
|
156
181
|
"InvoiceTaxStatus": ".types",
|
|
157
182
|
"ListCheckoutsRequestStatus": ".checkouts",
|
|
183
|
+
"ListOrderSeatsRequestStatus": ".orders",
|
|
184
|
+
"ListValueReceiptsRequestArchived": ".value_receipts",
|
|
158
185
|
"NotFoundError": ".errors",
|
|
159
186
|
"Order": ".types",
|
|
160
187
|
"OrderCreationState": ".types",
|
|
161
188
|
"OrderLine": ".types",
|
|
162
189
|
"OrderLinesResponse": ".types",
|
|
163
190
|
"OrderListResponse": ".types",
|
|
191
|
+
"OrderSeat": ".types",
|
|
192
|
+
"OrderSeatListResponse": ".types",
|
|
164
193
|
"Pagination": ".types",
|
|
165
194
|
"Paid": ".client",
|
|
166
195
|
"PaidEnvironment": ".environment",
|
|
@@ -168,14 +197,26 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
168
197
|
"ProductByExternalId": ".types",
|
|
169
198
|
"ProductById": ".types",
|
|
170
199
|
"ProductListResponse": ".types",
|
|
200
|
+
"SeatAssignee": ".types",
|
|
201
|
+
"SeatAssignmentStatus": ".types",
|
|
171
202
|
"Signal": ".types",
|
|
203
|
+
"SuccessResponse": ".types",
|
|
204
|
+
"SyncValueReceiptRequestProduct": ".value_receipts",
|
|
205
|
+
"TestWebhookRequestWebhookName": ".webhooks",
|
|
172
206
|
"UpdateContactRequest": ".types",
|
|
173
207
|
"UpdateContactRequestRolesItem": ".types",
|
|
174
208
|
"UpdateCustomerRequest": ".types",
|
|
175
209
|
"UpdateProductRequest": ".types",
|
|
210
|
+
"UpdateWebhookRequestWebhookName": ".webhooks",
|
|
176
211
|
"ValueReceiptDetail": ".types",
|
|
177
212
|
"ValueReceiptListResponse": ".types",
|
|
178
213
|
"ValueReceiptSummary": ".types",
|
|
214
|
+
"ValueReceiptSyncResponse": ".types",
|
|
215
|
+
"Webhook": ".types",
|
|
216
|
+
"WebhookDeliveryStatus": ".types",
|
|
217
|
+
"WebhookListResponse": ".types",
|
|
218
|
+
"WebhookName": ".types",
|
|
219
|
+
"WebhookTestResponse": ".types",
|
|
179
220
|
"__version__": ".version",
|
|
180
221
|
"checkouts": ".checkouts",
|
|
181
222
|
"contacts": ".contacts",
|
|
@@ -187,6 +228,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|
|
187
228
|
"products": ".products",
|
|
188
229
|
"signals": ".signals",
|
|
189
230
|
"value_receipts": ".value_receipts",
|
|
231
|
+
"webhooks": ".webhooks",
|
|
190
232
|
}
|
|
191
233
|
|
|
192
234
|
|
|
@@ -215,12 +257,16 @@ __all__ = [
|
|
|
215
257
|
"AsyncPaid",
|
|
216
258
|
"Attribution",
|
|
217
259
|
"BadRequestError",
|
|
260
|
+
"BatchSeatAssignmentsRequestAssignmentsItem",
|
|
261
|
+
"BatchSeatAssignmentsResponse",
|
|
218
262
|
"BulkSignalsResponse",
|
|
219
263
|
"Checkout",
|
|
264
|
+
"CheckoutDetails",
|
|
220
265
|
"CheckoutListResponse",
|
|
221
266
|
"CheckoutProduct",
|
|
222
267
|
"CheckoutProductInput",
|
|
223
268
|
"CheckoutStatus",
|
|
269
|
+
"ConflictError",
|
|
224
270
|
"Contact",
|
|
225
271
|
"ContactBillingAddress",
|
|
226
272
|
"ContactListResponse",
|
|
@@ -256,6 +302,8 @@ __all__ = [
|
|
|
256
302
|
"CustomerListResponse",
|
|
257
303
|
"CustomerPortal",
|
|
258
304
|
"CustomerPortalStatus",
|
|
305
|
+
"CustomerUser",
|
|
306
|
+
"CustomerUserStatus",
|
|
259
307
|
"EmptyResponse",
|
|
260
308
|
"ErrorResponse",
|
|
261
309
|
"ForbiddenError",
|
|
@@ -270,12 +318,16 @@ __all__ = [
|
|
|
270
318
|
"InvoiceStatus",
|
|
271
319
|
"InvoiceTaxStatus",
|
|
272
320
|
"ListCheckoutsRequestStatus",
|
|
321
|
+
"ListOrderSeatsRequestStatus",
|
|
322
|
+
"ListValueReceiptsRequestArchived",
|
|
273
323
|
"NotFoundError",
|
|
274
324
|
"Order",
|
|
275
325
|
"OrderCreationState",
|
|
276
326
|
"OrderLine",
|
|
277
327
|
"OrderLinesResponse",
|
|
278
328
|
"OrderListResponse",
|
|
329
|
+
"OrderSeat",
|
|
330
|
+
"OrderSeatListResponse",
|
|
279
331
|
"Pagination",
|
|
280
332
|
"Paid",
|
|
281
333
|
"PaidEnvironment",
|
|
@@ -283,14 +335,26 @@ __all__ = [
|
|
|
283
335
|
"ProductByExternalId",
|
|
284
336
|
"ProductById",
|
|
285
337
|
"ProductListResponse",
|
|
338
|
+
"SeatAssignee",
|
|
339
|
+
"SeatAssignmentStatus",
|
|
286
340
|
"Signal",
|
|
341
|
+
"SuccessResponse",
|
|
342
|
+
"SyncValueReceiptRequestProduct",
|
|
343
|
+
"TestWebhookRequestWebhookName",
|
|
287
344
|
"UpdateContactRequest",
|
|
288
345
|
"UpdateContactRequestRolesItem",
|
|
289
346
|
"UpdateCustomerRequest",
|
|
290
347
|
"UpdateProductRequest",
|
|
348
|
+
"UpdateWebhookRequestWebhookName",
|
|
291
349
|
"ValueReceiptDetail",
|
|
292
350
|
"ValueReceiptListResponse",
|
|
293
351
|
"ValueReceiptSummary",
|
|
352
|
+
"ValueReceiptSyncResponse",
|
|
353
|
+
"Webhook",
|
|
354
|
+
"WebhookDeliveryStatus",
|
|
355
|
+
"WebhookListResponse",
|
|
356
|
+
"WebhookName",
|
|
357
|
+
"WebhookTestResponse",
|
|
294
358
|
"__version__",
|
|
295
359
|
"checkouts",
|
|
296
360
|
"contacts",
|
|
@@ -302,4 +366,5 @@ __all__ = [
|
|
|
302
366
|
"products",
|
|
303
367
|
"signals",
|
|
304
368
|
"value_receipts",
|
|
369
|
+
"webhooks",
|
|
305
370
|
]
|
|
@@ -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.9.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.9.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
|