import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class MetricDimension { ComparisonOperator ? : Value < string > ; Value ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Schedule { TimeZone ? : Value < string > ; QuietTime ? : QuietTime ; EndTime ? : Value < string > ; StartTime ? : Value < string > ; Frequency ? : Value < string > ; EventFilter ? : CampaignEventFilter ; IsLocalTime ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class QuietTime { Start ! : Value < string > ; End ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Message { JsonBody ? : Value < string > ; Action ? : Value < string > ; MediaUrl ? : Value < string > ; TimeToLive ? : Value < number > ; ImageSmallIconUrl ? : Value < string > ; ImageUrl ? : Value < string > ; Title ? : Value < string > ; ImageIconUrl ? : Value < string > ; SilentPush ? : Value < boolean > ; Body ? : Value < string > ; RawContent ? : Value < string > ; Url ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CampaignEventFilter { FilterType ? : Value < string > ; Dimensions ? : EventDimensions ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CampaignSmsMessage { EntityId ? : Value < string > ; OriginationNumber ? : Value < string > ; SenderId ? : Value < string > ; Body ? : Value < string > ; MessageType ? : Value < string > ; TemplateId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class WriteTreatmentResource { TreatmentDescription ? : Value < string > ; MessageConfiguration ? : MessageConfiguration ; Schedule ? : Schedule ; SizePercent ? : Value < number > ; TreatmentName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SetDimension { DimensionType ? : Value < string > ; Values ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EventDimensions { Metrics ? : { [ key ] : any ; } ; EventType ? : SetDimension ; Attributes ? : { [ key ] : any ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Limits { Daily ? : Value < number > ; MaximumDuration ? : Value < number > ; Total ? : Value < number > ; MessagesPerSecond ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AttributeDimension { AttributeType ? : Value < string > ; Values ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MessageConfiguration { APNSMessage ? : Message ; BaiduMessage ? : Message ; DefaultMessage ? : Message ; EmailMessage ? : CampaignEmailMessage ; GCMMessage ? : Message ; SMSMessage ? : CampaignSmsMessage ; ADMMessage ? : Message ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CampaignHook { Mode ? : Value < string > ; WebUrl ? : Value < string > ; LambdaFunctionName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CampaignEmailMessage { FromAddress ? : Value < string > ; HtmlBody ? : Value < string > ; Title ? : Value < string > ; Body ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface CampaignProperties { Description ? : Value < string > ; SegmentId : Value < string > ; IsPaused ? : Value < boolean > ; AdditionalTreatments ? : List < WriteTreatmentResource > ; Name : Value < string > ; SegmentVersion ? : Value < number > ; TreatmentDescription ? : Value < string > ; MessageConfiguration : MessageConfiguration ; Limits ? : Limits ; HoldoutPercent ? : Value < number > ; Schedule : Schedule ; ApplicationId : Value < string > ; CampaignHook ? : CampaignHook ; Tags ? : { [ key ] : any ; } ; TreatmentName ? : Value < string > ; } export default class Campaign extends ResourceBase < CampaignProperties > { static MetricDimension = MetricDimension ; static Schedule = Schedule ; static QuietTime = QuietTime ; static Message = Message ; static CampaignEventFilter = CampaignEventFilter ; static CampaignSmsMessage = CampaignSmsMessage ; static WriteTreatmentResource = WriteTreatmentResource ; static SetDimension = SetDimension ; static EventDimensions = EventDimensions ; static Limits = Limits ; static AttributeDimension = AttributeDimension ; static MessageConfiguration = MessageConfiguration ; static CampaignHook = CampaignHook ; static CampaignEmailMessage = CampaignEmailMessage ; constructor ( properties ) { super ( 'AWS::Pinpoint::Campaign' , properties ) ; } }