syllable-sdk 0.44.20__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 (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 +13 -1
  212. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.44.24.dist-info}/METADATA +1 -1
  213. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.44.24.dist-info}/RECORD +214 -213
  214. {syllable_sdk-0.44.20.dist-info → syllable_sdk-0.44.24.dist-info}/WHEEL +0 -0
@@ -65,30 +65,25 @@ class ConditionalText(BaseModel):
65
65
 
66
66
  @model_serializer(mode="wrap")
67
67
  def serialize_model(self, handler):
68
- optional_fields = ["if"]
69
- nullable_fields = ["if"]
70
- null_default_fields = []
71
-
68
+ optional_fields = set(["if"])
69
+ nullable_fields = set(["if"])
72
70
  serialized = handler(self)
73
-
74
71
  m = {}
75
72
 
76
73
  for n, f in type(self).model_fields.items():
77
74
  k = f.alias or n
78
75
  val = serialized.get(k)
79
- serialized.pop(k, None)
80
-
81
- optional_nullable = k in optional_fields and k in nullable_fields
82
- is_set = (
83
- self.__pydantic_fields_set__.intersection({n})
84
- or k in null_default_fields
85
- ) # pylint: disable=no-member
86
-
87
- if val is not None and val != UNSET_SENTINEL:
88
- m[k] = val
89
- elif val != UNSET_SENTINEL and (
90
- not k in optional_fields or (optional_nullable and is_set)
91
- ):
92
- m[k] = val
76
+ is_nullable_and_explicitly_set = (
77
+ k in nullable_fields
78
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
79
+ )
80
+
81
+ if val != UNSET_SENTINEL:
82
+ if (
83
+ val is not None
84
+ or k not in optional_fields
85
+ or is_nullable_and_explicitly_set
86
+ ):
87
+ m[k] = val
93
88
 
94
89
  return m
@@ -88,31 +88,26 @@ class ConditionalValue(BaseModel):
88
88
 
89
89
  @model_serializer(mode="wrap")
90
90
  def serialize_model(self, handler):
91
- optional_fields = ["value", "value_from", "if"]
92
- nullable_fields = ["value", "value_from", "if"]
93
- null_default_fields = []
94
-
91
+ optional_fields = set(["value", "value_from", "if"])
92
+ nullable_fields = set(["value", "value_from", "if"])
95
93
  serialized = handler(self)
96
-
97
94
  m = {}
98
95
 
99
96
  for n, f in type(self).model_fields.items():
100
97
  k = f.alias or n
101
98
  val = serialized.get(k)
102
- serialized.pop(k, None)
103
-
104
- optional_nullable = k in optional_fields and k in nullable_fields
105
- is_set = (
106
- self.__pydantic_fields_set__.intersection({n})
107
- or k in null_default_fields
108
- ) # pylint: disable=no-member
109
-
110
- if val is not None and val != UNSET_SENTINEL:
111
- m[k] = val
112
- elif val != UNSET_SENTINEL and (
113
- not k in optional_fields or (optional_nullable and is_set)
114
- ):
115
- m[k] = val
99
+ is_nullable_and_explicitly_set = (
100
+ k in nullable_fields
101
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
102
+ )
103
+
104
+ if val != UNSET_SENTINEL:
105
+ if (
106
+ val is not None
107
+ or k not in optional_fields
108
+ or is_nullable_and_explicitly_set
109
+ ):
110
+ m[k] = val
116
111
 
117
112
  return m
118
113
 
@@ -83,30 +83,25 @@ class Context(BaseModel):
83
83
 
84
84
  @model_serializer(mode="wrap")
85
85
  def serialize_model(self, handler):
86
- optional_fields = ["task"]
87
- nullable_fields = ["task"]
88
- null_default_fields = []
89
-
86
+ optional_fields = set(["task"])
87
+ nullable_fields = set(["task"])
90
88
  serialized = handler(self)
91
-
92
89
  m = {}
93
90
 
94
91
  for n, f in type(self).model_fields.items():
95
92
  k = f.alias or n
96
93
  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
94
+ is_nullable_and_explicitly_set = (
95
+ k in nullable_fields
96
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
97
+ )
98
+
99
+ if val != UNSET_SENTINEL:
100
+ if (
101
+ val is not None
102
+ or k not in optional_fields
103
+ or is_nullable_and_explicitly_set
104
+ ):
105
+ m[k] = val
111
106
 
112
107
  return m
@@ -26,30 +26,25 @@ class ContextTaskMetadata(BaseModel):
26
26
 
27
27
  @model_serializer(mode="wrap")
28
28
  def serialize_model(self, handler):
29
- optional_fields = ["priority", "parent_tool_name"]
30
- nullable_fields = ["priority", "parent_tool_name"]
31
- null_default_fields = []
32
-
29
+ optional_fields = set(["priority", "parent_tool_name"])
30
+ nullable_fields = set(["priority", "parent_tool_name"])
33
31
  serialized = handler(self)
34
-
35
32
  m = {}
36
33
 
37
34
  for n, f in type(self).model_fields.items():
38
35
  k = f.alias or n
39
36
  val = serialized.get(k)
40
- serialized.pop(k, None)
41
-
42
- optional_nullable = k in optional_fields and k in nullable_fields
43
- is_set = (
44
- self.__pydantic_fields_set__.intersection({n})
45
- or k in null_default_fields
46
- ) # pylint: disable=no-member
47
-
48
- if val is not None and val != UNSET_SENTINEL:
49
- m[k] = val
50
- elif val != UNSET_SENTINEL and (
51
- not k in optional_fields or (optional_nullable and is_set)
52
- ):
53
- m[k] = val
37
+ is_nullable_and_explicitly_set = (
38
+ k in nullable_fields
39
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
40
+ )
41
+
42
+ if val != UNSET_SENTINEL:
43
+ if (
44
+ val is not None
45
+ or k not in optional_fields
46
+ or is_nullable_and_explicitly_set
47
+ ):
48
+ m[k] = val
54
49
 
55
50
  return m
@@ -28,30 +28,25 @@ class ContextToolInfo(BaseModel):
28
28
 
29
29
  @model_serializer(mode="wrap")
30
30
  def serialize_model(self, handler):
31
- optional_fields = ["name", "description"]
32
- nullable_fields = ["name", "description"]
33
- null_default_fields = []
34
-
31
+ optional_fields = set(["name", "description"])
32
+ nullable_fields = set(["name", "description"])
35
33
  serialized = handler(self)
36
-
37
34
  m = {}
38
35
 
39
36
  for n, f in type(self).model_fields.items():
40
37
  k = f.alias or n
41
38
  val = serialized.get(k)
42
- serialized.pop(k, None)
43
-
44
- optional_nullable = k in optional_fields and k in nullable_fields
45
- is_set = (
46
- self.__pydantic_fields_set__.intersection({n})
47
- or k in null_default_fields
48
- ) # pylint: disable=no-member
49
-
50
- if val is not None and val != UNSET_SENTINEL:
51
- m[k] = val
52
- elif val != UNSET_SENTINEL and (
53
- not k in optional_fields or (optional_nullable and is_set)
54
- ):
55
- m[k] = val
39
+ is_nullable_and_explicitly_set = (
40
+ k in nullable_fields
41
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
42
+ )
43
+
44
+ if val != UNSET_SENTINEL:
45
+ if (
46
+ val is not None
47
+ or k not in optional_fields
48
+ or is_nullable_and_explicitly_set
49
+ ):
50
+ m[k] = val
56
51
 
57
52
  return m
@@ -97,56 +97,55 @@ class Conversation(BaseModel):
97
97
 
98
98
  @model_serializer(mode="wrap")
99
99
  def serialize_model(self, handler):
100
- optional_fields = [
101
- "agent_id",
102
- "agent_name",
103
- "agent_type",
104
- "prompt_id",
105
- "prompt_name",
106
- "prompt_version",
107
- "llm_provider",
108
- "llm_model",
109
- "llm_version",
110
- "llm_temperature",
111
- "llm_seed",
112
- "is_legacy",
113
- ]
114
- nullable_fields = [
115
- "agent_id",
116
- "agent_name",
117
- "agent_type",
118
- "prompt_id",
119
- "prompt_name",
120
- "prompt_version",
121
- "llm_provider",
122
- "llm_model",
123
- "llm_version",
124
- "llm_temperature",
125
- "llm_seed",
126
- "is_legacy",
127
- ]
128
- null_default_fields = []
129
-
100
+ optional_fields = set(
101
+ [
102
+ "agent_id",
103
+ "agent_name",
104
+ "agent_type",
105
+ "prompt_id",
106
+ "prompt_name",
107
+ "prompt_version",
108
+ "llm_provider",
109
+ "llm_model",
110
+ "llm_version",
111
+ "llm_temperature",
112
+ "llm_seed",
113
+ "is_legacy",
114
+ ]
115
+ )
116
+ nullable_fields = set(
117
+ [
118
+ "agent_id",
119
+ "agent_name",
120
+ "agent_type",
121
+ "prompt_id",
122
+ "prompt_name",
123
+ "prompt_version",
124
+ "llm_provider",
125
+ "llm_model",
126
+ "llm_version",
127
+ "llm_temperature",
128
+ "llm_seed",
129
+ "is_legacy",
130
+ ]
131
+ )
130
132
  serialized = handler(self)
131
-
132
133
  m = {}
133
134
 
134
135
  for n, f in type(self).model_fields.items():
135
136
  k = f.alias or n
136
137
  val = serialized.get(k)
137
- serialized.pop(k, None)
138
-
139
- optional_nullable = k in optional_fields and k in nullable_fields
140
- is_set = (
141
- self.__pydantic_fields_set__.intersection({n})
142
- or k in null_default_fields
143
- ) # pylint: disable=no-member
144
-
145
- if val is not None and val != UNSET_SENTINEL:
146
- m[k] = val
147
- elif val != UNSET_SENTINEL and (
148
- not k in optional_fields or (optional_nullable and is_set)
149
- ):
150
- m[k] = val
138
+ is_nullable_and_explicitly_set = (
139
+ k in nullable_fields
140
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
141
+ )
142
+
143
+ if val != UNSET_SENTINEL:
144
+ if (
145
+ val is not None
146
+ or k not in optional_fields
147
+ or is_nullable_and_explicitly_set
148
+ ):
149
+ m[k] = val
151
150
 
152
151
  return m
@@ -94,47 +94,46 @@ class ConversationsListRequest(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
@@ -94,47 +94,46 @@ class CustomMessagesListRequest(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 CustomMessageCreateRequest(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["preamble", "label", "rules", "type"]
58
- nullable_fields = ["preamble", "label"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["preamble", "label", "rules", "type"])
58
+ nullable_fields = set(["preamble", "label"])
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
@@ -87,30 +87,25 @@ class CustomMessageResponse(BaseModel):
87
87
 
88
88
  @model_serializer(mode="wrap")
89
89
  def serialize_model(self, handler):
90
- optional_fields = ["preamble", "label", "rules", "agent_count", "type"]
91
- nullable_fields = ["preamble", "label", "agent_count"]
92
- null_default_fields = []
93
-
90
+ optional_fields = set(["preamble", "label", "rules", "agent_count", "type"])
91
+ nullable_fields = set(["preamble", "label", "agent_count"])
94
92
  serialized = handler(self)
95
-
96
93
  m = {}
97
94
 
98
95
  for n, f in type(self).model_fields.items():
99
96
  k = f.alias or n
100
97
  val = serialized.get(k)
101
- serialized.pop(k, None)
102
-
103
- optional_nullable = k in optional_fields and k in nullable_fields
104
- is_set = (
105
- self.__pydantic_fields_set__.intersection({n})
106
- or k in null_default_fields
107
- ) # pylint: disable=no-member
108
-
109
- if val is not None and val != UNSET_SENTINEL:
110
- m[k] = val
111
- elif val != UNSET_SENTINEL and (
112
- not k in optional_fields or (optional_nullable and is_set)
113
- ):
114
- 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
115
110
 
116
111
  return m
@@ -64,30 +64,29 @@ class CustomMessageRule(BaseModel):
64
64
 
65
65
  @model_serializer(mode="wrap")
66
66
  def serialize_model(self, handler):
67
- optional_fields = ["time_range_start", "time_range_end", "date", "days_of_week"]
68
- nullable_fields = ["time_range_start", "time_range_end", "date", "days_of_week"]
69
- null_default_fields = []
70
-
67
+ optional_fields = set(
68
+ ["time_range_start", "time_range_end", "date", "days_of_week"]
69
+ )
70
+ nullable_fields = set(
71
+ ["time_range_start", "time_range_end", "date", "days_of_week"]
72
+ )
71
73
  serialized = handler(self)
72
-
73
74
  m = {}
74
75
 
75
76
  for n, f in type(self).model_fields.items():
76
77
  k = f.alias or n
77
78
  val = serialized.get(k)
78
- serialized.pop(k, None)
79
-
80
- optional_nullable = k in optional_fields and k in nullable_fields
81
- is_set = (
82
- self.__pydantic_fields_set__.intersection({n})
83
- or k in null_default_fields
84
- ) # pylint: disable=no-member
85
-
86
- if val is not None and val != UNSET_SENTINEL:
87
- m[k] = val
88
- elif val != UNSET_SENTINEL and (
89
- not k in optional_fields or (optional_nullable and is_set)
90
- ):
91
- m[k] = val
79
+ is_nullable_and_explicitly_set = (
80
+ k in nullable_fields
81
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
82
+ )
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if (
86
+ val is not None
87
+ or k not in optional_fields
88
+ or is_nullable_and_explicitly_set
89
+ ):
90
+ m[k] = val
92
91
 
93
92
  return m