import { RpcMethod } from './commonTypes'; export type CampaignsService_Get = RpcMethod; export type CampaignsService_Create = RpcMethod; export type CampaignsService_Update = RpcMethod; export type CampaignsService_List = RpcMethod; export type CampaignsService_Delete = RpcMethod; export interface CampaignsService { /** Returns a single marketing campaign by its campaign code, including name, description and owning application code. Use to inspect one campaign after finding its code via list_campaigns. */ Get: CampaignsService_Get; /** Creates a new marketing campaign (name and optional description) under an application; each call yields a fresh campaign code. Use to add a campaign for grouping messages, not to edit one — use update_campaign for that. */ Create: CampaignsService_Create; /** Updates the name and/or description of an existing campaign identified by campaign code; unset fields are left unchanged. Repeating the call overwrites to the same values. */ Update: CampaignsService_Update; /** Lists an account's marketing campaigns, optionally scoped to one application code, with paging, free-text search and ordering. Excludes system and Customer Journey campaigns; use to browse campaigns or find a campaign code. */ List: CampaignsService_List; /** Permanently deletes a campaign by campaign code; fails if the campaign is still referenced by geozones or RSS feeds. Irreversible — the campaign record is removed. */ Delete: CampaignsService_Delete; } export type Campaign = { code: string; application: string; name: string; description: string; }; export type GetCampaignRequest = { /** Campaign code of the campaign to fetch. */ code?: string; }; export type GetCampaignResponse = { campaign: Campaign; }; export type CreateCampaignRequest = { /** Application code (format XXXXX-XXXXX) the campaign belongs to. */ application?: string; /** Campaign name (required, max 32 characters). */ name?: string; /** Optional campaign description (max 64 characters). */ description?: string; }; export type CreateCampaignResponse = { campaign: Campaign; }; export type UpdateCampaignRequest = { /** Campaign code of the campaign to update. */ code?: string; /** New campaign name (max 32 characters); omit to leave unchanged. */ name?: string; /** New campaign description (max 64 characters); omit to leave unchanged. */ description?: string; }; export type UpdateCampaignResponse = {}; export type ListCampaignsRequest_OrderBy = 'NAME' | 'CREATED'; export type ListCampaignsRequest_OrderDirection = 'ASC' | 'DESC'; export type ListCampaignsRequest = { /** Application code (format XXXXX-XXXXX) to scope the list to; leave empty for all applications in the account. */ application?: string; orderBy?: ListCampaignsRequest_OrderBy; orderDirection?: ListCampaignsRequest_OrderDirection; page?: number; perPage?: number; /** Free-text search over campaign name, description and code. */ search?: string; /** Restrict to these campaign codes. */ codes?: string[]; }; export type ListCampaignsResponse = { campaigns: Campaign[]; page: number; perPage: number; total: number; }; export type DeleteCampaignRequest = { /** Campaign code of the campaign to delete. */ code?: string; }; export type DeleteCampaignResponse = {};