@@ -36,11 +36,13 @@ class ScheduleActivity:
3636 arguments : list [Any ]
3737 queue : str | None = None
3838
39- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
39+ def to_server_command (
40+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
41+ ) -> dict [str , Any ]:
4042 return {
4143 "type" : "schedule_activity" ,
4244 "activity_type" : self .activity_type ,
43- "arguments" : serializer .envelope (self .arguments ),
45+ "arguments" : serializer .envelope (self .arguments , codec = payload_codec ),
4446 "queue" : self .queue or task_queue ,
4547 }
4648
@@ -49,7 +51,9 @@ def to_server_command(self, task_queue: str) -> dict[str, Any]:
4951class StartTimer :
5052 delay_seconds : int
5153
52- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
54+ def to_server_command (
55+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
56+ ) -> dict [str , Any ]:
5357 return {
5458 "type" : "start_timer" ,
5559 "delay_seconds" : self .delay_seconds ,
@@ -60,10 +64,12 @@ def to_server_command(self, task_queue: str) -> dict[str, Any]:
6064class CompleteWorkflow :
6165 result : Any
6266
63- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
67+ def to_server_command (
68+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
69+ ) -> dict [str , Any ]:
6470 return {
6571 "type" : "complete_workflow" ,
66- "result" : serializer .envelope (self .result ),
72+ "result" : serializer .envelope (self .result , codec = payload_codec ),
6773 }
6874
6975
@@ -73,7 +79,9 @@ class FailWorkflow:
7379 exception_type : str | None = None
7480 non_retryable : bool = False
7581
76- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
82+ def to_server_command (
83+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
84+ ) -> dict [str , Any ]:
7785 cmd : dict [str , Any ] = {
7886 "type" : "fail_workflow" ,
7987 "message" : self .message ,
@@ -91,11 +99,13 @@ class ContinueAsNew:
9199 arguments : list [Any ] = field (default_factory = list )
92100 task_queue : str | None = None
93101
94- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
102+ def to_server_command (
103+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
104+ ) -> dict [str , Any ]:
95105 cmd : dict [str , Any ] = {"type" : "continue_as_new" }
96106 if self .workflow_type is not None :
97107 cmd ["workflow_type" ] = self .workflow_type
98- cmd ["arguments" ] = serializer .envelope (self .arguments )
108+ cmd ["arguments" ] = serializer .envelope (self .arguments , codec = payload_codec )
99109 cmd ["queue" ] = self .task_queue or task_queue
100110 return cmd
101111
@@ -104,10 +114,12 @@ def to_server_command(self, task_queue: str) -> dict[str, Any]:
104114class RecordSideEffect :
105115 result : Any
106116
107- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
117+ def to_server_command (
118+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
119+ ) -> dict [str , Any ]:
108120 return {
109121 "type" : "record_side_effect" ,
110- "result" : serializer .envelope (self .result ),
122+ "result" : serializer .encode (self .result , codec = payload_codec ),
111123 }
112124
113125
@@ -118,11 +130,13 @@ class StartChildWorkflow:
118130 task_queue : str | None = None
119131 parent_close_policy : str | None = None
120132
121- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
133+ def to_server_command (
134+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
135+ ) -> dict [str , Any ]:
122136 cmd : dict [str , Any ] = {
123137 "type" : "start_child_workflow" ,
124138 "workflow_type" : self .workflow_type ,
125- "arguments" : serializer .envelope (self .arguments ),
139+ "arguments" : serializer .envelope (self .arguments , codec = payload_codec ),
126140 }
127141 if self .task_queue is not None :
128142 cmd ["queue" ] = self .task_queue
@@ -140,7 +154,9 @@ class RecordVersionMarker:
140154 min_supported : int
141155 max_supported : int
142156
143- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
157+ def to_server_command (
158+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
159+ ) -> dict [str , Any ]:
144160 return {
145161 "type" : "record_version_marker" ,
146162 "change_id" : self .change_id ,
@@ -154,7 +170,9 @@ def to_server_command(self, task_queue: str) -> dict[str, Any]:
154170class UpsertSearchAttributes :
155171 attributes : dict [str , Any ]
156172
157- def to_server_command (self , task_queue : str ) -> dict [str , Any ]:
173+ def to_server_command (
174+ self , task_queue : str , * , payload_codec : str = serializer .AVRO_CODEC
175+ ) -> dict [str , Any ]:
158176 return {
159177 "type" : "upsert_search_attributes" ,
160178 "attributes" : self .attributes ,
0 commit comments