syllable-sdk 0.44.17__py3-none-any.whl → 0.44.24__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 (217) 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 +13 -4
  212. syllable_sdk/utils/enums.py +60 -0
  213. syllable_sdk/utils/requestbodies.py +3 -3
  214. syllable_sdk/utils/serializers.py +0 -20
  215. {syllable_sdk-0.44.17.dist-info → syllable_sdk-0.44.24.dist-info}/METADATA +1 -1
  216. {syllable_sdk-0.44.17.dist-info → syllable_sdk-0.44.24.dist-info}/RECORD +217 -216
  217. {syllable_sdk-0.44.17.dist-info → syllable_sdk-0.44.24.dist-info}/WHEEL +0 -0
@@ -49,30 +49,25 @@ class StaticToolParameter(BaseModel):
49
49
 
50
50
  @model_serializer(mode="wrap")
51
51
  def serialize_model(self, handler):
52
- optional_fields = ["description", "default"]
53
- nullable_fields = ["description", "default"]
54
- null_default_fields = []
55
-
52
+ optional_fields = set(["description", "default"])
53
+ nullable_fields = set(["description", "default"])
56
54
  serialized = handler(self)
57
-
58
55
  m = {}
59
56
 
60
57
  for n, f in type(self).model_fields.items():
61
58
  k = f.alias or n
62
59
  val = serialized.get(k)
63
- serialized.pop(k, None)
64
-
65
- optional_nullable = k in optional_fields and k in nullable_fields
66
- is_set = (
67
- self.__pydantic_fields_set__.intersection({n})
68
- or k in null_default_fields
69
- ) # pylint: disable=no-member
70
-
71
- if val is not None and val != UNSET_SENTINEL:
72
- m[k] = val
73
- elif val != UNSET_SENTINEL and (
74
- not k in optional_fields or (optional_nullable and is_set)
75
- ):
76
- m[k] = val
60
+ is_nullable_and_explicitly_set = (
61
+ k in nullable_fields
62
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
63
+ )
64
+
65
+ if val != UNSET_SENTINEL:
66
+ if (
67
+ val is not None
68
+ or k not in optional_fields
69
+ or is_nullable_and_explicitly_set
70
+ ):
71
+ m[k] = val
77
72
 
78
73
  return m
@@ -6,7 +6,8 @@ from .inputparameter import InputParameter, InputParameterTypedDict
6
6
  from .nextstep import NextStep, NextStepTypedDict
7
7
  from .stepeventactions import StepEventActions, StepEventActionsTypedDict
8
8
  from .steptools import StepTools, StepToolsTypedDict
9
- from syllable_sdk.types import BaseModel
9
+ from pydantic import model_serializer
10
+ from syllable_sdk.types import BaseModel, UNSET_SENTINEL
10
11
  from typing import List, Optional, Union
11
12
  from typing_extensions import NotRequired, TypeAliasType, TypedDict
12
13
 
@@ -63,3 +64,19 @@ class Step(BaseModel):
63
64
 
64
65
  next: Optional[List[Next]] = None
65
66
  r"""The next steps to execute."""
67
+
68
+ @model_serializer(mode="wrap")
69
+ def serialize_model(self, handler):
70
+ optional_fields = set(["instructions", "tools", "inputs", "on", "next"])
71
+ serialized = handler(self)
72
+ m = {}
73
+
74
+ for n, f in type(self).model_fields.items():
75
+ k = f.alias or n
76
+ val = serialized.get(k)
77
+
78
+ if val != UNSET_SENTINEL:
79
+ if val is not None or k not in optional_fields:
80
+ m[k] = val
81
+
82
+ return m
@@ -144,30 +144,25 @@ class StepEventActions(BaseModel):
144
144
 
145
145
  @model_serializer(mode="wrap")
146
146
  def serialize_model(self, handler):
147
- optional_fields = ["start", "enter", "presubmit", "submit"]
148
- nullable_fields = ["start", "enter", "presubmit", "submit"]
149
- null_default_fields = []
150
-
147
+ optional_fields = set(["start", "enter", "presubmit", "submit"])
148
+ nullable_fields = set(["start", "enter", "presubmit", "submit"])
151
149
  serialized = handler(self)
152
-
153
150
  m = {}
154
151
 
155
152
  for n, f in type(self).model_fields.items():
156
153
  k = f.alias or n
157
154
  val = serialized.get(k)
158
- serialized.pop(k, None)
159
-
160
- optional_nullable = k in optional_fields and k in nullable_fields
161
- is_set = (
162
- self.__pydantic_fields_set__.intersection({n})
163
- or k in null_default_fields
164
- ) # pylint: disable=no-member
165
-
166
- if val is not None and val != UNSET_SENTINEL:
167
- m[k] = val
168
- elif val != UNSET_SENTINEL and (
169
- not k in optional_fields or (optional_nullable and is_set)
170
- ):
171
- m[k] = val
155
+ is_nullable_and_explicitly_set = (
156
+ k in nullable_fields
157
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
158
+ )
159
+
160
+ if val != UNSET_SENTINEL:
161
+ if (
162
+ val is not None
163
+ or k not in optional_fields
164
+ or is_nullable_and_explicitly_set
165
+ ):
166
+ m[k] = val
172
167
 
173
168
  return m
@@ -60,39 +60,36 @@ class StepsTask(BaseModel):
60
60
 
61
61
  @model_serializer(mode="wrap")
62
62
  def serialize_model(self, handler):
63
- optional_fields = [
64
- "id",
65
- "config",
66
- "variables",
67
- "metadata",
68
- "tool",
69
- "type",
70
- "version",
71
- "steps",
72
- ]
73
- nullable_fields = ["id", "config", "variables", "metadata", "tool"]
74
- null_default_fields = []
75
-
63
+ optional_fields = set(
64
+ [
65
+ "id",
66
+ "config",
67
+ "variables",
68
+ "metadata",
69
+ "tool",
70
+ "type",
71
+ "version",
72
+ "steps",
73
+ ]
74
+ )
75
+ nullable_fields = set(["id", "config", "variables", "metadata", "tool"])
76
76
  serialized = handler(self)
77
-
78
77
  m = {}
79
78
 
80
79
  for n, f in type(self).model_fields.items():
81
80
  k = f.alias or n
82
81
  val = serialized.get(k)
83
- serialized.pop(k, None)
84
-
85
- optional_nullable = k in optional_fields and k in nullable_fields
86
- is_set = (
87
- self.__pydantic_fields_set__.intersection({n})
88
- or k in null_default_fields
89
- ) # pylint: disable=no-member
90
-
91
- if val is not None and val != UNSET_SENTINEL:
92
- m[k] = val
93
- elif val != UNSET_SENTINEL and (
94
- not k in optional_fields or (optional_nullable and is_set)
95
- ):
96
- m[k] = val
82
+ is_nullable_and_explicitly_set = (
83
+ k in nullable_fields
84
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
85
+ )
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if (
89
+ val is not None
90
+ or k not in optional_fields
91
+ or is_nullable_and_explicitly_set
92
+ ):
93
+ m[k] = val
97
94
 
98
95
  return m
@@ -38,30 +38,25 @@ class StepTools(BaseModel):
38
38
 
39
39
  @model_serializer(mode="wrap")
40
40
  def serialize_model(self, handler):
41
- optional_fields = ["call", "allow", "allow_go_to_step"]
42
- nullable_fields = ["call", "allow", "allow_go_to_step"]
43
- null_default_fields = []
44
-
41
+ optional_fields = set(["call", "allow", "allow_go_to_step"])
42
+ nullable_fields = set(["call", "allow", "allow_go_to_step"])
45
43
  serialized = handler(self)
46
-
47
44
  m = {}
48
45
 
49
46
  for n, f in type(self).model_fields.items():
50
47
  k = f.alias or n
51
48
  val = serialized.get(k)
52
- serialized.pop(k, None)
53
-
54
- optional_nullable = k in optional_fields and k in nullable_fields
55
- is_set = (
56
- self.__pydantic_fields_set__.intersection({n})
57
- or k in null_default_fields
58
- ) # pylint: disable=no-member
59
-
60
- if val is not None and val != UNSET_SENTINEL:
61
- m[k] = val
62
- elif val != UNSET_SENTINEL and (
63
- not k in optional_fields or (optional_nullable and is_set)
64
- ):
65
- m[k] = val
49
+ is_nullable_and_explicitly_set = (
50
+ k in nullable_fields
51
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
52
+ )
53
+
54
+ if val != UNSET_SENTINEL:
55
+ if (
56
+ val is not None
57
+ or k not in optional_fields
58
+ or is_nullable_and_explicitly_set
59
+ ):
60
+ m[k] = val
66
61
 
67
62
  return m
@@ -48,30 +48,25 @@ class SummaryEntry(BaseModel):
48
48
 
49
49
  @model_serializer(mode="wrap")
50
50
  def serialize_model(self, handler):
51
- optional_fields = ["sub_category"]
52
- nullable_fields = ["sub_category"]
53
- null_default_fields = []
54
-
51
+ optional_fields = set(["sub_category"])
52
+ nullable_fields = set(["sub_category"])
55
53
  serialized = handler(self)
56
-
57
54
  m = {}
58
55
 
59
56
  for n, f in type(self).model_fields.items():
60
57
  k = f.alias or n
61
58
  val = serialized.get(k)
62
- serialized.pop(k, None)
63
-
64
- optional_nullable = k in optional_fields and k in nullable_fields
65
- is_set = (
66
- self.__pydantic_fields_set__.intersection({n})
67
- or k in null_default_fields
68
- ) # pylint: disable=no-member
69
-
70
- if val is not None and val != UNSET_SENTINEL:
71
- m[k] = val
72
- elif val != UNSET_SENTINEL and (
73
- not k in optional_fields or (optional_nullable and is_set)
74
- ):
75
- m[k] = val
59
+ is_nullable_and_explicitly_set = (
60
+ k in nullable_fields
61
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
62
+ )
63
+
64
+ if val != UNSET_SENTINEL:
65
+ if (
66
+ val is not None
67
+ or k not in optional_fields
68
+ or is_nullable_and_explicitly_set
69
+ ):
70
+ m[k] = val
76
71
 
77
72
  return m
@@ -54,30 +54,25 @@ class SupportedLlm(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["provider", "model", "version", "api_version"]
58
- nullable_fields = ["version", "api_version"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["provider", "model", "version", "api_version"])
58
+ nullable_fields = set(["version", "api_version"])
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
@@ -35,30 +35,25 @@ class TakeoutStatusResponse(BaseModel):
35
35
 
36
36
  @model_serializer(mode="wrap")
37
37
  def serialize_model(self, handler):
38
- optional_fields = ["file_names"]
39
- nullable_fields = ["file_names"]
40
- null_default_fields = []
41
-
38
+ optional_fields = set(["file_names"])
39
+ nullable_fields = set(["file_names"])
42
40
  serialized = handler(self)
43
-
44
41
  m = {}
45
42
 
46
43
  for n, f in type(self).model_fields.items():
47
44
  k = f.alias or n
48
45
  val = serialized.get(k)
49
- serialized.pop(k, None)
50
-
51
- optional_nullable = k in optional_fields and k in nullable_fields
52
- is_set = (
53
- self.__pydantic_fields_set__.intersection({n})
54
- or k in null_default_fields
55
- ) # pylint: disable=no-member
56
-
57
- if val is not None and val != UNSET_SENTINEL:
58
- m[k] = val
59
- elif val != UNSET_SENTINEL and (
60
- not k in optional_fields or (optional_nullable and is_set)
61
- ):
62
- m[k] = val
46
+ is_nullable_and_explicitly_set = (
47
+ k in nullable_fields
48
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
49
+ )
50
+
51
+ if val != UNSET_SENTINEL:
52
+ if (
53
+ val is not None
54
+ or k not in optional_fields
55
+ or is_nullable_and_explicitly_set
56
+ ):
57
+ m[k] = val
63
58
 
64
59
  return m
@@ -63,50 +63,49 @@ class TelephonyConfigurations(BaseModel):
63
63
 
64
64
  @model_serializer(mode="wrap")
65
65
  def serialize_model(self, handler):
66
- optional_fields = [
67
- "pre_input_timeout",
68
- "post_speech_input_timeout",
69
- "post_dtmf_input_timeout",
70
- "overall_input_timeout",
71
- "output_padding",
72
- "interruptibility",
73
- "passive_speech_input_enabled",
74
- "passive_input_start",
75
- "async_enabled",
76
- ]
77
- nullable_fields = [
78
- "pre_input_timeout",
79
- "post_speech_input_timeout",
80
- "post_dtmf_input_timeout",
81
- "overall_input_timeout",
82
- "output_padding",
83
- "interruptibility",
84
- "passive_speech_input_enabled",
85
- "passive_input_start",
86
- "async_enabled",
87
- ]
88
- null_default_fields = []
89
-
66
+ optional_fields = set(
67
+ [
68
+ "pre_input_timeout",
69
+ "post_speech_input_timeout",
70
+ "post_dtmf_input_timeout",
71
+ "overall_input_timeout",
72
+ "output_padding",
73
+ "interruptibility",
74
+ "passive_speech_input_enabled",
75
+ "passive_input_start",
76
+ "async_enabled",
77
+ ]
78
+ )
79
+ nullable_fields = set(
80
+ [
81
+ "pre_input_timeout",
82
+ "post_speech_input_timeout",
83
+ "post_dtmf_input_timeout",
84
+ "overall_input_timeout",
85
+ "output_padding",
86
+ "interruptibility",
87
+ "passive_speech_input_enabled",
88
+ "passive_input_start",
89
+ "async_enabled",
90
+ ]
91
+ )
90
92
  serialized = handler(self)
91
-
92
93
  m = {}
93
94
 
94
95
  for n, f in type(self).model_fields.items():
95
96
  k = f.alias or n
96
97
  val = serialized.get(k)
97
- serialized.pop(k, None)
98
-
99
- optional_nullable = k in optional_fields and k in nullable_fields
100
- is_set = (
101
- self.__pydantic_fields_set__.intersection({n})
102
- or k in null_default_fields
103
- ) # pylint: disable=no-member
104
-
105
- if val is not None and val != UNSET_SENTINEL:
106
- m[k] = val
107
- elif val != UNSET_SENTINEL and (
108
- not k in optional_fields or (optional_nullable and is_set)
109
- ):
110
- m[k] = val
98
+ is_nullable_and_explicitly_set = (
99
+ k in nullable_fields
100
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
101
+ )
102
+
103
+ if val != UNSET_SENTINEL:
104
+ if (
105
+ val is not None
106
+ or k not in optional_fields
107
+ or is_nullable_and_explicitly_set
108
+ ):
109
+ m[k] = val
111
110
 
112
111
  return m
@@ -73,30 +73,27 @@ class TestMessage(BaseModel):
73
73
 
74
74
  @model_serializer(mode="wrap")
75
75
  def serialize_model(self, handler):
76
- optional_fields = ["text", "org_name", "override_timestamp", "session_start"]
77
- nullable_fields = ["text", "org_name", "override_timestamp"]
78
- null_default_fields = []
79
-
76
+ optional_fields = set(
77
+ ["text", "org_name", "override_timestamp", "session_start"]
78
+ )
79
+ nullable_fields = set(["text", "org_name", "override_timestamp"])
80
80
  serialized = handler(self)
81
-
82
81
  m = {}
83
82
 
84
83
  for n, f in type(self).model_fields.items():
85
84
  k = f.alias or n
86
85
  val = serialized.get(k)
87
- serialized.pop(k, None)
88
-
89
- optional_nullable = k in optional_fields and k in nullable_fields
90
- is_set = (
91
- self.__pydantic_fields_set__.intersection({n})
92
- or k in null_default_fields
93
- ) # pylint: disable=no-member
94
-
95
- if val is not None and val != UNSET_SENTINEL:
96
- m[k] = val
97
- elif val != UNSET_SENTINEL and (
98
- not k in optional_fields or (optional_nullable and is_set)
99
- ):
100
- m[k] = val
86
+ is_nullable_and_explicitly_set = (
87
+ k in nullable_fields
88
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
89
+ )
90
+
91
+ if val != UNSET_SENTINEL:
92
+ if (
93
+ val is not None
94
+ or k not in optional_fields
95
+ or is_nullable_and_explicitly_set
96
+ ):
97
+ m[k] = val
101
98
 
102
99
  return m
@@ -46,30 +46,25 @@ class TestMessageResponse(BaseModel):
46
46
 
47
47
  @model_serializer(mode="wrap")
48
48
  def serialize_model(self, handler):
49
- optional_fields = ["text", "response_text"]
50
- nullable_fields = ["response"]
51
- null_default_fields = []
52
-
49
+ optional_fields = set(["text", "response_text"])
50
+ nullable_fields = set(["response"])
53
51
  serialized = handler(self)
54
-
55
52
  m = {}
56
53
 
57
54
  for n, f in type(self).model_fields.items():
58
55
  k = f.alias or n
59
56
  val = serialized.get(k)
60
- serialized.pop(k, None)
61
-
62
- optional_nullable = k in optional_fields and k in nullable_fields
63
- is_set = (
64
- self.__pydantic_fields_set__.intersection({n})
65
- or k in null_default_fields
66
- ) # pylint: disable=no-member
67
-
68
- if val is not None and val != UNSET_SENTINEL:
69
- m[k] = val
70
- elif val != UNSET_SENTINEL and (
71
- not k in optional_fields or (optional_nullable and is_set)
72
- ):
73
- m[k] = val
57
+ is_nullable_and_explicitly_set = (
58
+ k in nullable_fields
59
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
60
+ )
61
+
62
+ if val != UNSET_SENTINEL:
63
+ if (
64
+ val is not None
65
+ or k not in optional_fields
66
+ or is_nullable_and_explicitly_set
67
+ ):
68
+ m[k] = val
74
69
 
75
70
  return m
@@ -94,47 +94,46 @@ class ToolListRequest(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