paid-python 0.6.0__py3-none-any.whl → 1.0.0a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. paid/__init__.py +65 -95
  2. paid/client.py +17 -494
  3. paid/contacts/client.py +415 -133
  4. paid/contacts/raw_client.py +1046 -118
  5. paid/core/client_wrapper.py +9 -10
  6. paid/customers/client.py +270 -566
  7. paid/customers/raw_client.py +731 -537
  8. paid/environment.py +1 -1
  9. paid/errors/bad_request_error.py +2 -2
  10. paid/errors/forbidden_error.py +2 -2
  11. paid/errors/internal_server_error.py +2 -2
  12. paid/errors/not_found_error.py +2 -2
  13. paid/invoices/client.py +369 -0
  14. paid/invoices/raw_client.py +692 -0
  15. paid/orders/__init__.py +0 -3
  16. paid/orders/client.py +371 -128
  17. paid/orders/raw_client.py +829 -121
  18. paid/products/__init__.py +0 -3
  19. paid/products/client.py +129 -265
  20. paid/products/raw_client.py +563 -233
  21. paid/signals/client.py +130 -0
  22. paid/signals/raw_client.py +190 -0
  23. paid/tracing/autoinstrumentation.py +12 -6
  24. paid/tracing/context_manager.py +2 -6
  25. paid/tracing/distributed_tracing.py +3 -3
  26. paid/tracing/signal.py +3 -3
  27. paid/tracing/wrappers/openai_agents/openaiAgentsHook.py +1 -1
  28. paid/types/__init__.py +62 -86
  29. paid/types/attribution.py +8 -0
  30. paid/types/{agent_attribute.py → bulk_signals_response.py} +4 -5
  31. paid/types/contact.py +12 -20
  32. paid/types/{address.py → contact_billing_address.py} +6 -7
  33. paid/types/{traces_response.py → contact_list_response.py} +5 -9
  34. paid/types/customer.py +15 -22
  35. paid/types/customer_attribution.py +8 -0
  36. paid/types/customer_billing_address.py +26 -0
  37. paid/types/{usage_summary_order.py → customer_by_external_id.py} +3 -5
  38. paid/types/{usage_summary_order_line.py → customer_by_id.py} +3 -5
  39. paid/types/customer_creation_state.py +5 -0
  40. paid/types/customer_list_response.py +22 -0
  41. paid/types/empty_response.py +17 -0
  42. paid/types/{error.py → error_response.py} +4 -7
  43. paid/types/invoice.py +57 -0
  44. paid/types/invoice_line.py +42 -0
  45. paid/types/invoice_line_payment_status.py +7 -0
  46. paid/types/invoice_lines_response.py +22 -0
  47. paid/types/invoice_list_response.py +22 -0
  48. paid/types/invoice_payment_status.py +5 -0
  49. paid/types/invoice_source.py +5 -0
  50. paid/types/invoice_status.py +7 -0
  51. paid/types/invoice_tax_status.py +7 -0
  52. paid/types/order.py +30 -29
  53. paid/types/order_creation_state.py +5 -0
  54. paid/types/order_line.py +6 -24
  55. paid/types/order_lines_response.py +22 -0
  56. paid/types/order_list_response.py +22 -0
  57. paid/types/pagination.py +24 -0
  58. paid/types/product.py +4 -29
  59. paid/types/{tier.py → product_by_external_id.py} +5 -4
  60. paid/types/{cost_amount.py → product_by_id.py} +5 -12
  61. paid/types/product_list_response.py +22 -0
  62. paid/types/signal.py +8 -34
  63. paid/types/{agent.py → update_contact_request.py} +10 -11
  64. paid/types/update_customer_request.py +38 -0
  65. paid/types/{product_update.py → update_product_request.py} +2 -12
  66. {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/METADATA +27 -11
  67. paid_python-1.0.0a1.dist-info/RECORD +110 -0
  68. opentelemetry/instrumentation/openai/__init__.py +0 -54
  69. opentelemetry/instrumentation/openai/shared/__init__.py +0 -399
  70. opentelemetry/instrumentation/openai/shared/audio_wrappers.py +0 -247
  71. opentelemetry/instrumentation/openai/shared/chat_wrappers.py +0 -1192
  72. opentelemetry/instrumentation/openai/shared/completion_wrappers.py +0 -292
  73. opentelemetry/instrumentation/openai/shared/config.py +0 -15
  74. opentelemetry/instrumentation/openai/shared/embeddings_wrappers.py +0 -311
  75. opentelemetry/instrumentation/openai/shared/event_emitter.py +0 -108
  76. opentelemetry/instrumentation/openai/shared/event_models.py +0 -41
  77. opentelemetry/instrumentation/openai/shared/image_gen_wrappers.py +0 -68
  78. opentelemetry/instrumentation/openai/shared/span_utils.py +0 -0
  79. opentelemetry/instrumentation/openai/utils.py +0 -213
  80. opentelemetry/instrumentation/openai/v0/__init__.py +0 -176
  81. opentelemetry/instrumentation/openai/v1/__init__.py +0 -394
  82. opentelemetry/instrumentation/openai/v1/assistant_wrappers.py +0 -329
  83. opentelemetry/instrumentation/openai/v1/event_handler_wrapper.py +0 -134
  84. opentelemetry/instrumentation/openai/v1/responses_wrappers.py +0 -1113
  85. opentelemetry/instrumentation/openai/version.py +0 -1
  86. paid/agents/client.py +0 -880
  87. paid/agents/raw_client.py +0 -785
  88. paid/orders/lines/client.py +0 -144
  89. paid/orders/lines/raw_client.py +0 -129
  90. paid/plans/__init__.py +0 -4
  91. paid/plans/client.py +0 -332
  92. paid/plans/raw_client.py +0 -464
  93. paid/products/types/__init__.py +0 -7
  94. paid/products/types/product_create_type.py +0 -5
  95. paid/traces/__init__.py +0 -4
  96. paid/traces/client.py +0 -218
  97. paid/traces/raw_client.py +0 -226
  98. paid/types/agent_price_point.py +0 -27
  99. paid/types/agent_price_point_tiers.py +0 -23
  100. paid/types/agent_update.py +0 -29
  101. paid/types/api_error.py +0 -29
  102. paid/types/billing_frequency.py +0 -5
  103. paid/types/charge_type.py +0 -5
  104. paid/types/cost_trace.py +0 -55
  105. paid/types/cost_traces_response.py +0 -26
  106. paid/types/creation_source.py +0 -5
  107. paid/types/creation_state.py +0 -5
  108. paid/types/customer_update.py +0 -40
  109. paid/types/entitlement_usage.py +0 -48
  110. paid/types/order_line_attribute.py +0 -27
  111. paid/types/order_line_attribute_create_one.py +0 -5
  112. paid/types/order_line_attribute_pricing.py +0 -33
  113. paid/types/order_line_create.py +0 -72
  114. paid/types/pagination_meta.py +0 -84
  115. paid/types/plan.py +0 -81
  116. paid/types/plan_group.py +0 -60
  117. paid/types/plan_plan_products_item.py +0 -35
  118. paid/types/plan_plan_products_item_plan_product_attribute_item.py +0 -34
  119. paid/types/price_point.py +0 -25
  120. paid/types/pricing.py +0 -31
  121. paid/types/pricing_model_type.py +0 -7
  122. paid/types/product_type.py +0 -5
  123. paid/types/product_update_type.py +0 -5
  124. paid/types/salutation.py +0 -5
  125. paid/types/signal_v_2.py +0 -56
  126. paid/types/tax_exempt_status.py +0 -5
  127. paid/types/trace.py +0 -69
  128. paid/types/usage_pagination_meta.py +0 -43
  129. paid/types/usage_summaries_response.py +0 -26
  130. paid/types/usage_summary.py +0 -121
  131. paid/usage/__init__.py +0 -7
  132. paid/usage/client.py +0 -321
  133. paid/usage/raw_client.py +0 -387
  134. paid/usage/types/__init__.py +0 -7
  135. paid/usage/types/usage_check_usage_response.py +0 -53
  136. paid_python-0.6.0.dist-info/RECORD +0 -153
  137. /paid/{agents → invoices}/__init__.py +0 -0
  138. /paid/{orders/lines → signals}/__init__.py +0 -0
  139. {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/LICENSE +0 -0
  140. {paid_python-0.6.0.dist-info → paid_python-1.0.0a1.dist-info}/WHEEL +0 -0
paid/types/contact.py CHANGED
@@ -1,36 +1,28 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
6
7
  import typing_extensions
7
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
9
  from ..core.serialization import FieldMetadata
9
- from .salutation import Salutation
10
+ from .contact_billing_address import ContactBillingAddress
10
11
 
11
12
 
12
13
  class Contact(UniversalBaseModel):
13
- id: typing.Optional[str] = None
14
- external_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="externalId")] = None
15
- organization_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="organizationId")] = None
16
- customer_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="customerId")] = None
17
- customer_external_id: typing_extensions.Annotated[
18
- typing.Optional[str], FieldMetadata(alias="customerExternalId")
19
- ] = None
20
- salutation: typing.Optional[Salutation] = None
21
- first_name: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="firstName")] = None
22
- last_name: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="lastName")] = None
23
- email: typing.Optional[str] = None
14
+ id: str
15
+ customer_id: typing_extensions.Annotated[str, FieldMetadata(alias="customerId")]
16
+ first_name: typing_extensions.Annotated[str, FieldMetadata(alias="firstName")]
17
+ last_name: typing_extensions.Annotated[str, FieldMetadata(alias="lastName")]
18
+ email: str
24
19
  phone: typing.Optional[str] = None
25
- billing_street: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingStreet")] = None
26
- billing_city: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingCity")] = None
27
- billing_state_province: typing_extensions.Annotated[
28
- typing.Optional[str], FieldMetadata(alias="billingStateProvince")
20
+ billing_address: typing_extensions.Annotated[
21
+ typing.Optional[ContactBillingAddress], FieldMetadata(alias="billingAddress")
29
22
  ] = None
30
- billing_country: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingCountry")] = None
31
- billing_postal_code: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingPostalCode")] = (
32
- None
33
- )
23
+ external_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="externalId")] = None
24
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
25
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
34
26
 
35
27
  if IS_PYDANTIC_V2:
36
28
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -8,13 +8,12 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
  from ..core.serialization import FieldMetadata
9
9
 
10
10
 
11
- class Address(UniversalBaseModel):
12
- line_1: typing_extensions.Annotated[str, FieldMetadata(alias="line1")]
13
- line_2: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="line2")] = None
14
- city: str
15
- state: str
16
- zip_code: typing_extensions.Annotated[str, FieldMetadata(alias="zipCode")]
17
- country: str
11
+ class ContactBillingAddress(UniversalBaseModel):
12
+ street: typing.Optional[str] = None
13
+ city: typing.Optional[str] = None
14
+ state: typing.Optional[str] = None
15
+ country: typing.Optional[str] = None
16
+ zip_code: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="zipCode")] = None
18
17
 
19
18
  if IS_PYDANTIC_V2:
20
19
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -4,17 +4,13 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
- from .pagination_meta import PaginationMeta
8
- from .trace import Trace
7
+ from .contact import Contact
8
+ from .pagination import Pagination
9
9
 
10
10
 
11
- class TracesResponse(UniversalBaseModel):
12
- """
13
- Response containing cost traces and pagination metadata
14
- """
15
-
16
- traces: typing.List[Trace]
17
- meta: PaginationMeta
11
+ class ContactListResponse(UniversalBaseModel):
12
+ data: typing.List[Contact]
13
+ pagination: Pagination
18
14
 
19
15
  if IS_PYDANTIC_V2:
20
16
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
paid/types/customer.py CHANGED
@@ -1,40 +1,33 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
6
7
  import typing_extensions
7
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
9
  from ..core.serialization import FieldMetadata
9
- from .address import Address
10
- from .creation_source import CreationSource
11
- from .creation_state import CreationState
12
- from .tax_exempt_status import TaxExemptStatus
10
+ from .customer_billing_address import CustomerBillingAddress
11
+ from .customer_creation_state import CustomerCreationState
13
12
 
14
13
 
15
14
  class Customer(UniversalBaseModel):
16
15
  id: str
17
- organization_id: typing_extensions.Annotated[str, FieldMetadata(alias="organizationId")]
18
16
  name: str
17
+ legal_name: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="legalName")] = None
18
+ email: str
19
+ phone: str
20
+ website: str
19
21
  external_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="externalId")] = None
20
- phone: typing.Optional[str] = None
21
- employee_count: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="employeeCount")] = None
22
- annual_revenue: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="annualRevenue")] = None
23
- tax_exempt_status: typing_extensions.Annotated[
24
- typing.Optional[TaxExemptStatus], FieldMetadata(alias="taxExemptStatus")
22
+ billing_address: typing_extensions.Annotated[
23
+ typing.Optional[CustomerBillingAddress], FieldMetadata(alias="billingAddress")
25
24
  ] = None
26
- creation_source: typing_extensions.Annotated[
27
- typing.Optional[CreationSource], FieldMetadata(alias="creationSource")
28
- ] = None
29
- creation_state: typing_extensions.Annotated[
30
- typing.Optional[CreationState], FieldMetadata(alias="creationState")
31
- ] = None
32
- website: typing.Optional[str] = None
33
- billing_address: typing_extensions.Annotated[typing.Optional[Address], FieldMetadata(alias="billingAddress")] = None
34
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
35
- """
36
- Flexible JSON field for storing custom metadata about the customer
37
- """
25
+ creation_state: typing_extensions.Annotated[CustomerCreationState, FieldMetadata(alias="creationState")]
26
+ churn_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="churnDate")] = None
27
+ vat_number: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="vatNumber")] = None
28
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
29
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
30
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
38
31
 
39
32
  if IS_PYDANTIC_V2:
40
33
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,8 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .customer_by_external_id import CustomerByExternalId
6
+ from .customer_by_id import CustomerById
7
+
8
+ CustomerAttribution = typing.Union[CustomerById, CustomerByExternalId]
@@ -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
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+
10
+
11
+ class CustomerBillingAddress(UniversalBaseModel):
12
+ line1: typing.Optional[str] = None
13
+ line2: typing.Optional[str] = None
14
+ city: typing.Optional[str] = None
15
+ state: typing.Optional[str] = None
16
+ zip_code: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="zipCode")] = None
17
+ country: typing.Optional[str] = None
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
@@ -8,14 +8,12 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
  from ..core.serialization import FieldMetadata
9
9
 
10
10
 
11
- class UsageSummaryOrder(UniversalBaseModel):
11
+ class CustomerByExternalId(UniversalBaseModel):
12
+ external_customer_id: typing_extensions.Annotated[str, FieldMetadata(alias="externalCustomerId")] = pydantic.Field()
12
13
  """
13
- Associated order information
14
+ Your external customer ID
14
15
  """
15
16
 
16
- id: typing.Optional[str] = None
17
- display_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="displayId")] = None
18
-
19
17
  if IS_PYDANTIC_V2:
20
18
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
19
  else:
@@ -8,14 +8,12 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
  from ..core.serialization import FieldMetadata
9
9
 
10
10
 
11
- class UsageSummaryOrderLine(UniversalBaseModel):
11
+ class CustomerById(UniversalBaseModel):
12
+ customer_id: typing_extensions.Annotated[str, FieldMetadata(alias="customerId")] = pydantic.Field()
12
13
  """
13
- Associated order line information
14
+ The Paid customer ID
14
15
  """
15
16
 
16
- id: typing.Optional[str] = None
17
- display_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="displayId")] = None
18
-
19
17
  if IS_PYDANTIC_V2:
20
18
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
19
  else:
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CustomerCreationState = typing.Union[typing.Literal["draft", "active"], typing.Any]
@@ -0,0 +1,22 @@
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 .customer import Customer
8
+ from .pagination import Pagination
9
+
10
+
11
+ class CustomerListResponse(UniversalBaseModel):
12
+ data: typing.List[Customer]
13
+ pagination: Pagination
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,17 @@
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 EmptyResponse(UniversalBaseModel):
10
+ if IS_PYDANTIC_V2:
11
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
12
+ else:
13
+
14
+ class Config:
15
+ frozen = True
16
+ smart_union = True
17
+ extra = pydantic.Extra.allow
@@ -4,15 +4,12 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
- from .api_error import ApiError
8
7
 
9
8
 
10
- class Error(UniversalBaseModel):
11
- """
12
- An error response from the Paid API
13
- """
14
-
15
- error: ApiError
9
+ class ErrorResponse(UniversalBaseModel):
10
+ error: str
11
+ code: typing.Optional[str] = None
12
+ details: typing.Optional[str] = None
16
13
 
17
14
  if IS_PYDANTIC_V2:
18
15
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
paid/types/invoice.py ADDED
@@ -0,0 +1,57 @@
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 ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
10
+ from .invoice_payment_status import InvoicePaymentStatus
11
+ from .invoice_source import InvoiceSource
12
+ from .invoice_status import InvoiceStatus
13
+ from .invoice_tax_status import InvoiceTaxStatus
14
+
15
+
16
+ class Invoice(UniversalBaseModel):
17
+ id: str
18
+ display_number: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="displayNumber")] = None
19
+ order_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="orderId")] = None
20
+ customer_id: typing_extensions.Annotated[str, FieldMetadata(alias="customerId")]
21
+ status: InvoiceStatus
22
+ payment_status: typing_extensions.Annotated[InvoicePaymentStatus, FieldMetadata(alias="paymentStatus")]
23
+ source: InvoiceSource
24
+ start_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="startDate")]
25
+ end_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="endDate")] = None
26
+ issue_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="issueDate")]
27
+ posted_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="postedDate")] = None
28
+ due_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="dueDate")] = None
29
+ currency: str
30
+ tax_amount: typing_extensions.Annotated[float, FieldMetadata(alias="taxAmount")]
31
+ tax_rate: typing_extensions.Annotated[float, FieldMetadata(alias="taxRate")]
32
+ tax_status: typing_extensions.Annotated[InvoiceTaxStatus, FieldMetadata(alias="taxStatus")]
33
+ invoice_total_excluding_tax: typing_extensions.Annotated[float, FieldMetadata(alias="invoiceTotalExcludingTax")]
34
+ invoice_total: typing_extensions.Annotated[float, FieldMetadata(alias="invoiceTotal")]
35
+ amount_due: typing_extensions.Annotated[float, FieldMetadata(alias="amountDue")]
36
+ amount_paid: typing_extensions.Annotated[float, FieldMetadata(alias="amountPaid")]
37
+ amount_remaining: typing_extensions.Annotated[float, FieldMetadata(alias="amountRemaining")]
38
+ credit_notes_total: typing_extensions.Annotated[float, FieldMetadata(alias="creditNotesTotal")]
39
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
40
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
41
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
42
+ payment_link: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="paymentLink")] = None
43
+ dispute_link: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="disputeLink")] = None
44
+ public_url_token: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="publicUrlToken")] = None
45
+ tax_exempt: typing_extensions.Annotated[bool, FieldMetadata(alias="taxExempt")]
46
+ billing_contact_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingContactId")] = (
47
+ None
48
+ )
49
+
50
+ if IS_PYDANTIC_V2:
51
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
52
+ else:
53
+
54
+ class Config:
55
+ frozen = True
56
+ smart_union = True
57
+ extra = pydantic.Extra.allow
@@ -0,0 +1,42 @@
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 ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ..core.serialization import FieldMetadata
10
+ from .invoice_line_payment_status import InvoiceLinePaymentStatus
11
+
12
+
13
+ class InvoiceLine(UniversalBaseModel):
14
+ id: str
15
+ order_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="orderId")] = None
16
+ order_line_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="orderLineId")] = None
17
+ order_line_attribute_id: typing_extensions.Annotated[
18
+ typing.Optional[str], FieldMetadata(alias="orderLineAttributeId")
19
+ ] = None
20
+ start_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="startDate")]
21
+ end_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="endDate")]
22
+ payment_status: typing_extensions.Annotated[InvoiceLinePaymentStatus, FieldMetadata(alias="paymentStatus")]
23
+ quantity: int
24
+ total_price_before_tax: typing_extensions.Annotated[float, FieldMetadata(alias="totalPriceBeforeTax")]
25
+ tax: float
26
+ tax_rate: typing_extensions.Annotated[float, FieldMetadata(alias="taxRate")]
27
+ total_price_after_tax: typing_extensions.Annotated[float, FieldMetadata(alias="totalPriceAfterTax")]
28
+ currency: str
29
+ description: str
30
+ balance_amount: typing_extensions.Annotated[float, FieldMetadata(alias="balanceAmount")]
31
+ credited_amount: typing_extensions.Annotated[float, FieldMetadata(alias="creditedAmount")]
32
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
33
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
34
+
35
+ if IS_PYDANTIC_V2:
36
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
37
+ else:
38
+
39
+ class Config:
40
+ frozen = True
41
+ smart_union = True
42
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ InvoiceLinePaymentStatus = typing.Union[
6
+ typing.Literal["pending", "paid", "partiallyPaid", "overdue", "error"], typing.Any
7
+ ]
@@ -0,0 +1,22 @@
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 .invoice_line import InvoiceLine
8
+ from .pagination import Pagination
9
+
10
+
11
+ class InvoiceLinesResponse(UniversalBaseModel):
12
+ data: typing.List[InvoiceLine]
13
+ pagination: Pagination
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
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 .invoice import Invoice
8
+ from .pagination import Pagination
9
+
10
+
11
+ class InvoiceListResponse(UniversalBaseModel):
12
+ data: typing.List[Invoice]
13
+ pagination: Pagination
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ InvoicePaymentStatus = typing.Union[typing.Literal["pending", "paid", "partiallyPaid", "overdue", "error"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ InvoiceSource = typing.Union[typing.Literal["order_based", "manual"], typing.Any]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ InvoiceStatus = typing.Union[
6
+ typing.Literal["building", "draft", "pending", "posted", "voided", "canceled", "error"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ InvoiceTaxStatus = typing.Union[
6
+ typing.Literal["not_applicable", "calculated", "committed", "failed", "voided"], typing.Any
7
+ ]
paid/types/order.py CHANGED
@@ -1,43 +1,44 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
6
7
  import typing_extensions
7
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
9
  from ..core.serialization import FieldMetadata
9
- from .creation_state import CreationState
10
- from .customer import Customer
11
- from .order_line import OrderLine
10
+ from .order_creation_state import OrderCreationState
12
11
 
13
12
 
14
13
  class Order(UniversalBaseModel):
15
- id: typing.Optional[str] = None
16
- name: typing.Optional[str] = None
17
- description: typing.Optional[str] = None
18
- customer_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="customerId")] = None
19
- organization_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="organizationId")] = None
20
- start_date: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="startDate")] = None
21
- end_date: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="endDate")] = None
22
- total_amount: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="totalAmount")] = None
23
- estimated_tax: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="estimatedTax")] = None
24
- billed_amount_no_tax: typing_extensions.Annotated[
25
- typing.Optional[float], FieldMetadata(alias="billedAmountNoTax")
26
- ] = None
27
- billed_tax: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="billedTax")] = None
28
- total_billed_amount: typing_extensions.Annotated[
29
- typing.Optional[float], FieldMetadata(alias="totalBilledAmount")
30
- ] = None
31
- pending_billing_amount: typing_extensions.Annotated[
32
- typing.Optional[float], FieldMetadata(alias="pendingBillingAmount")
33
- ] = None
34
- creation_state: typing_extensions.Annotated[
35
- typing.Optional[CreationState], FieldMetadata(alias="creationState")
36
- ] = None
37
- order_lines: typing_extensions.Annotated[
38
- typing.Optional[typing.List[OrderLine]], FieldMetadata(alias="orderLines")
39
- ] = None
40
- customer: typing.Optional[Customer] = None
14
+ id: str
15
+ customer_id: typing_extensions.Annotated[str, FieldMetadata(alias="customerId")]
16
+ billing_customer_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="billingCustomerId")] = (
17
+ None
18
+ )
19
+ billing_contact_ids: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="billingContactIds")]
20
+ created_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="createdAt")]
21
+ updated_at: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="updatedAt")]
22
+ end_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="endDate")] = None
23
+ name: str
24
+ start_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="startDate")]
25
+ subscription_terms: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="subscriptionTerms")] = (
26
+ None
27
+ )
28
+ billed_amount_no_tax: typing_extensions.Annotated[float, FieldMetadata(alias="billedAmountNoTax")]
29
+ billed_tax: typing_extensions.Annotated[float, FieldMetadata(alias="billedTax")]
30
+ estimated_tax: typing_extensions.Annotated[float, FieldMetadata(alias="estimatedTax")]
31
+ order_amount: typing_extensions.Annotated[float, FieldMetadata(alias="orderAmount")]
32
+ pending_billing_amount: typing_extensions.Annotated[float, FieldMetadata(alias="pendingBillingAmount")]
33
+ total_amount: typing_extensions.Annotated[float, FieldMetadata(alias="totalAmount")]
34
+ total_billed_amount: typing_extensions.Annotated[float, FieldMetadata(alias="totalBilledAmount")]
35
+ creation_state: typing_extensions.Annotated[OrderCreationState, FieldMetadata(alias="creationState")]
36
+ payment_terms: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="paymentTerms")] = None
37
+ number: float
38
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
39
+ show_payment_link: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="showPaymentLink")] = None
40
+ show_bank_details: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="showBankDetails")] = None
41
+ version: int
41
42
 
42
43
  if IS_PYDANTIC_V2:
43
44
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrderCreationState = typing.Union[typing.Literal["draft", "active"], typing.Any]
paid/types/order_line.py CHANGED
@@ -1,39 +1,21 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import datetime as dt
3
4
  import typing
4
5
 
5
6
  import pydantic
6
7
  import typing_extensions
7
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
9
  from ..core.serialization import FieldMetadata
9
- from .agent import Agent
10
- from .creation_state import CreationState
11
- from .order_line_attribute import OrderLineAttribute
12
10
 
13
11
 
14
12
  class OrderLine(UniversalBaseModel):
15
- id: typing.Optional[str] = None
16
- order_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="orderId")] = None
17
- agent_id: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="agentId")] = None
18
- name: typing.Optional[str] = None
13
+ id: str
14
+ product_id: typing_extensions.Annotated[str, FieldMetadata(alias="productId")]
15
+ name: str
19
16
  description: typing.Optional[str] = None
20
- start_date: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="startDate")] = None
21
- end_date: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="endDate")] = None
22
- total_amount: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="totalAmount")] = None
23
- billed_amount_without_tax: typing_extensions.Annotated[
24
- typing.Optional[float], FieldMetadata(alias="billedAmountWithoutTax")
25
- ] = None
26
- billed_tax: typing_extensions.Annotated[typing.Optional[float], FieldMetadata(alias="billedTax")] = None
27
- total_billed_amount: typing_extensions.Annotated[
28
- typing.Optional[float], FieldMetadata(alias="totalBilledAmount")
29
- ] = None
30
- creation_state: typing_extensions.Annotated[
31
- typing.Optional[CreationState], FieldMetadata(alias="creationState")
32
- ] = None
33
- agent: typing.Optional[Agent] = None
34
- order_line_attributes: typing_extensions.Annotated[
35
- typing.Optional[typing.List[OrderLineAttribute]], FieldMetadata(alias="orderLineAttributes")
36
- ] = None
17
+ start_date: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="startDate")]
18
+ end_date: typing_extensions.Annotated[typing.Optional[dt.datetime], FieldMetadata(alias="endDate")] = None
37
19
 
38
20
  if IS_PYDANTIC_V2:
39
21
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,22 @@
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 .order_line import OrderLine
8
+ from .pagination import Pagination
9
+
10
+
11
+ class OrderLinesResponse(UniversalBaseModel):
12
+ data: typing.List[OrderLine]
13
+ pagination: Pagination
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow