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
@@ -101,50 +101,41 @@ class ExpressionTask(BaseModel):
101
101
 
102
102
  @model_serializer(mode="wrap")
103
103
  def serialize_model(self, handler):
104
- optional_fields = [
105
- "id",
106
- "config",
107
- "variables",
108
- "metadata",
109
- "tool",
110
- "type",
111
- "version",
112
- "inputs",
113
- "expression",
114
- "output",
115
- "on",
116
- ]
117
- nullable_fields = [
118
- "id",
119
- "config",
120
- "variables",
121
- "metadata",
122
- "tool",
123
- "expression",
124
- "output",
125
- ]
126
- null_default_fields = []
127
-
104
+ optional_fields = set(
105
+ [
106
+ "id",
107
+ "config",
108
+ "variables",
109
+ "metadata",
110
+ "tool",
111
+ "type",
112
+ "version",
113
+ "inputs",
114
+ "expression",
115
+ "output",
116
+ "on",
117
+ ]
118
+ )
119
+ nullable_fields = set(
120
+ ["id", "config", "variables", "metadata", "tool", "expression", "output"]
121
+ )
128
122
  serialized = handler(self)
129
-
130
123
  m = {}
131
124
 
132
125
  for n, f in type(self).model_fields.items():
133
126
  k = f.alias or n
134
127
  val = serialized.get(k)
135
- serialized.pop(k, None)
136
-
137
- optional_nullable = k in optional_fields and k in nullable_fields
138
- is_set = (
139
- self.__pydantic_fields_set__.intersection({n})
140
- or k in null_default_fields
141
- ) # pylint: disable=no-member
142
-
143
- if val is not None and val != UNSET_SENTINEL:
144
- m[k] = val
145
- elif val != UNSET_SENTINEL and (
146
- not k in optional_fields or (optional_nullable and is_set)
147
- ):
148
- m[k] = val
128
+ is_nullable_and_explicitly_set = (
129
+ k in nullable_fields
130
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
131
+ )
132
+
133
+ if val != UNSET_SENTINEL:
134
+ if (
135
+ val is not None
136
+ or k not in optional_fields
137
+ or is_nullable_and_explicitly_set
138
+ ):
139
+ m[k] = val
149
140
 
150
141
  return m
@@ -85,30 +85,25 @@ class ExpressionTaskEvents(BaseModel):
85
85
 
86
86
  @model_serializer(mode="wrap")
87
87
  def serialize_model(self, handler):
88
- optional_fields = ["start", "submit"]
89
- nullable_fields = ["start", "submit"]
90
- null_default_fields = []
91
-
88
+ optional_fields = set(["start", "submit"])
89
+ nullable_fields = set(["start", "submit"])
92
90
  serialized = handler(self)
93
-
94
91
  m = {}
95
92
 
96
93
  for n, f in type(self).model_fields.items():
97
94
  k = f.alias or n
98
95
  val = serialized.get(k)
99
- serialized.pop(k, None)
100
-
101
- optional_nullable = k in optional_fields and k in nullable_fields
102
- is_set = (
103
- self.__pydantic_fields_set__.intersection({n})
104
- or k in null_default_fields
105
- ) # pylint: disable=no-member
106
-
107
- if val is not None and val != UNSET_SENTINEL:
108
- m[k] = val
109
- elif val != UNSET_SENTINEL and (
110
- not k in optional_fields or (optional_nullable and is_set)
111
- ):
112
- m[k] = val
96
+ is_nullable_and_explicitly_set = (
97
+ k in nullable_fields
98
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
99
+ )
100
+
101
+ if val != UNSET_SENTINEL:
102
+ if (
103
+ val is not None
104
+ or k not in optional_fields
105
+ or is_nullable_and_explicitly_set
106
+ ):
107
+ m[k] = val
113
108
 
114
109
  return m
@@ -70,30 +70,25 @@ class FolderDetails(BaseModel):
70
70
 
71
71
  @model_serializer(mode="wrap")
72
72
  def serialize_model(self, handler):
73
- optional_fields = ["label", "description", "created_at", "updated_at"]
74
- nullable_fields = ["label", "description"]
75
- null_default_fields = []
76
-
73
+ optional_fields = set(["label", "description", "created_at", "updated_at"])
74
+ nullable_fields = set(["label", "description"])
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
@@ -35,30 +35,25 @@ class GetBridgePhrasesConfigRequest(BaseModel):
35
35
 
36
36
  @model_serializer(mode="wrap")
37
37
  def serialize_model(self, handler):
38
- optional_fields = ["agent_id", "tool_name"]
39
- nullable_fields = ["agent_id", "tool_name"]
40
- null_default_fields = []
41
-
38
+ optional_fields = set(["agent_id", "tool_name"])
39
+ nullable_fields = set(["agent_id", "tool_name"])
42
40
  serialized = handler(self)
43
-
44
41
  m = {}
45
42
 
46
43
  for n, f in type(self).model_fields.items():
47
44
  k = f.alias or n
48
45
  val = serialized.get(k)
49
- serialized.pop(k, None)
50
-
51
- optional_nullable = k in optional_fields and k in nullable_fields
52
- is_set = (
53
- self.__pydantic_fields_set__.intersection({n})
54
- or k in null_default_fields
55
- ) # pylint: disable=no-member
56
-
57
- if val is not None and val != UNSET_SENTINEL:
58
- m[k] = val
59
- elif val != UNSET_SENTINEL and (
60
- not k in optional_fields or (optional_nullable and is_set)
61
- ):
62
- m[k] = val
46
+ is_nullable_and_explicitly_set = (
47
+ k in nullable_fields
48
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
49
+ )
50
+
51
+ if val != UNSET_SENTINEL:
52
+ if (
53
+ val is not None
54
+ or k not in optional_fields
55
+ or is_nullable_and_explicitly_set
56
+ ):
57
+ m[k] = val
63
58
 
64
59
  return m
@@ -122,30 +122,27 @@ class GetValueAction(BaseModel):
122
122
 
123
123
  @model_serializer(mode="wrap")
124
124
  def serialize_model(self, handler):
125
- optional_fields = ["value", "value_from", "if", "action", "inputs", "overwrite"]
126
- nullable_fields = ["value", "value_from", "if", "inputs"]
127
- null_default_fields = []
128
-
125
+ optional_fields = set(
126
+ ["value", "value_from", "if", "action", "inputs", "overwrite"]
127
+ )
128
+ nullable_fields = set(["value", "value_from", "if", "inputs"])
129
129
  serialized = handler(self)
130
-
131
130
  m = {}
132
131
 
133
132
  for n, f in type(self).model_fields.items():
134
133
  k = f.alias or n
135
134
  val = serialized.get(k)
136
- serialized.pop(k, None)
137
-
138
- optional_nullable = k in optional_fields and k in nullable_fields
139
- is_set = (
140
- self.__pydantic_fields_set__.intersection({n})
141
- or k in null_default_fields
142
- ) # pylint: disable=no-member
143
-
144
- if val is not None and val != UNSET_SENTINEL:
145
- m[k] = val
146
- elif val != UNSET_SENTINEL and (
147
- not k in optional_fields or (optional_nullable and is_set)
148
- ):
149
- m[k] = val
135
+ is_nullable_and_explicitly_set = (
136
+ k in nullable_fields
137
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
138
+ )
139
+
140
+ if val != UNSET_SENTINEL:
141
+ if (
142
+ val is not None
143
+ or k not in optional_fields
144
+ or is_nullable_and_explicitly_set
145
+ ):
146
+ m[k] = val
150
147
 
151
148
  return m
@@ -94,47 +94,46 @@ class IncidentListRequest(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
@@ -74,30 +74,29 @@ class IncidentCreateRequest(BaseModel):
74
74
 
75
75
  @model_serializer(mode="wrap")
76
76
  def serialize_model(self, handler):
77
- optional_fields = ["organization_id", "sub_organization_id", "sub_organization"]
78
- nullable_fields = ["organization_id", "sub_organization_id", "sub_organization"]
79
- null_default_fields = []
80
-
77
+ optional_fields = set(
78
+ ["organization_id", "sub_organization_id", "sub_organization"]
79
+ )
80
+ nullable_fields = set(
81
+ ["organization_id", "sub_organization_id", "sub_organization"]
82
+ )
81
83
  serialized = handler(self)
82
-
83
84
  m = {}
84
85
 
85
86
  for n, f in type(self).model_fields.items():
86
87
  k = f.alias or n
87
88
  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
89
+ is_nullable_and_explicitly_set = (
90
+ k in nullable_fields
91
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
92
+ )
93
+
94
+ if val != UNSET_SENTINEL:
95
+ if (
96
+ val is not None
97
+ or k not in optional_fields
98
+ or is_nullable_and_explicitly_set
99
+ ):
100
+ m[k] = val
102
101
 
103
102
  return m
@@ -94,43 +94,42 @@ class IncidentResponse(BaseModel):
94
94
 
95
95
  @model_serializer(mode="wrap")
96
96
  def serialize_model(self, handler):
97
- optional_fields = [
98
- "organization_id",
99
- "sub_organization_id",
100
- "sub_organization",
101
- "created_at",
102
- "updated_at",
103
- ]
104
- nullable_fields = [
105
- "organization_id",
106
- "sub_organization_id",
107
- "sub_organization",
108
- "created_at",
109
- "updated_at",
110
- "last_updated_by",
111
- ]
112
- null_default_fields = []
113
-
97
+ optional_fields = set(
98
+ [
99
+ "organization_id",
100
+ "sub_organization_id",
101
+ "sub_organization",
102
+ "created_at",
103
+ "updated_at",
104
+ ]
105
+ )
106
+ nullable_fields = set(
107
+ [
108
+ "organization_id",
109
+ "sub_organization_id",
110
+ "sub_organization",
111
+ "created_at",
112
+ "updated_at",
113
+ "last_updated_by",
114
+ ]
115
+ )
114
116
  serialized = handler(self)
115
-
116
117
  m = {}
117
118
 
118
119
  for n, f in type(self).model_fields.items():
119
120
  k = f.alias or n
120
121
  val = serialized.get(k)
121
- serialized.pop(k, None)
122
-
123
- optional_nullable = k in optional_fields and k in nullable_fields
124
- is_set = (
125
- self.__pydantic_fields_set__.intersection({n})
126
- or k in null_default_fields
127
- ) # pylint: disable=no-member
128
-
129
- if val is not None and val != UNSET_SENTINEL:
130
- m[k] = val
131
- elif val != UNSET_SENTINEL and (
132
- not k in optional_fields or (optional_nullable and is_set)
133
- ):
134
- 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
135
134
 
136
135
  return m
@@ -79,30 +79,29 @@ class IncidentUpdateRequest(BaseModel):
79
79
 
80
80
  @model_serializer(mode="wrap")
81
81
  def serialize_model(self, handler):
82
- optional_fields = ["organization_id", "sub_organization_id", "sub_organization"]
83
- nullable_fields = ["organization_id", "sub_organization_id", "sub_organization"]
84
- null_default_fields = []
85
-
82
+ optional_fields = set(
83
+ ["organization_id", "sub_organization_id", "sub_organization"]
84
+ )
85
+ nullable_fields = set(
86
+ ["organization_id", "sub_organization_id", "sub_organization"]
87
+ )
86
88
  serialized = handler(self)
87
-
88
89
  m = {}
89
90
 
90
91
  for n, f in type(self).model_fields.items():
91
92
  k = f.alias or n
92
93
  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
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
107
106
 
108
107
  return m
@@ -77,30 +77,25 @@ class IncrementAction(BaseModel):
77
77
 
78
78
  @model_serializer(mode="wrap")
79
79
  def serialize_model(self, handler):
80
- optional_fields = ["if", "action", "by"]
81
- nullable_fields = ["if"]
82
- null_default_fields = []
83
-
80
+ optional_fields = set(["if", "action", "by"])
81
+ nullable_fields = set(["if"])
84
82
  serialized = handler(self)
85
-
86
83
  m = {}
87
84
 
88
85
  for n, f in type(self).model_fields.items():
89
86
  k = f.alias or n
90
87
  val = serialized.get(k)
91
- serialized.pop(k, None)
92
-
93
- optional_nullable = k in optional_fields and k in nullable_fields
94
- is_set = (
95
- self.__pydantic_fields_set__.intersection({n})
96
- or k in null_default_fields
97
- ) # pylint: disable=no-member
98
-
99
- if val is not None and val != UNSET_SENTINEL:
100
- m[k] = val
101
- elif val != UNSET_SENTINEL and (
102
- not k in optional_fields or (optional_nullable and is_set)
103
- ):
104
- m[k] = val
88
+ is_nullable_and_explicitly_set = (
89
+ k in nullable_fields
90
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
91
+ )
92
+
93
+ if val != UNSET_SENTINEL:
94
+ if (
95
+ val is not None
96
+ or k not in optional_fields
97
+ or is_nullable_and_explicitly_set
98
+ ):
99
+ m[k] = val
105
100
 
106
101
  return m
@@ -60,47 +60,38 @@ class InputParameter(BaseModel):
60
60
 
61
61
  @model_serializer(mode="wrap")
62
62
  def serialize_model(self, handler):
63
- optional_fields = [
64
- "type",
65
- "description",
66
- "title",
67
- "format",
68
- "pattern",
69
- "enum",
70
- "examples",
71
- "required",
72
- ]
73
- nullable_fields = [
74
- "type",
75
- "description",
76
- "title",
77
- "format",
78
- "pattern",
79
- "enum",
80
- "examples",
81
- ]
82
- null_default_fields = []
83
-
63
+ optional_fields = set(
64
+ [
65
+ "type",
66
+ "description",
67
+ "title",
68
+ "format",
69
+ "pattern",
70
+ "enum",
71
+ "examples",
72
+ "required",
73
+ ]
74
+ )
75
+ nullable_fields = set(
76
+ ["type", "description", "title", "format", "pattern", "enum", "examples"]
77
+ )
84
78
  serialized = handler(self)
85
-
86
79
  m = {}
87
80
 
88
81
  for n, f in type(self).model_fields.items():
89
82
  k = f.alias or n
90
83
  val = serialized.get(k)
91
- serialized.pop(k, None)
92
-
93
- optional_nullable = k in optional_fields and k in nullable_fields
94
- is_set = (
95
- self.__pydantic_fields_set__.intersection({n})
96
- or k in null_default_fields
97
- ) # pylint: disable=no-member
98
-
99
- if val is not None and val != UNSET_SENTINEL:
100
- m[k] = val
101
- elif val != UNSET_SENTINEL and (
102
- not k in optional_fields or (optional_nullable and is_set)
103
- ):
104
- m[k] = val
84
+ is_nullable_and_explicitly_set = (
85
+ k in nullable_fields
86
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
87
+ )
88
+
89
+ if val != UNSET_SENTINEL:
90
+ if (
91
+ val is not None
92
+ or k not in optional_fields
93
+ or is_nullable_and_explicitly_set
94
+ ):
95
+ m[k] = val
105
96
 
106
97
  return m