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
@@ -38,30 +38,25 @@ class RoleCreateRequest(BaseModel):
38
38
 
39
39
  @model_serializer(mode="wrap")
40
40
  def serialize_model(self, handler):
41
- optional_fields = ["description"]
42
- nullable_fields = ["description"]
43
- null_default_fields = []
44
-
41
+ optional_fields = set(["description"])
42
+ nullable_fields = set(["description"])
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
@@ -64,30 +64,25 @@ class RoleResponse(BaseModel):
64
64
 
65
65
  @model_serializer(mode="wrap")
66
66
  def serialize_model(self, handler):
67
- optional_fields = ["description", "last_updated_comments"]
68
- nullable_fields = ["description", "last_updated_comments"]
69
- null_default_fields = []
70
-
67
+ optional_fields = set(["description", "last_updated_comments"])
68
+ nullable_fields = set(["description", "last_updated_comments"])
71
69
  serialized = handler(self)
72
-
73
70
  m = {}
74
71
 
75
72
  for n, f in type(self).model_fields.items():
76
73
  k = f.alias or n
77
74
  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
75
+ is_nullable_and_explicitly_set = (
76
+ k in nullable_fields
77
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
78
+ )
79
+
80
+ if val != UNSET_SENTINEL:
81
+ if (
82
+ val is not None
83
+ or k not in optional_fields
84
+ or is_nullable_and_explicitly_set
85
+ ):
86
+ m[k] = val
92
87
 
93
88
  return m
@@ -41,30 +41,25 @@ class RolesDeleteRequest(BaseModel):
41
41
 
42
42
  @model_serializer(mode="wrap")
43
43
  def serialize_model(self, handler):
44
- optional_fields = ["new_role_id"]
45
- nullable_fields = ["new_role_id"]
46
- null_default_fields = []
47
-
44
+ optional_fields = set(["new_role_id"])
45
+ nullable_fields = set(["new_role_id"])
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
52
+ is_nullable_and_explicitly_set = (
53
+ k in nullable_fields
54
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
55
+ )
62
56
 
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
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
@@ -94,47 +94,46 @@ class RolesListRequest(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,25 @@ class RoleUpdateRequest(BaseModel):
48
48
 
49
49
  @model_serializer(mode="wrap")
50
50
  def serialize_model(self, handler):
51
- optional_fields = ["description", "last_updated_comments"]
52
- nullable_fields = ["description", "last_updated_comments"]
53
- null_default_fields = []
54
-
51
+ optional_fields = set(["description", "last_updated_comments"])
52
+ nullable_fields = set(["description", "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
@@ -74,30 +74,25 @@ class SaveAction(BaseModel):
74
74
 
75
75
  @model_serializer(mode="wrap")
76
76
  def serialize_model(self, handler):
77
- optional_fields = ["if", "action", "name", "inputs"]
78
- nullable_fields = ["if", "name", "inputs"]
79
- null_default_fields = []
80
-
77
+ optional_fields = set(["if", "action", "name", "inputs"])
78
+ nullable_fields = set(["if", "name", "inputs"])
81
79
  serialized = handler(self)
82
-
83
80
  m = {}
84
81
 
85
82
  for n, f in type(self).model_fields.items():
86
83
  k = f.alias or n
87
84
  val = serialized.get(k)
88
- serialized.pop(k, None)
89
-
90
- optional_nullable = k in optional_fields and k in nullable_fields
91
- is_set = (
92
- self.__pydantic_fields_set__.intersection({n})
93
- or k in null_default_fields
94
- ) # pylint: disable=no-member
95
-
96
- if val is not None and val != UNSET_SENTINEL:
97
- m[k] = val
98
- elif val != UNSET_SENTINEL and (
99
- not k in optional_fields or (optional_nullable and is_set)
100
- ):
101
- m[k] = val
85
+ is_nullable_and_explicitly_set = (
86
+ k in nullable_fields
87
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
88
+ )
89
+
90
+ if val != UNSET_SENTINEL:
91
+ if (
92
+ val is not None
93
+ or k not in optional_fields
94
+ or is_nullable_and_explicitly_set
95
+ ):
96
+ m[k] = val
102
97
 
103
98
  return m
@@ -79,30 +79,25 @@ class SayAction(BaseModel):
79
79
 
80
80
  @model_serializer(mode="wrap")
81
81
  def serialize_model(self, handler):
82
- optional_fields = ["if", "action", "role"]
83
- nullable_fields = ["if"]
84
- null_default_fields = []
85
-
82
+ optional_fields = set(["if", "action", "role"])
83
+ nullable_fields = set(["if"])
86
84
  serialized = handler(self)
87
-
88
85
  m = {}
89
86
 
90
87
  for n, f in type(self).model_fields.items():
91
88
  k = f.alias or n
92
89
  val = serialized.get(k)
93
- serialized.pop(k, None)
94
-
95
- optional_nullable = k in optional_fields and k in nullable_fields
96
- is_set = (
97
- self.__pydantic_fields_set__.intersection({n})
98
- or k in null_default_fields
99
- ) # pylint: disable=no-member
100
-
101
- if val is not None and val != UNSET_SENTINEL:
102
- m[k] = val
103
- elif val != UNSET_SENTINEL and (
104
- not k in optional_fields or (optional_nullable and is_set)
105
- ):
106
- m[k] = val
90
+ is_nullable_and_explicitly_set = (
91
+ k in nullable_fields
92
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
93
+ )
94
+
95
+ if val != UNSET_SENTINEL:
96
+ if (
97
+ val is not None
98
+ or k not in optional_fields
99
+ or is_nullable_and_explicitly_set
100
+ ):
101
+ m[k] = val
107
102
 
108
103
  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 syllable_sdk.utils import FieldMetadata, SecurityMetadata
6
7
  from typing import Optional
7
8
  from typing_extensions import Annotated, NotRequired, TypedDict
@@ -23,3 +24,19 @@ class Security(BaseModel):
23
24
  )
24
25
  ),
25
26
  ] = None
27
+
28
+ @model_serializer(mode="wrap")
29
+ def serialize_model(self, handler):
30
+ optional_fields = set(["APIKeyHeader"])
31
+ serialized = handler(self)
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k)
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if val is not None or k not in optional_fields:
40
+ m[k] = val
41
+
42
+ return m
@@ -94,47 +94,46 @@ class ServiceListRequest(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
@@ -44,30 +44,25 @@ class ServiceCreateRequest(BaseModel):
44
44
 
45
45
  @model_serializer(mode="wrap")
46
46
  def serialize_model(self, handler):
47
- optional_fields = ["auth_type", "auth_values"]
48
- nullable_fields = ["auth_type", "auth_values"]
49
- null_default_fields = []
50
-
47
+ optional_fields = set(["auth_type", "auth_values"])
48
+ nullable_fields = set(["auth_type", "auth_values"])
51
49
  serialized = handler(self)
52
-
53
50
  m = {}
54
51
 
55
52
  for n, f in type(self).model_fields.items():
56
53
  k = f.alias or n
57
54
  val = serialized.get(k)
58
- serialized.pop(k, None)
59
-
60
- optional_nullable = k in optional_fields and k in nullable_fields
61
- is_set = (
62
- self.__pydantic_fields_set__.intersection({n})
63
- or k in null_default_fields
64
- ) # pylint: disable=no-member
65
-
66
- if val is not None and val != UNSET_SENTINEL:
67
- m[k] = val
68
- elif val != UNSET_SENTINEL and (
69
- not k in optional_fields or (optional_nullable and is_set)
70
- ):
71
- m[k] = val
55
+ is_nullable_and_explicitly_set = (
56
+ k in nullable_fields
57
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
58
+ )
59
+
60
+ if val != UNSET_SENTINEL:
61
+ if (
62
+ val is not None
63
+ or k not in optional_fields
64
+ or is_nullable_and_explicitly_set
65
+ ):
66
+ m[k] = val
72
67
 
73
68
  return m
@@ -70,30 +70,25 @@ class ServiceResponse(BaseModel):
70
70
 
71
71
  @model_serializer(mode="wrap")
72
72
  def serialize_model(self, handler):
73
- optional_fields = ["auth_type", "auth_value_keys", "last_updated_comments"]
74
- nullable_fields = ["auth_type", "auth_value_keys", "last_updated_comments"]
75
- null_default_fields = []
76
-
73
+ optional_fields = set(["auth_type", "auth_value_keys", "last_updated_comments"])
74
+ nullable_fields = set(["auth_type", "auth_value_keys", "last_updated_comments"])
77
75
  serialized = handler(self)
78
-
79
76
  m = {}
80
77
 
81
78
  for n, f in type(self).model_fields.items():
82
79
  k = f.alias or n
83
80
  val = serialized.get(k)
84
- serialized.pop(k, None)
85
-
86
- optional_nullable = k in optional_fields and k in nullable_fields
87
- is_set = (
88
- self.__pydantic_fields_set__.intersection({n})
89
- or k in null_default_fields
90
- ) # pylint: disable=no-member
91
-
92
- if val is not None and val != UNSET_SENTINEL:
93
- m[k] = val
94
- elif val != UNSET_SENTINEL and (
95
- not k in optional_fields or (optional_nullable and is_set)
96
- ):
97
- m[k] = val
81
+ is_nullable_and_explicitly_set = (
82
+ k in nullable_fields
83
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
84
+ )
85
+
86
+ if val != UNSET_SENTINEL:
87
+ if (
88
+ val is not None
89
+ or k not in optional_fields
90
+ or is_nullable_and_explicitly_set
91
+ ):
92
+ m[k] = val
98
93
 
99
94
  return m
@@ -54,30 +54,25 @@ class ServiceUpdateRequest(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["auth_type", "auth_values", "last_updated_comments"]
58
- nullable_fields = ["auth_type", "auth_values", "last_updated_comments"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["auth_type", "auth_values", "last_updated_comments"])
58
+ nullable_fields = set(["auth_type", "auth_values", "last_updated_comments"])
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