import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Subscription { Endpoint ! : Value < string > ; Protocol ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface TopicProperties { ContentBasedDeduplication ? : Value < boolean > ; DisplayName ? : Value < string > ; FifoTopic ? : Value < boolean > ; KmsMasterKeyId ? : Value < string > ; Subscription ? : List < Subscription > ; Tags ? : List < ResourceTag > ; TopicName ? : Value < string > ; } export default class Topic extends ResourceBase < TopicProperties > { static Subscription = Subscription ; constructor ( properties ? ) { super ( 'AWS::SNS::Topic' , properties || { } ) ; } }