import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class AssetModelCompositeModel { Description ? : Value < string > ; Name ! : Value < string > ; Type ! : Value < string > ; CompositeModelProperties ? : List < AssetModelProperty > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MetricWindow { Tumbling ? : TumblingWindow ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TumblingWindow { Interval ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Attribute { DefaultValue ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ExpressionVariable { Name ! : Value < string > ; Value ! : VariableValue ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VariableValue { PropertyLogicalId ! : Value < string > ; HierarchyLogicalId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Transform { Expression ! : Value < string > ; Variables ! : List < ExpressionVariable > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AssetModelHierarchy { LogicalId ! : Value < string > ; Name ! : Value < string > ; ChildAssetModelId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Metric { Expression ! : Value < string > ; Variables ! : List < ExpressionVariable > ; Window ! : MetricWindow ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AssetModelProperty { LogicalId ! : Value < string > ; Name ! : Value < string > ; DataType ! : Value < string > ; DataTypeSpec ? : Value < string > ; Unit ? : Value < string > ; Type ! : PropertyType ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PropertyType { TypeName ! : Value < string > ; Attribute ? : Attribute ; Transform ? : Transform ; Metric ? : Metric ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface AssetModelProperties { AssetModelName : Value < string > ; AssetModelDescription ? : Value < string > ; AssetModelProperties ? : List < AssetModelProperty > ; AssetModelCompositeModels ? : List < AssetModelCompositeModel > ; AssetModelHierarchies ? : List < AssetModelHierarchy > ; Tags ? : List < ResourceTag > ; } export default class AssetModel extends ResourceBase < AssetModelProperties > { static AssetModelCompositeModel = AssetModelCompositeModel ; static MetricWindow = MetricWindow ; static TumblingWindow = TumblingWindow ; static Attribute = Attribute ; static ExpressionVariable = ExpressionVariable ; static VariableValue = VariableValue ; static Transform = Transform ; static AssetModelHierarchy = AssetModelHierarchy ; static Metric = Metric ; static AssetModelProperty = AssetModelProperty ; static PropertyType = PropertyType ; constructor ( properties ) { super ( 'AWS::IoTSiteWise::AssetModel' , properties ) ; } }