/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ export type TypeName = "Measurement" | "Attribute" | "Transform" | "Metric"; /** * The time interval for the tumbling window. */ export type Interval = string; /** * The shift or reference point on timeline for the contiguous time intervals. */ export type Offset = string; /** * Resource schema for AWS::IoTSiteWise::AssetModel */ export interface AwsIotsitewiseAssetmodel { /** * The ID of the asset model. */ AssetModelId?: string; /** * The ARN of the asset model, which has the following format. */ AssetModelArn?: string; /** * A unique, friendly name for the asset model. */ AssetModelName: string; /** * A description for the asset model. */ AssetModelDescription?: string; /** * The property definitions of the asset model. You can specify up to 200 properties per asset model. */ AssetModelProperties?: AssetModelProperty[]; /** * The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. */ AssetModelCompositeModels?: AssetModelCompositeModel[]; /** * The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model. */ AssetModelHierarchies?: AssetModelHierarchy[]; /** * A list of key-value pairs that contain metadata for the asset model. */ Tags?: Tag[]; } /** * Contains information about an asset model property. */ export interface AssetModelProperty { /** * Customer provided ID for property. */ LogicalId: string; /** * The name of the asset model property. */ Name: string; /** * The data type of the asset model property. */ DataType: "STRING" | "INTEGER" | "DOUBLE" | "BOOLEAN" | "STRUCT"; /** * The data type of the structure for this property. */ DataTypeSpec?: "AWS/ALARM_STATE"; /** * The unit of the asset model property, such as Newtons or RPM. */ Unit?: string; Type: PropertyType; } /** * The property type */ export interface PropertyType { TypeName: TypeName; Attribute?: Attribute; Transform?: Transform; Metric?: Metric; } export interface Attribute { DefaultValue?: string; } export interface Transform { /** * The mathematical expression that defines the transformation function. You can specify up to 10 functions per expression. */ Expression: string; /** * The list of variables used in the expression. */ Variables: ExpressionVariable[]; } export interface ExpressionVariable { /** * The friendly name of the variable to be used in the expression. */ Name: string; Value: VariableValue; } /** * The variable that identifies an asset property from which to use values. */ export interface VariableValue { PropertyLogicalId: string; HierarchyLogicalId?: string; } export interface Metric { /** * The mathematical expression that defines the metric aggregation function. You can specify up to 10 functions per expression. */ Expression: string; /** * The list of variables used in the expression. */ Variables: ExpressionVariable[]; Window: MetricWindow; } /** * The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression */ export interface MetricWindow { Tumbling?: TumblingWindow; } /** * Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations. */ export interface TumblingWindow { Interval: Interval; Offset?: Offset; } /** * Contains a composite model definition in an asset model. This composite model definition is applied to all assets created from the asset model. */ export interface AssetModelCompositeModel { /** * A description for the asset composite model. */ Description?: string; /** * A unique, friendly name for the asset composite model. */ Name: string; /** * The type of the composite model. For alarm composite models, this type is AWS/ALARM */ Type: string; /** * The property definitions of the asset model. You can specify up to 200 properties per asset model. */ CompositeModelProperties?: AssetModelProperty[]; } /** * Contains information about an asset model hierarchy. */ export interface AssetModelHierarchy { /** * Customer provided ID for hierarchy. */ LogicalId: string; /** * The name of the asset model hierarchy. */ Name: string; /** * The ID of the asset model. All assets in this hierarchy must be instances of the child AssetModelId asset model. */ ChildAssetModelId: string; } export interface Tag { Key: string; Value: string; }