import { Value } from '../../../cloudformation/Value';
import { AttributeProps } from './AttributeProps';
import { MetricProps } from './MetricProps';
import { TransformProps } from './TransformProps';
/**
  Contains a property type, which can be one of <code>Attribute</code>, <code>Measurement</code>, <code>Metric</code>, or <code>Transform</code>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html">the AWS Docs</a>
*/
export interface PropertyTypeProps {
    /** <code>TypeName</code>  <a name="cfn-iotsitewise-assetmodel-propertytype-typename"></a>
  The type of property type, which can be one of <code>Attribute</code>, <code>Measurement</code>, <code>Metric</code>, or <code>Transform</code>.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    typeName: Value<string>;
    /** <code>Attribute</code>  <a name="cfn-iotsitewise-assetmodel-propertytype-attribute"></a>
  Specifies an asset attribute property. An attribute generally contains static information, such as the serial number of an <a href="https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications">industrial IoT</a> wind turbine.<br />
  This is required if the <code>TypeName</code> is <code>Attribute</code> and has a <code>DefaultValue</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    attribute?: AttributeProps;
    /** <code>Metric</code>  <a name="cfn-iotsitewise-assetmodel-propertytype-metric"></a>
  Specifies an asset metric property. A metric contains a mathematical expression that uses aggregate functions to process all input data points over a time interval and output a single data point, such as to calculate the average hourly temperature.<br />
  This is required if the <code>TypeName</code> is <code>Metric</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    metric?: MetricProps;
    /** <code>Transform</code>  <a name="cfn-iotsitewise-assetmodel-propertytype-transform"></a>
  Specifies an asset transform property. A transform contains a mathematical expression that maps a property’s data points from one form to another, such as a unit conversion from Celsius to Fahrenheit.<br />
  This is required if the <code>TypeName</code> is <code>Transform</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    transform?: TransformProps;
}
