@@ -2244,6 +2244,107 @@ async def calls_update(
22442244 )
22452245 return await self .api_call ("calls.update" , http_verb = "POST" , params = kwargs )
22462246
2247+ async def canvases_create (
2248+ self ,
2249+ * ,
2250+ title : Optional [str ] = None ,
2251+ document_content : Dict [str , str ],
2252+ ** kwargs ,
2253+ ) -> AsyncSlackResponse :
2254+ """Create Canvas for a user
2255+ https://api.slack.com/methods/canvases.create
2256+ """
2257+ kwargs .update ({"title" : title , "document_content" : json .dumps (document_content )})
2258+ return await self .api_call ("canvases.create" , params = kwargs )
2259+
2260+ async def canvases_edit (
2261+ self ,
2262+ * ,
2263+ canvas_id : str ,
2264+ changes : Sequence [Dict [str , Any ]],
2265+ ** kwargs ,
2266+ ) -> AsyncSlackResponse :
2267+ """Update an existing canvas
2268+ https://api.slack.com/methods/canvases.edit
2269+ """
2270+ kwargs .update ({"canvas_id" : canvas_id , "changes" : json .dumps (changes )})
2271+ return await self .api_call ("canvases.edit" , params = kwargs )
2272+
2273+ async def canvases_delete (
2274+ self ,
2275+ * ,
2276+ canvas_id : str ,
2277+ ** kwargs ,
2278+ ) -> AsyncSlackResponse :
2279+ """Deletes a canvas
2280+ https://api.slack.com/methods/canvases.delete
2281+ """
2282+ kwargs .update ({"canvas_id" : canvas_id })
2283+ return await self .api_call ("canvases.delete" , params = kwargs )
2284+
2285+ async def canvases_access_set (
2286+ self ,
2287+ * ,
2288+ canvas_id : str ,
2289+ access_level : str ,
2290+ channel_ids : Optional [Union [Sequence [str ], str ]] = None ,
2291+ user_ids : Optional [Union [Sequence [str ], str ]] = None ,
2292+ ** kwargs ,
2293+ ) -> AsyncSlackResponse :
2294+ """Sets the access level to a canvas for specified entities
2295+ https://api.slack.com/methods/canvases.access.set
2296+ """
2297+ kwargs .update ({"canvas_id" : canvas_id , "access_level" : access_level })
2298+ if channel_ids is not None :
2299+ if isinstance (channel_ids , (list , Tuple )):
2300+ kwargs .update ({"channel_ids" : "," .join (channel_ids )})
2301+ else :
2302+ kwargs .update ({"channel_ids" : channel_ids })
2303+ if user_ids is not None :
2304+ if isinstance (user_ids , (list , Tuple )):
2305+ kwargs .update ({"user_ids" : "," .join (user_ids )})
2306+ else :
2307+ kwargs .update ({"user_ids" : user_ids })
2308+
2309+ return await self .api_call ("canvases.access.set" , params = kwargs )
2310+
2311+ async def canvases_access_delete (
2312+ self ,
2313+ * ,
2314+ canvas_id : str ,
2315+ channel_ids : Optional [Union [Sequence [str ], str ]] = None ,
2316+ user_ids : Optional [Union [Sequence [str ], str ]] = None ,
2317+ ** kwargs ,
2318+ ) -> AsyncSlackResponse :
2319+ """Create a Channel Canvas for a channel
2320+ https://api.slack.com/methods/canvases.access.delete
2321+ """
2322+ kwargs .update ({"canvas_id" : canvas_id })
2323+ if channel_ids is not None :
2324+ if isinstance (channel_ids , (list , Tuple )):
2325+ kwargs .update ({"channel_ids" : "," .join (channel_ids )})
2326+ else :
2327+ kwargs .update ({"channel_ids" : channel_ids })
2328+ if user_ids is not None :
2329+ if isinstance (user_ids , (list , Tuple )):
2330+ kwargs .update ({"user_ids" : "," .join (user_ids )})
2331+ else :
2332+ kwargs .update ({"user_ids" : user_ids })
2333+ return await self .api_call ("canvases.access.delete" , params = kwargs )
2334+
2335+ async def canvases_sections_lookup (
2336+ self ,
2337+ * ,
2338+ canvas_id : str ,
2339+ criteria : Dict [str , Any ],
2340+ ** kwargs ,
2341+ ) -> AsyncSlackResponse :
2342+ """Find sections matching the provided criteria
2343+ https://api.slack.com/methods/canvases.sections.lookup
2344+ """
2345+ kwargs .update ({"canvas_id" : canvas_id , "criteria" : json .dumps (criteria )})
2346+ return await self .api_call ("canvases.sections.lookup" , params = kwargs )
2347+
22472348 # --------------------------
22482349 # Deprecated: channels.*
22492350 # You can use conversations.* APIs instead.
@@ -3113,6 +3214,19 @@ async def conversations_unarchive(
31133214 kwargs .update ({"channel" : channel })
31143215 return await self .api_call ("conversations.unarchive" , params = kwargs )
31153216
3217+ async def conversations_canvases_create (
3218+ self ,
3219+ * ,
3220+ channel_id : str ,
3221+ document_content : Dict [str , str ],
3222+ ** kwargs ,
3223+ ) -> AsyncSlackResponse :
3224+ """Create a Channel Canvas for a channel
3225+ https://api.slack.com/methods/conversations.canvases.create
3226+ """
3227+ kwargs .update ({"channel_id" : channel_id , "document_content" : json .dumps (document_content )})
3228+ return await self .api_call ("conversations.canvases.create" , params = kwargs )
3229+
31163230 async def dialog_open (
31173231 self ,
31183232 * ,
@@ -4931,6 +5045,17 @@ async def users_setPresence(
49315045 kwargs .update ({"presence" : presence })
49325046 return await self .api_call ("users.setPresence" , params = kwargs )
49335047
5048+ async def users_discoverableContacts_lookup (
5049+ self ,
5050+ email : str ,
5051+ ** kwargs ,
5052+ ) -> AsyncSlackResponse :
5053+ """Lookup an email address to see if someone is on Slack
5054+ https://api.slack.com/methods/users.discoverableContacts.lookup
5055+ """
5056+ kwargs .update ({"email" : email })
5057+ return await self .api_call ("users.discoverableContacts.lookup" , params = kwargs )
5058+
49345059 async def users_profile_get (
49355060 self ,
49365061 * ,
0 commit comments