syllable-sdk 0.44.20__py3-none-any.whl → 0.45.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.
Files changed (214) hide show
  1. syllable_sdk/_version.py +3 -3
  2. syllable_sdk/basesdk.py +20 -6
  3. syllable_sdk/models/__init__.py +5 -0
  4. syllable_sdk/models/agent_listop.py +35 -36
  5. syllable_sdk/models/agentcreate.py +38 -39
  6. syllable_sdk/models/agentresponse.py +49 -50
  7. syllable_sdk/models/agentupdate.py +38 -39
  8. syllable_sdk/models/available_targetsop.py +35 -36
  9. syllable_sdk/models/availabletarget.py +1 -17
  10. syllable_sdk/models/batchdetails.py +38 -39
  11. syllable_sdk/models/body_directory_member_bulk_load.py +18 -1
  12. syllable_sdk/models/body_insights_folder_upload_file.py +34 -1
  13. syllable_sdk/models/body_organizations_create.py +30 -19
  14. syllable_sdk/models/body_organizations_delete.py +14 -19
  15. syllable_sdk/models/body_organizations_update.py +34 -30
  16. syllable_sdk/models/body_outbound_batch_upload.py +34 -1
  17. syllable_sdk/models/body_pronunciations_upload_csv.py +18 -1
  18. syllable_sdk/models/bridgephrasesconfig.py +20 -1
  19. syllable_sdk/models/callaction.py +14 -19
  20. syllable_sdk/models/celexpression.py +18 -1
  21. syllable_sdk/models/channel.py +14 -19
  22. syllable_sdk/models/channel_targets_listop.py +35 -36
  23. syllable_sdk/models/channelconfigview.py +20 -19
  24. syllable_sdk/models/channels_listop.py +35 -36
  25. syllable_sdk/models/channeltargetcreaterequest.py +14 -19
  26. syllable_sdk/models/channeltargetresponse.py +14 -19
  27. syllable_sdk/models/channeltargetupdaterequest.py +14 -19
  28. syllable_sdk/models/communicationbatch.py +36 -37
  29. syllable_sdk/models/communicationbatchinput.py +14 -19
  30. syllable_sdk/models/communicationbatchupdate.py +14 -19
  31. syllable_sdk/models/communicationrequestresult.py +37 -38
  32. syllable_sdk/models/conditionaltext.py +14 -19
  33. syllable_sdk/models/conditionalvalue.py +14 -19
  34. syllable_sdk/models/context.py +14 -19
  35. syllable_sdk/models/contexttaskmetadata.py +14 -19
  36. syllable_sdk/models/contexttoolinfo.py +14 -19
  37. syllable_sdk/models/conversation.py +44 -45
  38. syllable_sdk/models/conversations_listop.py +35 -36
  39. syllable_sdk/models/custom_messages_listop.py +35 -36
  40. syllable_sdk/models/custommessagecreaterequest.py +14 -19
  41. syllable_sdk/models/custommessageresponse.py +14 -19
  42. syllable_sdk/models/custommessagerule.py +18 -19
  43. syllable_sdk/models/custommessageupdaterequest.py +14 -19
  44. syllable_sdk/models/daotoolresponse.py +18 -29
  45. syllable_sdk/models/data_sources_listop.py +35 -36
  46. syllable_sdk/models/datasourcecreaterequest.py +14 -19
  47. syllable_sdk/models/datasourcedetailresponse.py +18 -24
  48. syllable_sdk/models/datasourcemetadataresponse.py +18 -24
  49. syllable_sdk/models/datasourceupdaterequest.py +16 -19
  50. syllable_sdk/models/dialogtoolcall.py +1 -17
  51. syllable_sdk/models/dictionarymetadata.py +18 -1
  52. syllable_sdk/models/directory_member_createop.py +18 -1
  53. syllable_sdk/models/directory_member_downloadop.py +18 -1
  54. syllable_sdk/models/directory_member_get_by_idop.py +18 -1
  55. syllable_sdk/models/directory_member_listop.py +36 -37
  56. syllable_sdk/models/directory_member_test_extensionop.py +13 -18
  57. syllable_sdk/models/directory_member_updateop.py +18 -1
  58. syllable_sdk/models/directoryextension.py +14 -19
  59. syllable_sdk/models/directoryextensionnumber.py +14 -19
  60. syllable_sdk/models/directorymember.py +14 -19
  61. syllable_sdk/models/directorymembercreate.py +14 -19
  62. syllable_sdk/models/directorymembertestresponse.py +14 -19
  63. syllable_sdk/models/directorymemberupdate.py +14 -19
  64. syllable_sdk/models/emailconfigurations.py +19 -0
  65. syllable_sdk/models/event.py +38 -39
  66. syllable_sdk/models/events_listop.py +35 -36
  67. syllable_sdk/models/eventtask.py +16 -28
  68. syllable_sdk/models/eventtaskevents.py +14 -19
  69. syllable_sdk/models/expressiontask.py +30 -39
  70. syllable_sdk/models/expressiontaskevents.py +14 -19
  71. syllable_sdk/models/folderdetails.py +14 -19
  72. syllable_sdk/models/get_bridge_phrases_configop.py +14 -19
  73. syllable_sdk/models/getvalueaction.py +16 -19
  74. syllable_sdk/models/incident_listop.py +35 -36
  75. syllable_sdk/models/incidentcreaterequest.py +18 -19
  76. syllable_sdk/models/incidentresponse.py +31 -32
  77. syllable_sdk/models/incidentupdaterequest.py +18 -19
  78. syllable_sdk/models/incrementaction.py +14 -19
  79. syllable_sdk/models/inputparameter.py +27 -36
  80. syllable_sdk/models/insight_tool_listop.py +35 -36
  81. syllable_sdk/models/insights_folder_listop.py +35 -36
  82. syllable_sdk/models/insights_folder_upload_fileop.py +33 -34
  83. syllable_sdk/models/insights_listop.py +35 -36
  84. syllable_sdk/models/insights_upload_list_filesop.py +35 -36
  85. syllable_sdk/models/insights_workflow_listop.py +35 -36
  86. syllable_sdk/models/insightsfolder.py +14 -19
  87. syllable_sdk/models/insightsfolderinput.py +14 -19
  88. syllable_sdk/models/insightsoutput.py +26 -32
  89. syllable_sdk/models/insightsuploadfile.py +37 -38
  90. syllable_sdk/models/insightsworkflowqueuesession.py +14 -19
  91. syllable_sdk/models/insighttooloutput.py +14 -19
  92. syllable_sdk/models/insighttooltestinput.py +14 -19
  93. syllable_sdk/models/insightworkflowcondition.py +34 -35
  94. syllable_sdk/models/insightworkflowinput.py +14 -19
  95. syllable_sdk/models/insightworkflowoutput.py +22 -25
  96. syllable_sdk/models/inspectlatencyresponse.py +18 -1
  97. syllable_sdk/models/internaltool.py +18 -1
  98. syllable_sdk/models/jmespathexpression.py +18 -1
  99. syllable_sdk/models/language_groups_listop.py +35 -36
  100. syllable_sdk/models/languageconfig.py +14 -19
  101. syllable_sdk/models/languagegroupcreaterequest.py +14 -19
  102. syllable_sdk/models/languagegroupresponse.py +14 -19
  103. syllable_sdk/models/languagegroupupdaterequest.py +14 -19
  104. syllable_sdk/models/languagesamplecreaterequest.py +16 -24
  105. syllable_sdk/models/latencyentry.py +14 -19
  106. syllable_sdk/models/listresponse_agentresponse_.py +14 -19
  107. syllable_sdk/models/listresponse_availabletarget_.py +14 -19
  108. syllable_sdk/models/listresponse_channel_.py +14 -19
  109. syllable_sdk/models/listresponse_channeltargetresponse_.py +14 -19
  110. syllable_sdk/models/listresponse_communicationbatch_.py +14 -19
  111. syllable_sdk/models/listresponse_conversation_.py +14 -19
  112. syllable_sdk/models/listresponse_custommessageresponse_.py +14 -19
  113. syllable_sdk/models/listresponse_dashboardresponse_.py +14 -19
  114. syllable_sdk/models/listresponse_datasourcemetadataresponse_.py +14 -19
  115. syllable_sdk/models/listresponse_directorymember_.py +14 -19
  116. syllable_sdk/models/listresponse_event_.py +14 -19
  117. syllable_sdk/models/listresponse_incidentresponse_.py +14 -19
  118. syllable_sdk/models/listresponse_insightsfolder_.py +14 -19
  119. syllable_sdk/models/listresponse_insightsoutput_.py +14 -19
  120. syllable_sdk/models/listresponse_insightsuploadfile_.py +14 -19
  121. syllable_sdk/models/listresponse_insighttooloutput_.py +14 -19
  122. syllable_sdk/models/listresponse_insightworkflowoutput_.py +14 -19
  123. syllable_sdk/models/listresponse_languagegroupresponse_.py +14 -19
  124. syllable_sdk/models/listresponse_outboundcampaign_.py +14 -19
  125. syllable_sdk/models/listresponse_promptresponse_.py +14 -19
  126. syllable_sdk/models/listresponse_roleresponse_.py +14 -19
  127. syllable_sdk/models/listresponse_serviceresponse_.py +14 -19
  128. syllable_sdk/models/listresponse_session_.py +14 -19
  129. syllable_sdk/models/listresponse_sessionlabel_.py +14 -19
  130. syllable_sdk/models/listresponse_toolresponse_.py +14 -19
  131. syllable_sdk/models/listresponse_userresponse_.py +14 -19
  132. syllable_sdk/models/listresponse_voicegroupresponse_.py +14 -19
  133. syllable_sdk/models/loadtoolfromfiletask.py +16 -27
  134. syllable_sdk/models/nextstep.py +14 -19
  135. syllable_sdk/models/organizationchannelconfig.py +24 -29
  136. syllable_sdk/models/organizationchannelcreaterequest.py +14 -19
  137. syllable_sdk/models/organizationchannelupdaterequest.py +14 -19
  138. syllable_sdk/models/organizationresponse.py +32 -33
  139. syllable_sdk/models/outbound_batch_listop.py +35 -36
  140. syllable_sdk/models/outbound_batch_resultsop.py +13 -18
  141. syllable_sdk/models/outbound_batch_uploadop.py +18 -1
  142. syllable_sdk/models/outbound_campaign_listop.py +35 -36
  143. syllable_sdk/models/outboundcampaign.py +47 -48
  144. syllable_sdk/models/outboundcampaigninput.py +43 -44
  145. syllable_sdk/models/permissionresponse.py +14 -19
  146. syllable_sdk/models/post_list_dashboardop.py +35 -36
  147. syllable_sdk/models/promptcreaterequest.py +26 -32
  148. syllable_sdk/models/prompthistory.py +24 -30
  149. syllable_sdk/models/promptllmconfig.py +16 -26
  150. syllable_sdk/models/promptresponse.py +41 -42
  151. syllable_sdk/models/prompts_listop.py +35 -36
  152. syllable_sdk/models/promptupdaterequest.py +26 -32
  153. syllable_sdk/models/pronunciationoverride.py +28 -1
  154. syllable_sdk/models/pronunciationoverridesdictionary.py +18 -1
  155. syllable_sdk/models/pronunciationscsvuploadresponse.py +18 -1
  156. syllable_sdk/models/rolecreaterequest.py +14 -19
  157. syllable_sdk/models/roleresponse.py +14 -19
  158. syllable_sdk/models/roles_deleteop.py +13 -18
  159. syllable_sdk/models/roles_listop.py +35 -36
  160. syllable_sdk/models/roleupdaterequest.py +14 -19
  161. syllable_sdk/models/saveaction.py +14 -19
  162. syllable_sdk/models/sayaction.py +14 -19
  163. syllable_sdk/models/security.py +18 -1
  164. syllable_sdk/models/service_listop.py +35 -36
  165. syllable_sdk/models/servicecreaterequest.py +14 -19
  166. syllable_sdk/models/serviceresponse.py +14 -19
  167. syllable_sdk/models/serviceupdaterequest.py +14 -19
  168. syllable_sdk/models/session.py +60 -61
  169. syllable_sdk/models/session_labels_listop.py +35 -36
  170. syllable_sdk/models/sessionaction.py +18 -19
  171. syllable_sdk/models/sessionlabel.py +14 -19
  172. syllable_sdk/models/sessionlabelcreate.py +14 -19
  173. syllable_sdk/models/sessionrecordingresponse.py +14 -19
  174. syllable_sdk/models/sessions_listop.py +35 -36
  175. syllable_sdk/models/sessionsummaryresponse.py +14 -19
  176. syllable_sdk/models/sessiontext.py +14 -19
  177. syllable_sdk/models/setvalueaction.py +14 -19
  178. syllable_sdk/models/statictoolparameter.py +14 -19
  179. syllable_sdk/models/step.py +18 -1
  180. syllable_sdk/models/stepeventactions.py +14 -19
  181. syllable_sdk/models/stepstask.py +25 -28
  182. syllable_sdk/models/steptools.py +14 -19
  183. syllable_sdk/models/summaryentry.py +14 -19
  184. syllable_sdk/models/supportedllm.py +14 -19
  185. syllable_sdk/models/takeoutstatusresponse.py +14 -19
  186. syllable_sdk/models/telephonyconfigurations.py +38 -39
  187. syllable_sdk/models/testmessage.py +16 -19
  188. syllable_sdk/models/testmessageresponse.py +14 -19
  189. syllable_sdk/models/tool_listop.py +35 -36
  190. syllable_sdk/models/tooldefinition.py +34 -35
  191. syllable_sdk/models/tooldetailresponse.py +18 -29
  192. syllable_sdk/models/tooloptions.py +18 -1
  193. syllable_sdk/models/toolparametertransform.py +14 -19
  194. syllable_sdk/models/toolparametertransformcondition.py +14 -19
  195. syllable_sdk/models/toolresponse.py +18 -29
  196. syllable_sdk/models/toolupdaterequest.py +14 -19
  197. syllable_sdk/models/twiliochannelconfigupdate.py +14 -19
  198. syllable_sdk/models/twiliochannelupdaterequest.py +14 -19
  199. syllable_sdk/models/update_bridge_phrases_configop.py +13 -18
  200. syllable_sdk/models/usercreaterequest.py +14 -19
  201. syllable_sdk/models/userresponse.py +30 -31
  202. syllable_sdk/models/users_listop.py +35 -36
  203. syllable_sdk/models/users_send_emailop.py +18 -1
  204. syllable_sdk/models/userupdaterequest.py +14 -19
  205. syllable_sdk/models/variable.py +38 -39
  206. syllable_sdk/models/voice_groups_listop.py +35 -36
  207. syllable_sdk/models/voicegroupcreaterequest.py +14 -19
  208. syllable_sdk/models/voicegroupresponse.py +14 -19
  209. syllable_sdk/models/voicegroupupdaterequest.py +14 -19
  210. syllable_sdk/models/voicesamplecreaterequest.py +16 -24
  211. syllable_sdk/utils/__init__.py +10 -1
  212. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.45.0.dist-info}/METADATA +3 -3
  213. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.45.0.dist-info}/RECORD +214 -213
  214. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.45.0.dist-info}/WHEEL +0 -0
@@ -94,47 +94,46 @@ class ChannelTargetsListRequest(BaseModel):
94
94
 
95
95
  @model_serializer(mode="wrap")
96
96
  def serialize_model(self, handler):
97
- optional_fields = [
98
- "page",
99
- "limit",
100
- "search_fields",
101
- "search_field_values",
102
- "order_by",
103
- "order_by_direction",
104
- "fields",
105
- "start_datetime",
106
- "end_datetime",
107
- ]
108
- nullable_fields = [
109
- "page",
110
- "order_by",
111
- "order_by_direction",
112
- "fields",
113
- "start_datetime",
114
- "end_datetime",
115
- ]
116
- null_default_fields = []
117
-
97
+ optional_fields = set(
98
+ [
99
+ "page",
100
+ "limit",
101
+ "search_fields",
102
+ "search_field_values",
103
+ "order_by",
104
+ "order_by_direction",
105
+ "fields",
106
+ "start_datetime",
107
+ "end_datetime",
108
+ ]
109
+ )
110
+ nullable_fields = set(
111
+ [
112
+ "page",
113
+ "order_by",
114
+ "order_by_direction",
115
+ "fields",
116
+ "start_datetime",
117
+ "end_datetime",
118
+ ]
119
+ )
118
120
  serialized = handler(self)
119
-
120
121
  m = {}
121
122
 
122
123
  for n, f in type(self).model_fields.items():
123
124
  k = f.alias or n
124
125
  val = serialized.get(k)
125
- serialized.pop(k, None)
126
-
127
- optional_nullable = k in optional_fields and k in nullable_fields
128
- is_set = (
129
- self.__pydantic_fields_set__.intersection({n})
130
- or k in null_default_fields
131
- ) # pylint: disable=no-member
132
-
133
- if val is not None and val != UNSET_SENTINEL:
134
- m[k] = val
135
- elif val != UNSET_SENTINEL and (
136
- not k in optional_fields or (optional_nullable and is_set)
137
- ):
138
- m[k] = val
126
+ is_nullable_and_explicitly_set = (
127
+ k in nullable_fields
128
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
129
+ )
130
+
131
+ if val != UNSET_SENTINEL:
132
+ if (
133
+ val is not None
134
+ or k not in optional_fields
135
+ or is_nullable_and_explicitly_set
136
+ ):
137
+ m[k] = val
139
138
 
140
139
  return m
@@ -1,6 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .emailconfigurations import EmailConfigurations, EmailConfigurationsTypedDict
4
5
  from .telephonyconfigurations import (
5
6
  TelephonyConfigurations,
6
7
  TelephonyConfigurationsTypedDict,
@@ -19,38 +20,38 @@ from typing_extensions import NotRequired, TypedDict
19
20
  class ChannelConfigViewTypedDict(TypedDict):
20
21
  telephony: NotRequired[Nullable[TelephonyConfigurationsTypedDict]]
21
22
  r"""Telephony configurations to be applied to targets belonging to the channel. Only applies to voice supported channels."""
23
+ email: NotRequired[Nullable[EmailConfigurationsTypedDict]]
24
+ r"""Email configurations for email channels. Only applies to email channels."""
22
25
 
23
26
 
24
27
  class ChannelConfigView(BaseModel):
25
28
  telephony: OptionalNullable[TelephonyConfigurations] = UNSET
26
29
  r"""Telephony configurations to be applied to targets belonging to the channel. Only applies to voice supported channels."""
27
30
 
31
+ email: OptionalNullable[EmailConfigurations] = UNSET
32
+ r"""Email configurations for email channels. Only applies to email channels."""
33
+
28
34
  @model_serializer(mode="wrap")
29
35
  def serialize_model(self, handler):
30
- optional_fields = ["telephony"]
31
- nullable_fields = ["telephony"]
32
- null_default_fields = []
33
-
36
+ optional_fields = set(["telephony", "email"])
37
+ nullable_fields = set(["telephony", "email"])
34
38
  serialized = handler(self)
35
-
36
39
  m = {}
37
40
 
38
41
  for n, f in type(self).model_fields.items():
39
42
  k = f.alias or n
40
43
  val = serialized.get(k)
41
- serialized.pop(k, None)
42
-
43
- optional_nullable = k in optional_fields and k in nullable_fields
44
- is_set = (
45
- self.__pydantic_fields_set__.intersection({n})
46
- or k in null_default_fields
47
- ) # pylint: disable=no-member
48
-
49
- if val is not None and val != UNSET_SENTINEL:
50
- m[k] = val
51
- elif val != UNSET_SENTINEL and (
52
- not k in optional_fields or (optional_nullable and is_set)
53
- ):
54
- m[k] = val
44
+ is_nullable_and_explicitly_set = (
45
+ k in nullable_fields
46
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
47
+ )
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if (
51
+ val is not None
52
+ or k not in optional_fields
53
+ or is_nullable_and_explicitly_set
54
+ ):
55
+ m[k] = val
55
56
 
56
57
  return m
@@ -94,47 +94,46 @@ class ChannelsListRequest(BaseModel):
94
94
 
95
95
  @model_serializer(mode="wrap")
96
96
  def serialize_model(self, handler):
97
- optional_fields = [
98
- "page",
99
- "limit",
100
- "search_fields",
101
- "search_field_values",
102
- "order_by",
103
- "order_by_direction",
104
- "fields",
105
- "start_datetime",
106
- "end_datetime",
107
- ]
108
- nullable_fields = [
109
- "page",
110
- "order_by",
111
- "order_by_direction",
112
- "fields",
113
- "start_datetime",
114
- "end_datetime",
115
- ]
116
- null_default_fields = []
117
-
97
+ optional_fields = set(
98
+ [
99
+ "page",
100
+ "limit",
101
+ "search_fields",
102
+ "search_field_values",
103
+ "order_by",
104
+ "order_by_direction",
105
+ "fields",
106
+ "start_datetime",
107
+ "end_datetime",
108
+ ]
109
+ )
110
+ nullable_fields = set(
111
+ [
112
+ "page",
113
+ "order_by",
114
+ "order_by_direction",
115
+ "fields",
116
+ "start_datetime",
117
+ "end_datetime",
118
+ ]
119
+ )
118
120
  serialized = handler(self)
119
-
120
121
  m = {}
121
122
 
122
123
  for n, f in type(self).model_fields.items():
123
124
  k = f.alias or n
124
125
  val = serialized.get(k)
125
- serialized.pop(k, None)
126
-
127
- optional_nullable = k in optional_fields and k in nullable_fields
128
- is_set = (
129
- self.__pydantic_fields_set__.intersection({n})
130
- or k in null_default_fields
131
- ) # pylint: disable=no-member
132
-
133
- if val is not None and val != UNSET_SENTINEL:
134
- m[k] = val
135
- elif val != UNSET_SENTINEL and (
136
- not k in optional_fields or (optional_nullable and is_set)
137
- ):
138
- m[k] = val
126
+ is_nullable_and_explicitly_set = (
127
+ k in nullable_fields
128
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
129
+ )
130
+
131
+ if val != UNSET_SENTINEL:
132
+ if (
133
+ val is not None
134
+ or k not in optional_fields
135
+ or is_nullable_and_explicitly_set
136
+ ):
137
+ m[k] = val
139
138
 
140
139
  return m
@@ -54,30 +54,25 @@ class ChannelTargetCreateRequest(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["fallback_target", "is_test"]
58
- nullable_fields = ["fallback_target"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["fallback_target", "is_test"])
58
+ nullable_fields = set(["fallback_target"])
61
59
  serialized = handler(self)
62
-
63
60
  m = {}
64
61
 
65
62
  for n, f in type(self).model_fields.items():
66
63
  k = f.alias or n
67
64
  val = serialized.get(k)
68
- serialized.pop(k, None)
69
-
70
- optional_nullable = k in optional_fields and k in nullable_fields
71
- is_set = (
72
- self.__pydantic_fields_set__.intersection({n})
73
- or k in null_default_fields
74
- ) # pylint: disable=no-member
75
-
76
- if val is not None and val != UNSET_SENTINEL:
77
- m[k] = val
78
- elif val != UNSET_SENTINEL and (
79
- not k in optional_fields or (optional_nullable and is_set)
80
- ):
81
- m[k] = val
65
+ is_nullable_and_explicitly_set = (
66
+ k in nullable_fields
67
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
68
+ )
69
+
70
+ if val != UNSET_SENTINEL:
71
+ if (
72
+ val is not None
73
+ or k not in optional_fields
74
+ or is_nullable_and_explicitly_set
75
+ ):
76
+ m[k] = val
82
77
 
83
78
  return m
@@ -91,30 +91,25 @@ class ChannelTargetResponse(BaseModel):
91
91
 
92
92
  @model_serializer(mode="wrap")
93
93
  def serialize_model(self, handler):
94
- optional_fields = ["fallback_target", "is_test", "agent"]
95
- nullable_fields = ["fallback_target", "agent"]
96
- null_default_fields = []
97
-
94
+ optional_fields = set(["fallback_target", "is_test", "agent"])
95
+ nullable_fields = set(["fallback_target", "agent"])
98
96
  serialized = handler(self)
99
-
100
97
  m = {}
101
98
 
102
99
  for n, f in type(self).model_fields.items():
103
100
  k = f.alias or n
104
101
  val = serialized.get(k)
105
- serialized.pop(k, None)
106
-
107
- optional_nullable = k in optional_fields and k in nullable_fields
108
- is_set = (
109
- self.__pydantic_fields_set__.intersection({n})
110
- or k in null_default_fields
111
- ) # pylint: disable=no-member
112
-
113
- if val is not None and val != UNSET_SENTINEL:
114
- m[k] = val
115
- elif val != UNSET_SENTINEL and (
116
- not k in optional_fields or (optional_nullable and is_set)
117
- ):
118
- m[k] = val
102
+ is_nullable_and_explicitly_set = (
103
+ k in nullable_fields
104
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
105
+ )
106
+
107
+ if val != UNSET_SENTINEL:
108
+ if (
109
+ val is not None
110
+ or k not in optional_fields
111
+ or is_nullable_and_explicitly_set
112
+ ):
113
+ m[k] = val
119
114
 
120
115
  return m
@@ -59,30 +59,25 @@ class ChannelTargetUpdateRequest(BaseModel):
59
59
 
60
60
  @model_serializer(mode="wrap")
61
61
  def serialize_model(self, handler):
62
- optional_fields = ["fallback_target", "is_test"]
63
- nullable_fields = ["fallback_target"]
64
- null_default_fields = []
65
-
62
+ optional_fields = set(["fallback_target", "is_test"])
63
+ nullable_fields = set(["fallback_target"])
66
64
  serialized = handler(self)
67
-
68
65
  m = {}
69
66
 
70
67
  for n, f in type(self).model_fields.items():
71
68
  k = f.alias or n
72
69
  val = serialized.get(k)
73
- serialized.pop(k, None)
74
-
75
- optional_nullable = k in optional_fields and k in nullable_fields
76
- is_set = (
77
- self.__pydantic_fields_set__.intersection({n})
78
- or k in null_default_fields
79
- ) # pylint: disable=no-member
80
-
81
- if val is not None and val != UNSET_SENTINEL:
82
- m[k] = val
83
- elif val != UNSET_SENTINEL and (
84
- not k in optional_fields or (optional_nullable and is_set)
85
- ):
86
- m[k] = val
70
+ is_nullable_and_explicitly_set = (
71
+ k in nullable_fields
72
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
73
+ )
74
+
75
+ if val != UNSET_SENTINEL:
76
+ if (
77
+ val is not None
78
+ or k not in optional_fields
79
+ or is_nullable_and_explicitly_set
80
+ ):
81
+ m[k] = val
87
82
 
88
83
  return m
@@ -81,48 +81,47 @@ class CommunicationBatch(BaseModel):
81
81
 
82
82
  @model_serializer(mode="wrap")
83
83
  def serialize_model(self, handler):
84
- optional_fields = [
85
- "expires_on",
86
- "paused",
87
- "status",
88
- "upload_filename",
89
- "created_at",
90
- "deleted_at",
91
- "deleted_reason",
92
- "last_updated_at",
93
- "error_message",
94
- ]
95
- nullable_fields = [
96
- "expires_on",
97
- "paused",
98
- "upload_filename",
99
- "deleted_at",
100
- "deleted_reason",
101
- "last_updated_at",
102
- "error_message",
103
- ]
104
- null_default_fields = []
105
-
84
+ optional_fields = set(
85
+ [
86
+ "expires_on",
87
+ "paused",
88
+ "status",
89
+ "upload_filename",
90
+ "created_at",
91
+ "deleted_at",
92
+ "deleted_reason",
93
+ "last_updated_at",
94
+ "error_message",
95
+ ]
96
+ )
97
+ nullable_fields = set(
98
+ [
99
+ "expires_on",
100
+ "paused",
101
+ "upload_filename",
102
+ "deleted_at",
103
+ "deleted_reason",
104
+ "last_updated_at",
105
+ "error_message",
106
+ ]
107
+ )
106
108
  serialized = handler(self)
107
-
108
109
  m = {}
109
110
 
110
111
  for n, f in type(self).model_fields.items():
111
112
  k = f.alias or n
112
113
  val = serialized.get(k)
113
- serialized.pop(k, None)
114
-
115
- optional_nullable = k in optional_fields and k in nullable_fields
116
- is_set = (
117
- self.__pydantic_fields_set__.intersection({n})
118
- or k in null_default_fields
119
- ) # pylint: disable=no-member
120
-
121
- if val is not None and val != UNSET_SENTINEL:
122
- m[k] = val
123
- elif val != UNSET_SENTINEL and (
124
- not k in optional_fields or (optional_nullable and is_set)
125
- ):
126
- m[k] = val
114
+ is_nullable_and_explicitly_set = (
115
+ k in nullable_fields
116
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
117
+ )
118
+
119
+ if val != UNSET_SENTINEL:
120
+ if (
121
+ val is not None
122
+ or k not in optional_fields
123
+ or is_nullable_and_explicitly_set
124
+ ):
125
+ m[k] = val
127
126
 
128
127
  return m
@@ -39,30 +39,25 @@ class CommunicationBatchInput(BaseModel):
39
39
 
40
40
  @model_serializer(mode="wrap")
41
41
  def serialize_model(self, handler):
42
- optional_fields = ["expires_on", "paused"]
43
- nullable_fields = ["expires_on", "paused"]
44
- null_default_fields = []
45
-
42
+ optional_fields = set(["expires_on", "paused"])
43
+ nullable_fields = set(["expires_on", "paused"])
46
44
  serialized = handler(self)
47
-
48
45
  m = {}
49
46
 
50
47
  for n, f in type(self).model_fields.items():
51
48
  k = f.alias or n
52
49
  val = serialized.get(k)
53
- serialized.pop(k, None)
54
-
55
- optional_nullable = k in optional_fields and k in nullable_fields
56
- is_set = (
57
- self.__pydantic_fields_set__.intersection({n})
58
- or k in null_default_fields
59
- ) # pylint: disable=no-member
60
-
61
- if val is not None and val != UNSET_SENTINEL:
62
- m[k] = val
63
- elif val != UNSET_SENTINEL and (
64
- not k in optional_fields or (optional_nullable and is_set)
65
- ):
66
- m[k] = val
50
+ is_nullable_and_explicitly_set = (
51
+ k in nullable_fields
52
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
53
+ )
54
+
55
+ if val != UNSET_SENTINEL:
56
+ if (
57
+ val is not None
58
+ or k not in optional_fields
59
+ or is_nullable_and_explicitly_set
60
+ ):
61
+ m[k] = val
67
62
 
68
63
  return m
@@ -29,30 +29,25 @@ class CommunicationBatchUpdate(BaseModel):
29
29
 
30
30
  @model_serializer(mode="wrap")
31
31
  def serialize_model(self, handler):
32
- optional_fields = ["paused", "expires_on"]
33
- nullable_fields = ["paused", "expires_on"]
34
- null_default_fields = []
35
-
32
+ optional_fields = set(["paused", "expires_on"])
33
+ nullable_fields = set(["paused", "expires_on"])
36
34
  serialized = handler(self)
37
-
38
35
  m = {}
39
36
 
40
37
  for n, f in type(self).model_fields.items():
41
38
  k = f.alias or n
42
39
  val = serialized.get(k)
43
- serialized.pop(k, None)
44
-
45
- optional_nullable = k in optional_fields and k in nullable_fields
46
- is_set = (
47
- self.__pydantic_fields_set__.intersection({n})
48
- or k in null_default_fields
49
- ) # pylint: disable=no-member
50
-
51
- if val is not None and val != UNSET_SENTINEL:
52
- m[k] = val
53
- elif val != UNSET_SENTINEL and (
54
- not k in optional_fields or (optional_nullable and is_set)
55
- ):
56
- m[k] = val
40
+ is_nullable_and_explicitly_set = (
41
+ k in nullable_fields
42
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
43
+ )
44
+
45
+ if val != UNSET_SENTINEL:
46
+ if (
47
+ val is not None
48
+ or k not in optional_fields
49
+ or is_nullable_and_explicitly_set
50
+ ):
51
+ m[k] = val
57
52
 
58
53
  return m
@@ -94,49 +94,48 @@ class CommunicationRequestResult(BaseModel):
94
94
 
95
95
  @model_serializer(mode="wrap")
96
96
  def serialize_model(self, handler):
97
- optional_fields = [
98
- "channel_manager_sid",
99
- "created_at",
100
- "sent_at",
101
- "attempt_count",
102
- "session_id",
103
- "conversation_id",
104
- "request_status",
105
- "channel_manager_status",
106
- "insights_status",
107
- "insights",
108
- ]
109
- nullable_fields = [
110
- "channel_manager_sid",
111
- "sent_at",
112
- "session_id",
113
- "conversation_id",
114
- "channel_manager_status",
115
- "insights_status",
116
- "insights",
117
- ]
118
- null_default_fields = []
119
-
97
+ optional_fields = set(
98
+ [
99
+ "channel_manager_sid",
100
+ "created_at",
101
+ "sent_at",
102
+ "attempt_count",
103
+ "session_id",
104
+ "conversation_id",
105
+ "request_status",
106
+ "channel_manager_status",
107
+ "insights_status",
108
+ "insights",
109
+ ]
110
+ )
111
+ nullable_fields = set(
112
+ [
113
+ "channel_manager_sid",
114
+ "sent_at",
115
+ "session_id",
116
+ "conversation_id",
117
+ "channel_manager_status",
118
+ "insights_status",
119
+ "insights",
120
+ ]
121
+ )
120
122
  serialized = handler(self)
121
-
122
123
  m = {}
123
124
 
124
125
  for n, f in type(self).model_fields.items():
125
126
  k = f.alias or n
126
127
  val = serialized.get(k)
127
- serialized.pop(k, None)
128
-
129
- optional_nullable = k in optional_fields and k in nullable_fields
130
- is_set = (
131
- self.__pydantic_fields_set__.intersection({n})
132
- or k in null_default_fields
133
- ) # pylint: disable=no-member
134
-
135
- if val is not None and val != UNSET_SENTINEL:
136
- m[k] = val
137
- elif val != UNSET_SENTINEL and (
138
- not k in optional_fields or (optional_nullable and is_set)
139
- ):
140
- m[k] = val
128
+ is_nullable_and_explicitly_set = (
129
+ k in nullable_fields
130
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
131
+ )
132
+
133
+ if val != UNSET_SENTINEL:
134
+ if (
135
+ val is not None
136
+ or k not in optional_fields
137
+ or is_nullable_and_explicitly_set
138
+ ):
139
+ m[k] = val
141
140
 
142
141
  return m