@@ -461,6 +461,92 @@ async def list_roles(self):
461461 """
462462 return await self .get ("custom_role" )
463463
464+ async def create_segment (self , segment ):
465+ """
466+ Create a segment
467+ """
468+ return await self .post ("segments" , data = {"segment" : segment })
469+
470+ async def get_segment (self , segment_id ):
471+ """
472+ Get a segment by id
473+ """
474+ return await self .get (f"segments/{ segment_id } " )
475+
476+ async def list_segments (self , ** params ):
477+ """
478+ List segments
479+ """
480+ return await self .get ("segments" , params )
481+
482+ async def update_segment (self , segment_id , data ):
483+ """
484+ Update a segment by id
485+ """
486+ return await self .put (f"segments/{ segment_id } " , data = {"segment" : data })
487+
488+ async def delete_segment (self , segment_id ):
489+ """
490+ Delete a segment by id
491+ """
492+ return await self .delete (f"segments/{ segment_id } " )
493+
494+ async def create_campaign (self , campaign ):
495+ """
496+ Create a campaign
497+ """
498+ return await self .post ("campaigns" , data = {"campaign" : campaign })
499+
500+ async def get_campaign (self , campaign_id ):
501+ """
502+ Get a campaign by id
503+ """
504+ return await self .get (f"campaigns/{ campaign_id } " )
505+
506+ async def list_campaigns (self , ** params ):
507+ """
508+ List campaigns
509+ """
510+ return await self .get ("campaigns/" , params )
511+
512+ async def update_campaign (self , campaign_id , data ):
513+ """
514+ Update a campaign
515+ """
516+ return await self .put (f"campaigns/{ campaign_id } " , data = {"campaign" : data })
517+
518+ async def delete_campaign (self , campaign_id ):
519+ """
520+ Delete a campaign by id
521+ """
522+ return await self .delete (f"campaigns/{ campaign_id } " )
523+
524+ async def schedule_campaign (self , campaign_id , send_at ):
525+ """
526+ Schedule a campaign at given time
527+ """
528+ return await self .patch (
529+ f"campaigns/{ campaign_id } /schedule" , data = {"send_at" : send_at }
530+ )
531+
532+ async def stop_campaign (self , campaign_id ):
533+ """
534+ Stop a in progress campaign
535+ """
536+ return await self .patch (f"campaigns/{ campaign_id } /stop" )
537+
538+ async def resume_campaign (self , campaign_id ):
539+ """
540+ Resume a stopped campaign
541+ """
542+ return await self .patch (f"campaigns/{ campaign_id } /resume" )
543+
544+ async def test_campaign (self , campaign_id , users ):
545+ """
546+ Trigger a test send of the given campaing to given users
547+ """
548+ return await self .post (f"campaigns/{ campaign_id } /test" , data = {"users" : users })
549+
464550 async def revoke_tokens (self , before ):
465551 """
466552 Revokes tokens for an application
0 commit comments