import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class AttributeDimension { AttributeType ? : Value < string > ; Values ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Recency { Duration ! : Value < string > ; RecencyType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Groups { Type ? : Value < string > ; SourceType ? : Value < string > ; Dimensions ? : List < SegmentDimensions > ; SourceSegments ? : List < SourceSegments > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Location { GPSPoint ? : GPSPoint ; Country ? : SetDimension ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SegmentGroups { Groups ? : List < Groups > ; Include ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Coordinates { Latitude ! : Value < number > ; Longitude ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SegmentDimensions { Demographic ? : Demographic ; Metrics ? : { [ key ] : any ; } ; Attributes ? : { [ key ] : any ; } ; Behavior ? : Behavior ; UserAttributes ? : { [ key ] : any ; } ; Location ? : Location ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SourceSegments { Version ? : Value < number > ; Id ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GPSPoint { RangeInKilometers ! : Value < number > ; Coordinates ! : Coordinates ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Demographic { AppVersion ? : SetDimension ; DeviceType ? : SetDimension ; Platform ? : SetDimension ; Channel ? : SetDimension ; Model ? : SetDimension ; Make ? : SetDimension ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SetDimension { DimensionType ? : Value < string > ; Values ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Behavior { Recency ? : Recency ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface SegmentProperties { SegmentGroups ? : SegmentGroups ; Dimensions ? : SegmentDimensions ; ApplicationId : Value < string > ; Tags ? : { [ key ] : any ; } ; Name : Value < string > ; } export default class Segment extends ResourceBase < SegmentProperties > { static AttributeDimension = AttributeDimension ; static Recency = Recency ; static Groups = Groups ; static Location = Location ; static SegmentGroups = SegmentGroups ; static Coordinates = Coordinates ; static SegmentDimensions = SegmentDimensions ; static SourceSegments = SourceSegments ; static GPSPoint = GPSPoint ; static Demographic = Demographic ; static SetDimension = SetDimension ; static Behavior = Behavior ; constructor ( properties ) { super ( 'AWS::Pinpoint::Segment' , properties ) ; } }