telnyx 3.6.0a0__py3-none-any.whl → 3.7.0__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.
Potentially problematic release.
This version of telnyx might be problematic. Click here for more details.
- telnyx/_client.py +3 -754
- telnyx/_version.py +1 -1
- telnyx/resources/advanced_orders.py +63 -63
- telnyx/resources/ai/assistants/assistants.py +15 -17
- telnyx/resources/ai/assistants/versions.py +13 -15
- telnyx/resources/brand/brand.py +8 -4
- telnyx/resources/calls/actions.py +10 -6
- telnyx/resources/calls/calls.py +16 -2
- telnyx/resources/documents.py +242 -37
- telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
- telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
- telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
- telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
- telnyx/resources/outbound_voice_profiles.py +24 -4
- telnyx/resources/sim_cards/actions.py +12 -12
- telnyx/resources/texml/accounts/calls/calls.py +11 -0
- telnyx/resources/texml/accounts/conferences/participants.py +11 -0
- telnyx/resources/verified_numbers/verified_numbers.py +25 -4
- telnyx/resources/verify_profiles.py +9 -10
- telnyx/resources/webhooks.py +19 -0
- telnyx/types/__init__.py +18 -15
- telnyx/types/access_ip_address_list_response.py +3 -12
- telnyx/types/access_ip_range_list_response.py +3 -12
- telnyx/types/addresses/action_validate_response.py +8 -3
- telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
- telnyx/types/ai/__init__.py +1 -3
- telnyx/types/ai/assistant_import_params.py +1 -1
- telnyx/types/ai/assistants/__init__.py +0 -3
- telnyx/types/ai/assistants_list.py +4 -88
- telnyx/types/ai/import_metadata.py +1 -1
- telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
- telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
- telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
- telnyx/types/ai/voice_settings.py +49 -2
- telnyx/types/ai/voice_settings_param.py +49 -2
- telnyx/types/brand_create_params.py +2 -1
- telnyx/types/brand_update_params.py +2 -1
- telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
- telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
- telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
- telnyx/types/call_answered_webhook_event1.py +75 -0
- telnyx/types/call_bridged_webhook_event1.py +58 -0
- telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
- telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
- telnyx/types/call_dial_params.py +10 -1
- telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
- telnyx/types/call_enqueued_webhook_event1.py +59 -0
- telnyx/types/call_fork_started_webhook_event1.py +53 -0
- telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
- telnyx/types/call_gather_ended_webhook_event1.py +64 -0
- telnyx/types/call_hangup_webhook_event1.py +150 -0
- telnyx/types/call_initiated_webhook_event1.py +96 -0
- telnyx/types/call_left_queue_webhook_event1.py +62 -0
- telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
- telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
- telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
- telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
- telnyx/types/call_playback_ended_webhook_event1.py +70 -0
- telnyx/types/call_playback_started_webhook_event1.py +62 -0
- telnyx/types/call_recording_error_webhook_event1.py +60 -0
- telnyx/types/call_recording_saved_webhook_event1.py +94 -0
- telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
- telnyx/types/call_refer_completed_webhook_event1.py +61 -0
- telnyx/types/call_refer_failed_webhook_event1.py +61 -0
- telnyx/types/call_refer_started_webhook_event1.py +61 -0
- telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
- telnyx/types/call_siprec_started_webhook_event1.py +50 -0
- telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
- telnyx/types/call_speak_ended_webhook_event1.py +53 -0
- telnyx/types/call_speak_started_webhook_event1.py +50 -0
- telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
- telnyx/types/call_streaming_started_webhook_event1.py +53 -0
- telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
- telnyx/types/calls/__init__.py +1 -0
- telnyx/types/calls/action_start_streaming_params.py +2 -1
- telnyx/types/calls/action_start_transcription_params.py +160 -6
- telnyx/types/calls/telnyx_transcription_language.py +108 -0
- telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
- telnyx/types/calls/transcription_start_request_param.py +161 -6
- telnyx/types/campaign_status_update_webhook_event1.py +26 -0
- telnyx/types/conference_created_webhook_event1.py +53 -0
- telnyx/types/conference_ended_webhook_event1.py +56 -0
- telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
- telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
- telnyx/types/conference_participant_left_webhook_event1.py +53 -0
- telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
- telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
- telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
- telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
- telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
- telnyx/types/conference_playback_started_webhook_event1.py +49 -0
- telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
- telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
- telnyx/types/conference_speak_started_webhook_event1.py +40 -0
- telnyx/types/country_coverage_retrieve_country_response.py +7 -0
- telnyx/types/country_coverage_retrieve_response.py +7 -0
- telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
- telnyx/types/delivery_update_webhook_event1.py +40 -0
- telnyx/types/document_upload_json_params.py +39 -0
- telnyx/types/document_upload_json_response.py +12 -0
- telnyx/types/fax_delivered_webhook_event1.py +69 -0
- telnyx/types/fax_failed_webhook_event1.py +66 -0
- telnyx/types/fax_media_processed_webhook_event1.py +63 -0
- telnyx/types/fax_queued_webhook_event1.py +63 -0
- telnyx/types/fax_sending_started_webhook_event1.py +63 -0
- telnyx/types/inbound_message_webhook_event1.py +227 -0
- telnyx/types/legacy/reporting/__init__.py +2 -0
- telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
- telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
- telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
- telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
- telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
- telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
- telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
- telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
- telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
- telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
- telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
- telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
- telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
- telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
- telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
- telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
- telnyx/types/legacy/reporting/filter.py +31 -0
- telnyx/types/legacy/reporting/filter_param.py +30 -0
- telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
- telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
- telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
- telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
- telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
- telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
- telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
- telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
- telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
- telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
- telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
- telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
- telnyx/types/message_template.py +12 -0
- telnyx/types/messaging_profile.py +3 -0
- telnyx/types/messaging_profile_create_params.py +3 -0
- telnyx/types/messaging_profile_update_params.py +3 -0
- telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
- telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
- telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
- telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
- telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
- telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
- telnyx/types/number_order_status_update_webhook_event1.py +38 -0
- telnyx/types/oauth_client.py +59 -0
- telnyx/types/oauth_client_create_response.py +4 -55
- telnyx/types/oauth_client_list_response.py +5 -69
- telnyx/types/oauth_client_retrieve_response.py +4 -55
- telnyx/types/oauth_client_update_response.py +4 -55
- telnyx/types/oauth_grant.py +29 -0
- telnyx/types/oauth_grant_delete_response.py +4 -25
- telnyx/types/oauth_grant_list_response.py +5 -39
- telnyx/types/oauth_grant_retrieve_response.py +4 -25
- telnyx/types/outbound_voice_profile.py +27 -1
- telnyx/types/outbound_voice_profile_create_params.py +27 -1
- telnyx/types/outbound_voice_profile_list_params.py +1 -1
- telnyx/types/outbound_voice_profile_update_params.py +27 -1
- telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
- telnyx/types/pagination_meta_oauth.py +21 -0
- telnyx/types/phone_number_blocks/__init__.py +1 -0
- telnyx/types/phone_number_blocks/job.py +3 -34
- telnyx/types/phone_number_blocks/job_error.py +32 -0
- telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
- telnyx/types/replaced_link_click_webhook_event1.py +32 -0
- telnyx/types/report_list_mdrs_response.py +3 -12
- telnyx/types/reports/__init__.py +1 -0
- telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
- telnyx/types/reports/pagination_meta_reporting.py +17 -0
- telnyx/types/requirement_group.py +2 -2
- telnyx/types/requirement_group_list_params.py +1 -1
- telnyx/types/shared/__init__.py +1 -0
- telnyx/types/{error.py → shared/api_error.py} +3 -3
- telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
- telnyx/types/streaming_failed_webhook_event1.py +70 -0
- telnyx/types/streaming_started_webhook_event1.py +53 -0
- telnyx/types/streaming_stopped_webhook_event1.py +53 -0
- telnyx/types/texml/accounts/call_calls_params.py +16 -1
- telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
- telnyx/types/transcription_webhook_event1.py +72 -0
- telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
- telnyx/types/verifications/__init__.py +1 -0
- telnyx/types/verifications/by_phone_number_list_response.py +4 -13
- telnyx/types/verifications/verify_meta.py +17 -0
- telnyx/types/verified_number_create_params.py +10 -0
- telnyx/types/verify_profile.py +18 -3
- telnyx/types/verify_profile_list_response.py +4 -13
- telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
- telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
- {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/METADATA +4 -4
- {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/RECORD +199 -125
- telnyx/types/ai/assistant_create_response.py +0 -92
- telnyx/types/ai/assistant_retrieve_response.py +0 -92
- telnyx/types/ai/assistants/version_promote_response.py +0 -92
- telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
- telnyx/types/ai/assistants/version_update_response.py +0 -92
- telnyx/types/client_create_bucket_params.py +0 -13
- telnyx/types/client_delete_objects_params.py +0 -20
- telnyx/types/client_get_object_params.py +0 -15
- telnyx/types/client_list_objects_params.py +0 -13
- telnyx/types/client_put_object_params.py +0 -20
- telnyx/types/list_buckets_response.py +0 -20
- telnyx/types/list_objects_response.py +0 -24
- telnyx/types/verify_profile_update_template_response.py +0 -17
- {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/WHEEL +0 -0
- {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from pydantic import Field as FieldInfo
|
|
8
|
+
|
|
9
|
+
from .._models import BaseModel
|
|
10
|
+
from .messaging_error import MessagingError
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"InboundMessageWebhookEvent",
|
|
14
|
+
"Data",
|
|
15
|
+
"DataPayload",
|
|
16
|
+
"DataPayloadCc",
|
|
17
|
+
"DataPayloadCost",
|
|
18
|
+
"DataPayloadCostBreakdown",
|
|
19
|
+
"DataPayloadCostBreakdownCarrierFee",
|
|
20
|
+
"DataPayloadCostBreakdownRate",
|
|
21
|
+
"DataPayloadFrom",
|
|
22
|
+
"DataPayloadMedia",
|
|
23
|
+
"DataPayloadTo",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class DataPayloadCc(BaseModel):
|
|
28
|
+
carrier: Optional[str] = None
|
|
29
|
+
"""The carrier of the receiver."""
|
|
30
|
+
|
|
31
|
+
line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
|
|
32
|
+
"""The line-type of the receiver."""
|
|
33
|
+
|
|
34
|
+
phone_number: Optional[str] = None
|
|
35
|
+
"""Receiving address (+E.164 formatted phone number or short code)."""
|
|
36
|
+
|
|
37
|
+
status: Optional[
|
|
38
|
+
Literal["queued", "sending", "sent", "delivered", "sending_failed", "delivery_failed", "delivery_unconfirmed"]
|
|
39
|
+
] = None
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class DataPayloadCost(BaseModel):
|
|
43
|
+
amount: Optional[str] = None
|
|
44
|
+
"""The amount deducted from your account."""
|
|
45
|
+
|
|
46
|
+
currency: Optional[str] = None
|
|
47
|
+
"""The ISO 4217 currency identifier."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class DataPayloadCostBreakdownCarrierFee(BaseModel):
|
|
51
|
+
amount: Optional[str] = None
|
|
52
|
+
"""The carrier fee amount."""
|
|
53
|
+
|
|
54
|
+
currency: Optional[str] = None
|
|
55
|
+
"""The ISO 4217 currency identifier."""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class DataPayloadCostBreakdownRate(BaseModel):
|
|
59
|
+
amount: Optional[str] = None
|
|
60
|
+
"""The rate amount applied."""
|
|
61
|
+
|
|
62
|
+
currency: Optional[str] = None
|
|
63
|
+
"""The ISO 4217 currency identifier."""
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class DataPayloadCostBreakdown(BaseModel):
|
|
67
|
+
carrier_fee: Optional[DataPayloadCostBreakdownCarrierFee] = None
|
|
68
|
+
|
|
69
|
+
rate: Optional[DataPayloadCostBreakdownRate] = None
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class DataPayloadFrom(BaseModel):
|
|
73
|
+
carrier: Optional[str] = None
|
|
74
|
+
"""The carrier of the sender."""
|
|
75
|
+
|
|
76
|
+
line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
|
|
77
|
+
"""The line-type of the sender."""
|
|
78
|
+
|
|
79
|
+
phone_number: Optional[str] = None
|
|
80
|
+
"""
|
|
81
|
+
Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short
|
|
82
|
+
code).
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
status: Optional[Literal["received", "delivered"]] = None
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class DataPayloadMedia(BaseModel):
|
|
89
|
+
content_type: Optional[str] = None
|
|
90
|
+
"""The MIME type of the requested media."""
|
|
91
|
+
|
|
92
|
+
hash_sha256: Optional[str] = None
|
|
93
|
+
"""The SHA256 hash of the requested media."""
|
|
94
|
+
|
|
95
|
+
size: Optional[int] = None
|
|
96
|
+
"""The size of the requested media."""
|
|
97
|
+
|
|
98
|
+
url: Optional[str] = None
|
|
99
|
+
"""The url of the media requested to be sent."""
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class DataPayloadTo(BaseModel):
|
|
103
|
+
carrier: Optional[str] = None
|
|
104
|
+
"""The carrier of the receiver."""
|
|
105
|
+
|
|
106
|
+
line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
|
|
107
|
+
"""The line-type of the receiver."""
|
|
108
|
+
|
|
109
|
+
phone_number: Optional[str] = None
|
|
110
|
+
"""Receiving address (+E.164 formatted phone number or short code)."""
|
|
111
|
+
|
|
112
|
+
status: Optional[
|
|
113
|
+
Literal[
|
|
114
|
+
"queued",
|
|
115
|
+
"sending",
|
|
116
|
+
"sent",
|
|
117
|
+
"delivered",
|
|
118
|
+
"sending_failed",
|
|
119
|
+
"delivery_failed",
|
|
120
|
+
"delivery_unconfirmed",
|
|
121
|
+
"webhook_delivered",
|
|
122
|
+
]
|
|
123
|
+
] = None
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class DataPayload(BaseModel):
|
|
127
|
+
id: Optional[str] = None
|
|
128
|
+
"""Identifies the type of resource."""
|
|
129
|
+
|
|
130
|
+
cc: Optional[List[DataPayloadCc]] = None
|
|
131
|
+
|
|
132
|
+
completed_at: Optional[datetime] = None
|
|
133
|
+
"""Not used for inbound messages."""
|
|
134
|
+
|
|
135
|
+
cost: Optional[DataPayloadCost] = None
|
|
136
|
+
|
|
137
|
+
cost_breakdown: Optional[DataPayloadCostBreakdown] = None
|
|
138
|
+
"""Detailed breakdown of the message cost components."""
|
|
139
|
+
|
|
140
|
+
direction: Optional[Literal["inbound"]] = None
|
|
141
|
+
"""The direction of the message.
|
|
142
|
+
|
|
143
|
+
Inbound messages are sent to you whereas outbound messages are sent from you.
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
encoding: Optional[str] = None
|
|
147
|
+
"""Encoding scheme used for the message body."""
|
|
148
|
+
|
|
149
|
+
errors: Optional[List[MessagingError]] = None
|
|
150
|
+
"""
|
|
151
|
+
These errors may point at addressees when referring to unsuccessful/unconfirmed
|
|
152
|
+
delivery statuses.
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
from_: Optional[DataPayloadFrom] = FieldInfo(alias="from", default=None)
|
|
156
|
+
|
|
157
|
+
media: Optional[List[DataPayloadMedia]] = None
|
|
158
|
+
|
|
159
|
+
messaging_profile_id: Optional[str] = None
|
|
160
|
+
"""Unique identifier for a messaging profile."""
|
|
161
|
+
|
|
162
|
+
parts: Optional[int] = None
|
|
163
|
+
"""Number of parts into which the message's body must be split."""
|
|
164
|
+
|
|
165
|
+
received_at: Optional[datetime] = None
|
|
166
|
+
"""ISO 8601 formatted date indicating when the message request was received."""
|
|
167
|
+
|
|
168
|
+
record_type: Optional[Literal["message"]] = None
|
|
169
|
+
"""Identifies the type of the resource."""
|
|
170
|
+
|
|
171
|
+
sent_at: Optional[datetime] = None
|
|
172
|
+
"""Not used for inbound messages."""
|
|
173
|
+
|
|
174
|
+
tags: Optional[List[str]] = None
|
|
175
|
+
"""Tags associated with the resource."""
|
|
176
|
+
|
|
177
|
+
tcr_campaign_billable: Optional[bool] = None
|
|
178
|
+
"""Indicates whether the TCR campaign is billable."""
|
|
179
|
+
|
|
180
|
+
tcr_campaign_id: Optional[str] = None
|
|
181
|
+
"""The Campaign Registry (TCR) campaign ID associated with the message."""
|
|
182
|
+
|
|
183
|
+
tcr_campaign_registered: Optional[str] = None
|
|
184
|
+
"""The registration status of the TCR campaign."""
|
|
185
|
+
|
|
186
|
+
text: Optional[str] = None
|
|
187
|
+
"""Message body (i.e., content) as a non-empty string.
|
|
188
|
+
|
|
189
|
+
**Required for SMS**
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
to: Optional[List[DataPayloadTo]] = None
|
|
193
|
+
|
|
194
|
+
type: Optional[Literal["SMS", "MMS"]] = None
|
|
195
|
+
"""The type of message. This value can be either 'sms' or 'mms'."""
|
|
196
|
+
|
|
197
|
+
valid_until: Optional[datetime] = None
|
|
198
|
+
"""Not used for inbound messages."""
|
|
199
|
+
|
|
200
|
+
webhook_failover_url: Optional[str] = None
|
|
201
|
+
"""
|
|
202
|
+
The failover URL where webhooks related to this message will be sent if sending
|
|
203
|
+
to the primary URL fails.
|
|
204
|
+
"""
|
|
205
|
+
|
|
206
|
+
webhook_url: Optional[str] = None
|
|
207
|
+
"""The URL where webhooks related to this message will be sent."""
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class Data(BaseModel):
|
|
211
|
+
id: Optional[str] = None
|
|
212
|
+
"""Identifies the type of resource."""
|
|
213
|
+
|
|
214
|
+
event_type: Optional[Literal["message.received"]] = None
|
|
215
|
+
"""The type of event being delivered."""
|
|
216
|
+
|
|
217
|
+
occurred_at: Optional[datetime] = None
|
|
218
|
+
"""ISO 8601 formatted date indicating when the resource was created."""
|
|
219
|
+
|
|
220
|
+
payload: Optional[DataPayload] = None
|
|
221
|
+
|
|
222
|
+
record_type: Optional[Literal["event"]] = None
|
|
223
|
+
"""Identifies the type of the resource."""
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class InboundMessageWebhookEvent(BaseModel):
|
|
227
|
+
data: Optional[Data] = None
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from .filter import Filter as Filter
|
|
6
|
+
from .filter_param import FilterParam as FilterParam
|
|
5
7
|
from .usage_report_retrieve_speech_to_text_params import (
|
|
6
8
|
UsageReportRetrieveSpeechToTextParams as UsageReportRetrieveSpeechToTextParams,
|
|
7
9
|
)
|
|
@@ -9,8 +9,12 @@ from .voice_delete_response import VoiceDeleteResponse as VoiceDeleteResponse
|
|
|
9
9
|
from .messaging_create_params import MessagingCreateParams as MessagingCreateParams
|
|
10
10
|
from .messaging_list_response import MessagingListResponse as MessagingListResponse
|
|
11
11
|
from .voice_retrieve_response import VoiceRetrieveResponse as VoiceRetrieveResponse
|
|
12
|
+
from .batch_csv_pagination_meta import BatchCsvPaginationMeta as BatchCsvPaginationMeta
|
|
13
|
+
from .cdr_detailed_req_response import CdrDetailedReqResponse as CdrDetailedReqResponse
|
|
12
14
|
from .messaging_create_response import MessagingCreateResponse as MessagingCreateResponse
|
|
13
15
|
from .messaging_delete_response import MessagingDeleteResponse as MessagingDeleteResponse
|
|
16
|
+
from .mdr_detail_report_response import MdrDetailReportResponse as MdrDetailReportResponse
|
|
17
|
+
from .stt_detail_report_response import SttDetailReportResponse as SttDetailReportResponse
|
|
14
18
|
from .messaging_retrieve_response import MessagingRetrieveResponse as MessagingRetrieveResponse
|
|
15
19
|
from .speech_to_text_create_params import SpeechToTextCreateParams as SpeechToTextCreateParams
|
|
16
20
|
from .speech_to_text_list_response import SpeechToTextListResponse as SpeechToTextListResponse
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ....._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["BatchCsvPaginationMeta"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BatchCsvPaginationMeta(BaseModel):
|
|
11
|
+
page_number: Optional[int] = None
|
|
12
|
+
|
|
13
|
+
page_size: Optional[int] = None
|
|
14
|
+
|
|
15
|
+
total_pages: Optional[int] = None
|
|
16
|
+
|
|
17
|
+
total_results: Optional[int] = None
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from ..filter import Filter
|
|
6
|
+
from ....._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["CdrDetailedReqResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CdrDetailedReqResponse(BaseModel):
|
|
12
|
+
id: Optional[str] = None
|
|
13
|
+
"""Unique identifier for the report"""
|
|
14
|
+
|
|
15
|
+
call_types: Optional[List[int]] = None
|
|
16
|
+
"""List of call types (Inbound = 1, Outbound = 2)"""
|
|
17
|
+
|
|
18
|
+
connections: Optional[List[int]] = None
|
|
19
|
+
"""List of connections"""
|
|
20
|
+
|
|
21
|
+
created_at: Optional[str] = None
|
|
22
|
+
"""Creation date of the report"""
|
|
23
|
+
|
|
24
|
+
end_time: Optional[str] = None
|
|
25
|
+
"""End time in ISO format"""
|
|
26
|
+
|
|
27
|
+
filters: Optional[List[Filter]] = None
|
|
28
|
+
"""List of filters"""
|
|
29
|
+
|
|
30
|
+
managed_accounts: Optional[List[str]] = None
|
|
31
|
+
"""List of managed accounts"""
|
|
32
|
+
|
|
33
|
+
record_type: Optional[str] = None
|
|
34
|
+
|
|
35
|
+
record_types: Optional[List[int]] = None
|
|
36
|
+
"""List of record types (Complete = 1, Incomplete = 2, Errors = 3)"""
|
|
37
|
+
|
|
38
|
+
report_name: Optional[str] = None
|
|
39
|
+
"""Name of the report"""
|
|
40
|
+
|
|
41
|
+
report_url: Optional[str] = None
|
|
42
|
+
"""URL to download the report"""
|
|
43
|
+
|
|
44
|
+
retry: Optional[int] = None
|
|
45
|
+
"""Number of retries"""
|
|
46
|
+
|
|
47
|
+
source: Optional[str] = None
|
|
48
|
+
"""Source of the report.
|
|
49
|
+
|
|
50
|
+
Valid values: calls (default), call-control, fax-api, webrtc
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
start_time: Optional[str] = None
|
|
54
|
+
"""Start time in ISO format"""
|
|
55
|
+
|
|
56
|
+
status: Optional[int] = None
|
|
57
|
+
"""Status of the report (Pending = 1, Complete = 2, Failed = 3, Expired = 4)"""
|
|
58
|
+
|
|
59
|
+
timezone: Optional[str] = None
|
|
60
|
+
"""Timezone for the report"""
|
|
61
|
+
|
|
62
|
+
updated_at: Optional[str] = None
|
|
63
|
+
"""Last update date of the report"""
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
from typing_extensions import Literal
|
|
6
|
+
|
|
7
|
+
from ..filter import Filter
|
|
8
|
+
from ....._models import BaseModel
|
|
9
|
+
|
|
10
|
+
__all__ = ["MdrDetailReportResponse"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class MdrDetailReportResponse(BaseModel):
|
|
14
|
+
id: Optional[str] = None
|
|
15
|
+
"""Identifies the resource"""
|
|
16
|
+
|
|
17
|
+
connections: Optional[List[int]] = None
|
|
18
|
+
|
|
19
|
+
created_at: Optional[datetime] = None
|
|
20
|
+
|
|
21
|
+
directions: Optional[List[Literal["INBOUND", "OUTBOUND"]]] = None
|
|
22
|
+
|
|
23
|
+
end_date: Optional[datetime] = None
|
|
24
|
+
|
|
25
|
+
filters: Optional[List[Filter]] = None
|
|
26
|
+
|
|
27
|
+
profiles: Optional[List[str]] = None
|
|
28
|
+
"""List of messaging profile IDs"""
|
|
29
|
+
|
|
30
|
+
record_type: Optional[str] = None
|
|
31
|
+
|
|
32
|
+
record_types: Optional[List[Literal["INCOMPLETE", "COMPLETED", "ERRORS"]]] = None
|
|
33
|
+
|
|
34
|
+
report_name: Optional[str] = None
|
|
35
|
+
|
|
36
|
+
report_url: Optional[str] = None
|
|
37
|
+
|
|
38
|
+
start_date: Optional[datetime] = None
|
|
39
|
+
|
|
40
|
+
status: Optional[Literal["PENDING", "COMPLETE", "FAILED", "EXPIRED"]] = None
|
|
41
|
+
|
|
42
|
+
updated_at: Optional[datetime] = None
|
|
@@ -4,12 +4,13 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from typing import Union, Iterable
|
|
6
6
|
from datetime import datetime
|
|
7
|
-
from typing_extensions import
|
|
7
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
8
8
|
|
|
9
9
|
from ....._types import SequenceNotStr
|
|
10
10
|
from ....._utils import PropertyInfo
|
|
11
|
+
from ..filter_param import FilterParam
|
|
11
12
|
|
|
12
|
-
__all__ = ["MessagingCreateParams"
|
|
13
|
+
__all__ = ["MessagingCreateParams"]
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
class MessagingCreateParams(TypedDict, total=False):
|
|
@@ -29,7 +30,7 @@ class MessagingCreateParams(TypedDict, total=False):
|
|
|
29
30
|
directions: Iterable[int]
|
|
30
31
|
"""List of directions to filter by (Inbound = 1, Outbound = 2)"""
|
|
31
32
|
|
|
32
|
-
filters: Iterable[
|
|
33
|
+
filters: Iterable[FilterParam]
|
|
33
34
|
"""List of filters to apply"""
|
|
34
35
|
|
|
35
36
|
include_message_body: bool
|
|
@@ -52,26 +53,3 @@ class MessagingCreateParams(TypedDict, total=False):
|
|
|
52
53
|
|
|
53
54
|
timezone: str
|
|
54
55
|
"""Timezone for the report"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class Filter(TypedDict, total=False):
|
|
58
|
-
billing_group: str
|
|
59
|
-
"""Billing group UUID to filter by"""
|
|
60
|
-
|
|
61
|
-
cld: str
|
|
62
|
-
"""Called line identification (destination number)"""
|
|
63
|
-
|
|
64
|
-
cld_filter: Literal["contains", "starts_with", "ends_with"]
|
|
65
|
-
"""Filter type for CLD matching"""
|
|
66
|
-
|
|
67
|
-
cli: str
|
|
68
|
-
"""Calling line identification (caller ID)"""
|
|
69
|
-
|
|
70
|
-
cli_filter: Literal["contains", "starts_with", "ends_with"]
|
|
71
|
-
"""Filter type for CLI matching"""
|
|
72
|
-
|
|
73
|
-
filter_type: Literal["and", "or"]
|
|
74
|
-
"""Logical operator for combining filters"""
|
|
75
|
-
|
|
76
|
-
tags_list: str
|
|
77
|
-
"""Tag name to filter by"""
|
|
@@ -1,68 +1,12 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
from typing import
|
|
4
|
-
from datetime import datetime
|
|
5
|
-
from typing_extensions import Literal
|
|
3
|
+
from typing import Optional
|
|
6
4
|
|
|
7
5
|
from ....._models import BaseModel
|
|
6
|
+
from .mdr_detail_report_response import MdrDetailReportResponse
|
|
8
7
|
|
|
9
|
-
__all__ = ["MessagingCreateResponse"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class DataFilter(BaseModel):
|
|
13
|
-
billing_group: Optional[str] = None
|
|
14
|
-
"""Billing group UUID to filter by"""
|
|
15
|
-
|
|
16
|
-
cld: Optional[str] = None
|
|
17
|
-
"""Called line identification (destination number)"""
|
|
18
|
-
|
|
19
|
-
cld_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
20
|
-
"""Filter type for CLD matching"""
|
|
21
|
-
|
|
22
|
-
cli: Optional[str] = None
|
|
23
|
-
"""Calling line identification (caller ID)"""
|
|
24
|
-
|
|
25
|
-
cli_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
26
|
-
"""Filter type for CLI matching"""
|
|
27
|
-
|
|
28
|
-
filter_type: Optional[Literal["and", "or"]] = None
|
|
29
|
-
"""Logical operator for combining filters"""
|
|
30
|
-
|
|
31
|
-
tags_list: Optional[str] = None
|
|
32
|
-
"""Tag name to filter by"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class Data(BaseModel):
|
|
36
|
-
id: Optional[str] = None
|
|
37
|
-
"""Identifies the resource"""
|
|
38
|
-
|
|
39
|
-
connections: Optional[List[int]] = None
|
|
40
|
-
|
|
41
|
-
created_at: Optional[datetime] = None
|
|
42
|
-
|
|
43
|
-
directions: Optional[List[Literal["INBOUND", "OUTBOUND"]]] = None
|
|
44
|
-
|
|
45
|
-
end_date: Optional[datetime] = None
|
|
46
|
-
|
|
47
|
-
filters: Optional[List[DataFilter]] = None
|
|
48
|
-
|
|
49
|
-
profiles: Optional[List[str]] = None
|
|
50
|
-
"""List of messaging profile IDs"""
|
|
51
|
-
|
|
52
|
-
record_type: Optional[str] = None
|
|
53
|
-
|
|
54
|
-
record_types: Optional[List[Literal["INCOMPLETE", "COMPLETED", "ERRORS"]]] = None
|
|
55
|
-
|
|
56
|
-
report_name: Optional[str] = None
|
|
57
|
-
|
|
58
|
-
report_url: Optional[str] = None
|
|
59
|
-
|
|
60
|
-
start_date: Optional[datetime] = None
|
|
61
|
-
|
|
62
|
-
status: Optional[Literal["PENDING", "COMPLETE", "FAILED", "EXPIRED"]] = None
|
|
63
|
-
|
|
64
|
-
updated_at: Optional[datetime] = None
|
|
8
|
+
__all__ = ["MessagingCreateResponse"]
|
|
65
9
|
|
|
66
10
|
|
|
67
11
|
class MessagingCreateResponse(BaseModel):
|
|
68
|
-
data: Optional[
|
|
12
|
+
data: Optional[MdrDetailReportResponse] = None
|
|
@@ -1,68 +1,12 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
from typing import
|
|
4
|
-
from datetime import datetime
|
|
5
|
-
from typing_extensions import Literal
|
|
3
|
+
from typing import Optional
|
|
6
4
|
|
|
7
5
|
from ....._models import BaseModel
|
|
6
|
+
from .mdr_detail_report_response import MdrDetailReportResponse
|
|
8
7
|
|
|
9
|
-
__all__ = ["MessagingDeleteResponse"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class DataFilter(BaseModel):
|
|
13
|
-
billing_group: Optional[str] = None
|
|
14
|
-
"""Billing group UUID to filter by"""
|
|
15
|
-
|
|
16
|
-
cld: Optional[str] = None
|
|
17
|
-
"""Called line identification (destination number)"""
|
|
18
|
-
|
|
19
|
-
cld_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
20
|
-
"""Filter type for CLD matching"""
|
|
21
|
-
|
|
22
|
-
cli: Optional[str] = None
|
|
23
|
-
"""Calling line identification (caller ID)"""
|
|
24
|
-
|
|
25
|
-
cli_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
26
|
-
"""Filter type for CLI matching"""
|
|
27
|
-
|
|
28
|
-
filter_type: Optional[Literal["and", "or"]] = None
|
|
29
|
-
"""Logical operator for combining filters"""
|
|
30
|
-
|
|
31
|
-
tags_list: Optional[str] = None
|
|
32
|
-
"""Tag name to filter by"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class Data(BaseModel):
|
|
36
|
-
id: Optional[str] = None
|
|
37
|
-
"""Identifies the resource"""
|
|
38
|
-
|
|
39
|
-
connections: Optional[List[int]] = None
|
|
40
|
-
|
|
41
|
-
created_at: Optional[datetime] = None
|
|
42
|
-
|
|
43
|
-
directions: Optional[List[Literal["INBOUND", "OUTBOUND"]]] = None
|
|
44
|
-
|
|
45
|
-
end_date: Optional[datetime] = None
|
|
46
|
-
|
|
47
|
-
filters: Optional[List[DataFilter]] = None
|
|
48
|
-
|
|
49
|
-
profiles: Optional[List[str]] = None
|
|
50
|
-
"""List of messaging profile IDs"""
|
|
51
|
-
|
|
52
|
-
record_type: Optional[str] = None
|
|
53
|
-
|
|
54
|
-
record_types: Optional[List[Literal["INCOMPLETE", "COMPLETED", "ERRORS"]]] = None
|
|
55
|
-
|
|
56
|
-
report_name: Optional[str] = None
|
|
57
|
-
|
|
58
|
-
report_url: Optional[str] = None
|
|
59
|
-
|
|
60
|
-
start_date: Optional[datetime] = None
|
|
61
|
-
|
|
62
|
-
status: Optional[Literal["PENDING", "COMPLETE", "FAILED", "EXPIRED"]] = None
|
|
63
|
-
|
|
64
|
-
updated_at: Optional[datetime] = None
|
|
8
|
+
__all__ = ["MessagingDeleteResponse"]
|
|
65
9
|
|
|
66
10
|
|
|
67
11
|
class MessagingDeleteResponse(BaseModel):
|
|
68
|
-
data: Optional[
|
|
12
|
+
data: Optional[MdrDetailReportResponse] = None
|
|
@@ -1,80 +1,15 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
from typing import List, Optional
|
|
4
|
-
from datetime import datetime
|
|
5
|
-
from typing_extensions import Literal
|
|
6
4
|
|
|
7
5
|
from ....._models import BaseModel
|
|
6
|
+
from .batch_csv_pagination_meta import BatchCsvPaginationMeta
|
|
7
|
+
from .mdr_detail_report_response import MdrDetailReportResponse
|
|
8
8
|
|
|
9
|
-
__all__ = ["MessagingListResponse"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class DataFilter(BaseModel):
|
|
13
|
-
billing_group: Optional[str] = None
|
|
14
|
-
"""Billing group UUID to filter by"""
|
|
15
|
-
|
|
16
|
-
cld: Optional[str] = None
|
|
17
|
-
"""Called line identification (destination number)"""
|
|
18
|
-
|
|
19
|
-
cld_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
20
|
-
"""Filter type for CLD matching"""
|
|
21
|
-
|
|
22
|
-
cli: Optional[str] = None
|
|
23
|
-
"""Calling line identification (caller ID)"""
|
|
24
|
-
|
|
25
|
-
cli_filter: Optional[Literal["contains", "starts_with", "ends_with"]] = None
|
|
26
|
-
"""Filter type for CLI matching"""
|
|
27
|
-
|
|
28
|
-
filter_type: Optional[Literal["and", "or"]] = None
|
|
29
|
-
"""Logical operator for combining filters"""
|
|
30
|
-
|
|
31
|
-
tags_list: Optional[str] = None
|
|
32
|
-
"""Tag name to filter by"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class Data(BaseModel):
|
|
36
|
-
id: Optional[str] = None
|
|
37
|
-
"""Identifies the resource"""
|
|
38
|
-
|
|
39
|
-
connections: Optional[List[int]] = None
|
|
40
|
-
|
|
41
|
-
created_at: Optional[datetime] = None
|
|
42
|
-
|
|
43
|
-
directions: Optional[List[Literal["INBOUND", "OUTBOUND"]]] = None
|
|
44
|
-
|
|
45
|
-
end_date: Optional[datetime] = None
|
|
46
|
-
|
|
47
|
-
filters: Optional[List[DataFilter]] = None
|
|
48
|
-
|
|
49
|
-
profiles: Optional[List[str]] = None
|
|
50
|
-
"""List of messaging profile IDs"""
|
|
51
|
-
|
|
52
|
-
record_type: Optional[str] = None
|
|
53
|
-
|
|
54
|
-
record_types: Optional[List[Literal["INCOMPLETE", "COMPLETED", "ERRORS"]]] = None
|
|
55
|
-
|
|
56
|
-
report_name: Optional[str] = None
|
|
57
|
-
|
|
58
|
-
report_url: Optional[str] = None
|
|
59
|
-
|
|
60
|
-
start_date: Optional[datetime] = None
|
|
61
|
-
|
|
62
|
-
status: Optional[Literal["PENDING", "COMPLETE", "FAILED", "EXPIRED"]] = None
|
|
63
|
-
|
|
64
|
-
updated_at: Optional[datetime] = None
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
class Meta(BaseModel):
|
|
68
|
-
page_number: Optional[int] = None
|
|
69
|
-
|
|
70
|
-
page_size: Optional[int] = None
|
|
71
|
-
|
|
72
|
-
total_pages: Optional[int] = None
|
|
73
|
-
|
|
74
|
-
total_results: Optional[int] = None
|
|
9
|
+
__all__ = ["MessagingListResponse"]
|
|
75
10
|
|
|
76
11
|
|
|
77
12
|
class MessagingListResponse(BaseModel):
|
|
78
|
-
data: Optional[List[
|
|
13
|
+
data: Optional[List[MdrDetailReportResponse]] = None
|
|
79
14
|
|
|
80
|
-
meta: Optional[
|
|
15
|
+
meta: Optional[BatchCsvPaginationMeta] = None
|