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
@@ -128,72 +128,71 @@ class Session(BaseModel):
128
128
 
129
129
  @model_serializer(mode="wrap")
130
130
  def serialize_model(self, handler):
131
- optional_fields = [
132
- "session_id",
133
- "conversation_id",
134
- "channel_manager_service",
135
- "channel_manager_type",
136
- "channel_manager_sid",
137
- "agent_id",
138
- "agent_name",
139
- "agent_type",
140
- "agent_timezone",
141
- "prompt_id",
142
- "prompt_name",
143
- "prompt_version",
144
- "prompt_version_number",
145
- "duration",
146
- "session_label_id",
147
- "source",
148
- "target",
149
- "is_legacy",
150
- "is_test",
151
- "user_terminated",
152
- ]
153
- nullable_fields = [
154
- "session_id",
155
- "conversation_id",
156
- "channel_manager_service",
157
- "channel_manager_type",
158
- "channel_manager_sid",
159
- "agent_id",
160
- "agent_name",
161
- "agent_type",
162
- "agent_timezone",
163
- "prompt_id",
164
- "prompt_name",
165
- "prompt_version",
166
- "prompt_version_number",
167
- "duration",
168
- "session_label_id",
169
- "source",
170
- "target",
171
- "is_legacy",
172
- "is_test",
173
- "user_terminated",
174
- ]
175
- null_default_fields = []
176
-
131
+ optional_fields = set(
132
+ [
133
+ "session_id",
134
+ "conversation_id",
135
+ "channel_manager_service",
136
+ "channel_manager_type",
137
+ "channel_manager_sid",
138
+ "agent_id",
139
+ "agent_name",
140
+ "agent_type",
141
+ "agent_timezone",
142
+ "prompt_id",
143
+ "prompt_name",
144
+ "prompt_version",
145
+ "prompt_version_number",
146
+ "duration",
147
+ "session_label_id",
148
+ "source",
149
+ "target",
150
+ "is_legacy",
151
+ "is_test",
152
+ "user_terminated",
153
+ ]
154
+ )
155
+ nullable_fields = set(
156
+ [
157
+ "session_id",
158
+ "conversation_id",
159
+ "channel_manager_service",
160
+ "channel_manager_type",
161
+ "channel_manager_sid",
162
+ "agent_id",
163
+ "agent_name",
164
+ "agent_type",
165
+ "agent_timezone",
166
+ "prompt_id",
167
+ "prompt_name",
168
+ "prompt_version",
169
+ "prompt_version_number",
170
+ "duration",
171
+ "session_label_id",
172
+ "source",
173
+ "target",
174
+ "is_legacy",
175
+ "is_test",
176
+ "user_terminated",
177
+ ]
178
+ )
177
179
  serialized = handler(self)
178
-
179
180
  m = {}
180
181
 
181
182
  for n, f in type(self).model_fields.items():
182
183
  k = f.alias or n
183
184
  val = serialized.get(k)
184
- serialized.pop(k, None)
185
-
186
- optional_nullable = k in optional_fields and k in nullable_fields
187
- is_set = (
188
- self.__pydantic_fields_set__.intersection({n})
189
- or k in null_default_fields
190
- ) # pylint: disable=no-member
191
-
192
- if val is not None and val != UNSET_SENTINEL:
193
- m[k] = val
194
- elif val != UNSET_SENTINEL and (
195
- not k in optional_fields or (optional_nullable and is_set)
196
- ):
197
- m[k] = val
185
+ is_nullable_and_explicitly_set = (
186
+ k in nullable_fields
187
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
188
+ )
189
+
190
+ if val != UNSET_SENTINEL:
191
+ if (
192
+ val is not None
193
+ or k not in optional_fields
194
+ or is_nullable_and_explicitly_set
195
+ ):
196
+ m[k] = val
198
197
 
199
198
  return m
@@ -94,47 +94,46 @@ class SessionLabelsListRequest(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
@@ -48,30 +48,29 @@ class SessionAction(BaseModel):
48
48
 
49
49
  @model_serializer(mode="wrap")
50
50
  def serialize_model(self, handler):
51
- optional_fields = ["tool_name", "tool_request", "tool_result", "tool_error"]
52
- nullable_fields = ["tool_name", "tool_request", "tool_result", "tool_error"]
53
- null_default_fields = []
54
-
51
+ optional_fields = set(
52
+ ["tool_name", "tool_request", "tool_result", "tool_error"]
53
+ )
54
+ nullable_fields = set(
55
+ ["tool_name", "tool_request", "tool_result", "tool_error"]
56
+ )
55
57
  serialized = handler(self)
56
-
57
58
  m = {}
58
59
 
59
60
  for n, f in type(self).model_fields.items():
60
61
  k = f.alias or n
61
62
  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
63
+ is_nullable_and_explicitly_set = (
64
+ k in nullable_fields
65
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
66
+ )
67
+
68
+ if val != UNSET_SENTINEL:
69
+ if (
70
+ val is not None
71
+ or k not in optional_fields
72
+ or is_nullable_and_explicitly_set
73
+ ):
74
+ m[k] = val
76
75
 
77
76
  return m
@@ -69,30 +69,25 @@ class SessionLabel(BaseModel):
69
69
 
70
70
  @model_serializer(mode="wrap")
71
71
  def serialize_model(self, handler):
72
- optional_fields = ["comments", "issue_categories"]
73
- nullable_fields = ["comments", "issue_categories"]
74
- null_default_fields = []
75
-
72
+ optional_fields = set(["comments", "issue_categories"])
73
+ nullable_fields = set(["comments", "issue_categories"])
76
74
  serialized = handler(self)
77
-
78
75
  m = {}
79
76
 
80
77
  for n, f in type(self).model_fields.items():
81
78
  k = f.alias or n
82
79
  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
80
+ is_nullable_and_explicitly_set = (
81
+ k in nullable_fields
82
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
83
+ )
84
+
85
+ if val != UNSET_SENTINEL:
86
+ if (
87
+ val is not None
88
+ or k not in optional_fields
89
+ or is_nullable_and_explicitly_set
90
+ ):
91
+ m[k] = val
97
92
 
98
93
  return m
@@ -49,30 +49,25 @@ class SessionLabelCreate(BaseModel):
49
49
 
50
50
  @model_serializer(mode="wrap")
51
51
  def serialize_model(self, handler):
52
- optional_fields = ["comments", "issue_categories"]
53
- nullable_fields = ["comments", "issue_categories"]
54
- null_default_fields = []
55
-
52
+ optional_fields = set(["comments", "issue_categories"])
53
+ nullable_fields = set(["comments", "issue_categories"])
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
@@ -33,30 +33,25 @@ class SessionRecordingResponse(BaseModel):
33
33
 
34
34
  @model_serializer(mode="wrap")
35
35
  def serialize_model(self, handler):
36
- optional_fields = ["session_id", "recordings"]
37
- nullable_fields = ["session_id", "recordings"]
38
- null_default_fields = []
39
-
36
+ optional_fields = set(["session_id", "recordings"])
37
+ nullable_fields = set(["session_id", "recordings"])
40
38
  serialized = handler(self)
41
-
42
39
  m = {}
43
40
 
44
41
  for n, f in type(self).model_fields.items():
45
42
  k = f.alias or n
46
43
  val = serialized.get(k)
47
- serialized.pop(k, None)
48
-
49
- optional_nullable = k in optional_fields and k in nullable_fields
50
- is_set = (
51
- self.__pydantic_fields_set__.intersection({n})
52
- or k in null_default_fields
53
- ) # pylint: disable=no-member
54
-
55
- if val is not None and val != UNSET_SENTINEL:
56
- m[k] = val
57
- elif val != UNSET_SENTINEL and (
58
- not k in optional_fields or (optional_nullable and is_set)
59
- ):
60
- 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
61
56
 
62
57
  return m
@@ -94,47 +94,46 @@ class SessionsListRequest(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
@@ -32,30 +32,25 @@ class SessionSummaryResponse(BaseModel):
32
32
 
33
33
  @model_serializer(mode="wrap")
34
34
  def serialize_model(self, handler):
35
- optional_fields = ["summary", "rating"]
36
- nullable_fields = ["summary", "rating"]
37
- null_default_fields = []
38
-
35
+ optional_fields = set(["summary", "rating"])
36
+ nullable_fields = set(["summary", "rating"])
39
37
  serialized = handler(self)
40
-
41
38
  m = {}
42
39
 
43
40
  for n, f in type(self).model_fields.items():
44
41
  k = f.alias or n
45
42
  val = serialized.get(k)
46
- serialized.pop(k, None)
47
-
48
- optional_nullable = k in optional_fields and k in nullable_fields
49
- is_set = (
50
- self.__pydantic_fields_set__.intersection({n})
51
- or k in null_default_fields
52
- ) # pylint: disable=no-member
53
-
54
- if val is not None and val != UNSET_SENTINEL:
55
- m[k] = val
56
- elif val != UNSET_SENTINEL and (
57
- not k in optional_fields or (optional_nullable and is_set)
58
- ):
59
- m[k] = val
43
+ is_nullable_and_explicitly_set = (
44
+ k in nullable_fields
45
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
46
+ )
47
+
48
+ if val != UNSET_SENTINEL:
49
+ if (
50
+ val is not None
51
+ or k not in optional_fields
52
+ or is_nullable_and_explicitly_set
53
+ ):
54
+ m[k] = val
60
55
 
61
56
  return m
@@ -43,30 +43,25 @@ class SessionText(BaseModel):
43
43
 
44
44
  @model_serializer(mode="wrap")
45
45
  def serialize_model(self, handler):
46
- optional_fields = ["lang", "source", "text"]
47
- nullable_fields = ["lang", "source", "text"]
48
- null_default_fields = []
49
-
46
+ optional_fields = set(["lang", "source", "text"])
47
+ nullable_fields = set(["lang", "source", "text"])
50
48
  serialized = handler(self)
51
-
52
49
  m = {}
53
50
 
54
51
  for n, f in type(self).model_fields.items():
55
52
  k = f.alias or n
56
53
  val = serialized.get(k)
57
- serialized.pop(k, None)
58
-
59
- optional_nullable = k in optional_fields and k in nullable_fields
60
- is_set = (
61
- self.__pydantic_fields_set__.intersection({n})
62
- or k in null_default_fields
63
- ) # pylint: disable=no-member
64
-
65
- if val is not None and val != UNSET_SENTINEL:
66
- m[k] = val
67
- elif val != UNSET_SENTINEL and (
68
- not k in optional_fields or (optional_nullable and is_set)
69
- ):
70
- m[k] = val
54
+ is_nullable_and_explicitly_set = (
55
+ k in nullable_fields
56
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
57
+ )
58
+
59
+ if val != UNSET_SENTINEL:
60
+ if (
61
+ val is not None
62
+ or k not in optional_fields
63
+ or is_nullable_and_explicitly_set
64
+ ):
65
+ m[k] = val
71
66
 
72
67
  return m
@@ -111,30 +111,25 @@ class SetValueAction(BaseModel):
111
111
 
112
112
  @model_serializer(mode="wrap")
113
113
  def serialize_model(self, handler):
114
- optional_fields = ["value", "value_from", "if", "action"]
115
- nullable_fields = ["value", "value_from", "if"]
116
- null_default_fields = []
117
-
114
+ optional_fields = set(["value", "value_from", "if", "action"])
115
+ nullable_fields = set(["value", "value_from", "if"])
118
116
  serialized = handler(self)
119
-
120
117
  m = {}
121
118
 
122
119
  for n, f in type(self).model_fields.items():
123
120
  k = f.alias or n
124
121
  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
122
+ is_nullable_and_explicitly_set = (
123
+ k in nullable_fields
124
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
125
+ )
126
+
127
+ if val != UNSET_SENTINEL:
128
+ if (
129
+ val is not None
130
+ or k not in optional_fields
131
+ or is_nullable_and_explicitly_set
132
+ ):
133
+ m[k] = val
139
134
 
140
135
  return m