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
@@ -87,46 +87,45 @@ class ToolDefinition(BaseModel):
87
87
 
88
88
  @model_serializer(mode="wrap")
89
89
  def serialize_model(self, handler):
90
- optional_fields = [
91
- "type",
92
- "endpoint",
93
- "context",
94
- "defaults",
95
- "static_parameters",
96
- "result",
97
- "options",
98
- ]
99
- nullable_fields = [
100
- "type",
101
- "endpoint",
102
- "context",
103
- "defaults",
104
- "static_parameters",
105
- "result",
106
- "options",
107
- ]
108
- null_default_fields = []
109
-
90
+ optional_fields = set(
91
+ [
92
+ "type",
93
+ "endpoint",
94
+ "context",
95
+ "defaults",
96
+ "static_parameters",
97
+ "result",
98
+ "options",
99
+ ]
100
+ )
101
+ nullable_fields = set(
102
+ [
103
+ "type",
104
+ "endpoint",
105
+ "context",
106
+ "defaults",
107
+ "static_parameters",
108
+ "result",
109
+ "options",
110
+ ]
111
+ )
110
112
  serialized = handler(self)
111
-
112
113
  m = {}
113
114
 
114
115
  for n, f in type(self).model_fields.items():
115
116
  k = f.alias or n
116
117
  val = serialized.get(k)
117
- serialized.pop(k, None)
118
-
119
- optional_nullable = k in optional_fields and k in nullable_fields
120
- is_set = (
121
- self.__pydantic_fields_set__.intersection({n})
122
- or k in null_default_fields
123
- ) # pylint: disable=no-member
124
-
125
- if val is not None and val != UNSET_SENTINEL:
126
- m[k] = val
127
- elif val != UNSET_SENTINEL and (
128
- not k in optional_fields or (optional_nullable and is_set)
129
- ):
130
- m[k] = val
118
+ is_nullable_and_explicitly_set = (
119
+ k in nullable_fields
120
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
121
+ )
122
+
123
+ if val != UNSET_SENTINEL:
124
+ if (
125
+ val is not None
126
+ or k not in optional_fields
127
+ or is_nullable_and_explicitly_set
128
+ ):
129
+ m[k] = val
131
130
 
132
131
  return m
@@ -92,40 +92,29 @@ class ToolDetailResponse(BaseModel):
92
92
 
93
93
  @model_serializer(mode="wrap")
94
94
  def serialize_model(self, handler):
95
- optional_fields = [
96
- "last_updated_comments",
97
- "service_name",
98
- "prompts_info",
99
- "agents_info",
100
- ]
101
- nullable_fields = [
102
- "last_updated_comments",
103
- "service_name",
104
- "prompts_info",
105
- "agents_info",
106
- ]
107
- null_default_fields = []
108
-
95
+ optional_fields = set(
96
+ ["last_updated_comments", "service_name", "prompts_info", "agents_info"]
97
+ )
98
+ nullable_fields = set(
99
+ ["last_updated_comments", "service_name", "prompts_info", "agents_info"]
100
+ )
109
101
  serialized = handler(self)
110
-
111
102
  m = {}
112
103
 
113
104
  for n, f in type(self).model_fields.items():
114
105
  k = f.alias or n
115
106
  val = serialized.get(k)
116
- serialized.pop(k, None)
117
-
118
- optional_nullable = k in optional_fields and k in nullable_fields
119
- is_set = (
120
- self.__pydantic_fields_set__.intersection({n})
121
- or k in null_default_fields
122
- ) # pylint: disable=no-member
123
-
124
- if val is not None and val != UNSET_SENTINEL:
125
- m[k] = val
126
- elif val != UNSET_SENTINEL and (
127
- not k in optional_fields or (optional_nullable and is_set)
128
- ):
129
- m[k] = val
107
+ is_nullable_and_explicitly_set = (
108
+ k in nullable_fields
109
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
110
+ )
111
+
112
+ if val != UNSET_SENTINEL:
113
+ if (
114
+ val is not None
115
+ or k not in optional_fields
116
+ or is_nullable_and_explicitly_set
117
+ ):
118
+ m[k] = val
130
119
 
131
120
  return m
@@ -1,7 +1,8 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from syllable_sdk.types import BaseModel
4
+ from pydantic import model_serializer
5
+ from syllable_sdk.types import BaseModel, UNSET_SENTINEL
5
6
  from typing import Optional
6
7
  from typing_extensions import NotRequired, TypedDict
7
8
 
@@ -18,3 +19,19 @@ class ToolOptions(BaseModel):
18
19
 
19
20
  propagate_tool_result: Optional[bool] = False
20
21
  r"""Whether the tool call result should be propagated to the caller."""
22
+
23
+ @model_serializer(mode="wrap")
24
+ def serialize_model(self, handler):
25
+ optional_fields = set(["propagate_tool_result"])
26
+ serialized = handler(self)
27
+ m = {}
28
+
29
+ for n, f in type(self).model_fields.items():
30
+ k = f.alias or n
31
+ val = serialized.get(k)
32
+
33
+ if val != UNSET_SENTINEL:
34
+ if val is not None or k not in optional_fields:
35
+ m[k] = val
36
+
37
+ return m
@@ -69,30 +69,25 @@ class ToolParameterTransform(BaseModel):
69
69
 
70
70
  @model_serializer(mode="wrap")
71
71
  def serialize_model(self, handler):
72
- optional_fields = ["action", "when", "value", "format"]
73
- nullable_fields = ["when", "value", "format"]
74
- null_default_fields = []
75
-
72
+ optional_fields = set(["action", "when", "value", "format"])
73
+ nullable_fields = set(["when", "value", "format"])
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
@@ -40,30 +40,25 @@ class ToolParameterTransformCondition(BaseModel):
40
40
 
41
41
  @model_serializer(mode="wrap")
42
42
  def serialize_model(self, handler):
43
- optional_fields = ["operator"]
44
- nullable_fields = ["operator"]
45
- null_default_fields = []
46
-
43
+ optional_fields = set(["operator"])
44
+ nullable_fields = set(["operator"])
47
45
  serialized = handler(self)
48
-
49
46
  m = {}
50
47
 
51
48
  for n, f in type(self).model_fields.items():
52
49
  k = f.alias or n
53
50
  val = serialized.get(k)
54
- serialized.pop(k, None)
55
-
56
- optional_nullable = k in optional_fields and k in nullable_fields
57
- is_set = (
58
- self.__pydantic_fields_set__.intersection({n})
59
- or k in null_default_fields
60
- ) # pylint: disable=no-member
61
-
62
- if val is not None and val != UNSET_SENTINEL:
63
- m[k] = val
64
- elif val != UNSET_SENTINEL and (
65
- not k in optional_fields or (optional_nullable and is_set)
66
- ):
67
- m[k] = val
51
+ is_nullable_and_explicitly_set = (
52
+ k in nullable_fields
53
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
54
+ )
55
+
56
+ if val != UNSET_SENTINEL:
57
+ if (
58
+ val is not None
59
+ or k not in optional_fields
60
+ or is_nullable_and_explicitly_set
61
+ ):
62
+ m[k] = val
68
63
 
69
64
  return m
@@ -87,40 +87,29 @@ class ToolResponse(BaseModel):
87
87
 
88
88
  @model_serializer(mode="wrap")
89
89
  def serialize_model(self, handler):
90
- optional_fields = [
91
- "last_updated_comments",
92
- "service_name",
93
- "prompts_info",
94
- "agents_info",
95
- ]
96
- nullable_fields = [
97
- "last_updated_comments",
98
- "service_name",
99
- "prompts_info",
100
- "agents_info",
101
- ]
102
- null_default_fields = []
103
-
90
+ optional_fields = set(
91
+ ["last_updated_comments", "service_name", "prompts_info", "agents_info"]
92
+ )
93
+ nullable_fields = set(
94
+ ["last_updated_comments", "service_name", "prompts_info", "agents_info"]
95
+ )
104
96
  serialized = handler(self)
105
-
106
97
  m = {}
107
98
 
108
99
  for n, f in type(self).model_fields.items():
109
100
  k = f.alias or n
110
101
  val = serialized.get(k)
111
- serialized.pop(k, None)
112
-
113
- optional_nullable = k in optional_fields and k in nullable_fields
114
- is_set = (
115
- self.__pydantic_fields_set__.intersection({n})
116
- or k in null_default_fields
117
- ) # pylint: disable=no-member
118
-
119
- if val is not None and val != UNSET_SENTINEL:
120
- m[k] = val
121
- elif val != UNSET_SENTINEL and (
122
- not k in optional_fields or (optional_nullable and is_set)
123
- ):
124
- 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
125
114
 
126
115
  return m
@@ -48,30 +48,25 @@ class ToolUpdateRequest(BaseModel):
48
48
 
49
49
  @model_serializer(mode="wrap")
50
50
  def serialize_model(self, handler):
51
- optional_fields = ["last_updated_comments"]
52
- nullable_fields = ["last_updated_comments"]
53
- null_default_fields = []
54
-
51
+ optional_fields = set(["last_updated_comments"])
52
+ nullable_fields = set(["last_updated_comments"])
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
@@ -32,30 +32,25 @@ class TwilioChannelConfigUpdate(BaseModel):
32
32
 
33
33
  @model_serializer(mode="wrap")
34
34
  def serialize_model(self, handler):
35
- optional_fields = ["account_sid", "auth_token"]
36
- nullable_fields = ["account_sid", "auth_token"]
37
- null_default_fields = []
38
-
35
+ optional_fields = set(["account_sid", "auth_token"])
36
+ nullable_fields = set(["account_sid", "auth_token"])
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
@@ -41,30 +41,25 @@ class TwilioChannelUpdateRequest(BaseModel):
41
41
 
42
42
  @model_serializer(mode="wrap")
43
43
  def serialize_model(self, handler):
44
- optional_fields = ["name", "config"]
45
- nullable_fields = ["name", "config"]
46
- null_default_fields = []
47
-
44
+ optional_fields = set(["name", "config"])
45
+ nullable_fields = set(["name", "config"])
48
46
  serialized = handler(self)
49
-
50
47
  m = {}
51
48
 
52
49
  for n, f in type(self).model_fields.items():
53
50
  k = f.alias or n
54
51
  val = serialized.get(k)
55
- serialized.pop(k, None)
56
-
57
- optional_nullable = k in optional_fields and k in nullable_fields
58
- is_set = (
59
- self.__pydantic_fields_set__.intersection({n})
60
- or k in null_default_fields
61
- ) # pylint: disable=no-member
62
-
63
- if val is not None and val != UNSET_SENTINEL:
64
- m[k] = val
65
- elif val != UNSET_SENTINEL and (
66
- not k in optional_fields or (optional_nullable and is_set)
67
- ):
68
- m[k] = val
52
+ is_nullable_and_explicitly_set = (
53
+ k in nullable_fields
54
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
55
+ )
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if (
59
+ val is not None
60
+ or k not in optional_fields
61
+ or is_nullable_and_explicitly_set
62
+ ):
63
+ m[k] = val
69
64
 
70
65
  return m
@@ -42,30 +42,25 @@ class UpdateBridgePhrasesConfigRequest(BaseModel):
42
42
 
43
43
  @model_serializer(mode="wrap")
44
44
  def serialize_model(self, handler):
45
- optional_fields = ["agent_id", "tool_name"]
46
- nullable_fields = ["agent_id", "tool_name"]
47
- null_default_fields = []
48
-
45
+ optional_fields = set(["agent_id", "tool_name"])
46
+ nullable_fields = set(["agent_id", "tool_name"])
49
47
  serialized = handler(self)
50
-
51
48
  m = {}
52
49
 
53
50
  for n, f in type(self).model_fields.items():
54
51
  k = f.alias or n
55
52
  val = serialized.get(k)
56
- serialized.pop(k, None)
57
-
58
- optional_nullable = k in optional_fields and k in nullable_fields
59
- is_set = (
60
- self.__pydantic_fields_set__.intersection({n})
61
- or k in null_default_fields
62
- ) # pylint: disable=no-member
53
+ is_nullable_and_explicitly_set = (
54
+ k in nullable_fields
55
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
56
+ )
63
57
 
64
- if val is not None and val != UNSET_SENTINEL:
65
- m[k] = val
66
- elif val != UNSET_SENTINEL and (
67
- not k in optional_fields or (optional_nullable and is_set)
68
- ):
69
- m[k] = val
58
+ if val != UNSET_SENTINEL:
59
+ if (
60
+ val is not None
61
+ or k not in optional_fields
62
+ or is_nullable_and_explicitly_set
63
+ ):
64
+ m[k] = val
70
65
 
71
66
  return m
@@ -54,30 +54,25 @@ class UserCreateRequest(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["first_name", "last_name", "login_type", "skip_auth"]
58
- nullable_fields = ["first_name", "last_name", "login_type"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["first_name", "last_name", "login_type", "skip_auth"])
58
+ nullable_fields = set(["first_name", "last_name", "login_type"])
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
@@ -82,42 +82,41 @@ class UserResponse(BaseModel):
82
82
 
83
83
  @model_serializer(mode="wrap")
84
84
  def serialize_model(self, handler):
85
- optional_fields = [
86
- "first_name",
87
- "last_name",
88
- "last_updated_comments",
89
- "last_updated_by",
90
- "last_session_at",
91
- ]
92
- nullable_fields = [
93
- "first_name",
94
- "last_name",
95
- "last_updated_comments",
96
- "last_updated_by",
97
- "last_session_at",
98
- ]
99
- null_default_fields = []
100
-
85
+ optional_fields = set(
86
+ [
87
+ "first_name",
88
+ "last_name",
89
+ "last_updated_comments",
90
+ "last_updated_by",
91
+ "last_session_at",
92
+ ]
93
+ )
94
+ nullable_fields = set(
95
+ [
96
+ "first_name",
97
+ "last_name",
98
+ "last_updated_comments",
99
+ "last_updated_by",
100
+ "last_session_at",
101
+ ]
102
+ )
101
103
  serialized = handler(self)
102
-
103
104
  m = {}
104
105
 
105
106
  for n, f in type(self).model_fields.items():
106
107
  k = f.alias or n
107
108
  val = serialized.get(k)
108
- serialized.pop(k, None)
109
-
110
- optional_nullable = k in optional_fields and k in nullable_fields
111
- is_set = (
112
- self.__pydantic_fields_set__.intersection({n})
113
- or k in null_default_fields
114
- ) # pylint: disable=no-member
115
-
116
- if val is not None and val != UNSET_SENTINEL:
117
- m[k] = val
118
- elif val != UNSET_SENTINEL and (
119
- not k in optional_fields or (optional_nullable and is_set)
120
- ):
121
- m[k] = val
109
+ is_nullable_and_explicitly_set = (
110
+ k in nullable_fields
111
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
112
+ )
113
+
114
+ if val != UNSET_SENTINEL:
115
+ if (
116
+ val is not None
117
+ or k not in optional_fields
118
+ or is_nullable_and_explicitly_set
119
+ ):
120
+ m[k] = val
122
121
 
123
122
  return m