/* 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 ParentComponentType = string; export type RequiredProperty = string; export type PropertyName = string; /** * Resource schema for AWS::IoTTwinMaker::ComponentType */ export interface AwsIottwinmakerComponenttype { /** * The ID of the workspace that contains the component type. */ WorkspaceId: string; /** * The ID of the component type. */ ComponentTypeId: string; /** * The description of the component type. */ Description?: string; /** * Specifies the parent component type to extend. * * @minItems 1 * @maxItems 256 */ ExtendsFrom?: [ParentComponentType, ...ParentComponentType[]]; /** * a Map of functions in the component type. Each function's key must be unique to this map. */ Functions?: { [k: string]: Function; }; /** * A Boolean value that specifies whether an entity can have more than one component of this type. * * */ IsSingleton?: boolean; /** * An map of the property definitions in the component type. Each property definition's key must be unique to this map. */ PropertyDefinitions?: { [k: string]: PropertyDefinition; }; /** * An map of the property groups in the component type. Each property group's key must be unique to this map. */ PropertyGroups?: { [k: string]: PropertyGroup; }; /** * The ARN of the component type. */ Arn?: string; /** * The date and time when the component type was created. */ CreationDateTime?: string; /** * The last date and time when the component type was updated. */ UpdateDateTime?: string; Status?: Status; /** * A Boolean value that specifies whether the component type is abstract. */ IsAbstract?: boolean; /** * A Boolean value that specifies whether the component type has a schema initializer and that the schema initializer has run. */ IsSchemaInitialized?: boolean; /** * A map of key-value pairs to associate with a resource. */ Tags?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$". */ [k: string]: string; }; } /** * The function of component type. * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z_\-0-9]+". */ export interface Function { ImplementedBy?: DataConnector; /** * The required properties of the function. * * @minItems 1 * @maxItems 256 */ RequiredProperties?: [RequiredProperty, ...RequiredProperty[]]; /** * The scope of the function. */ Scope?: "ENTITY" | "WORKSPACE"; } /** * The data connector. */ export interface DataConnector { /** * A Boolean value that specifies whether the data connector is native to IoT TwinMaker. */ IsNative?: boolean; Lambda?: LambdaFunction; } /** * The Lambda function associated with this data connector. */ export interface LambdaFunction { Arn: string; } /** * An object that sets information about a property. * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z_\-0-9]+". */ export interface PropertyDefinition { /** * An object that specifies information about a property. */ Configurations?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z_\-0-9]+". */ [k: string]: string; }; DataType?: DataType; DefaultValue?: DataValue1; /** * A Boolean value that specifies whether the property ID comes from an external data store. */ IsExternalId?: boolean; /** * A Boolean value that specifies whether the property is required. */ IsRequiredInEntity?: boolean; /** * A Boolean value that specifies whether the property is stored externally. */ IsStoredExternally?: boolean; /** * A Boolean value that specifies whether the property consists of time series data. */ IsTimeSeries?: boolean; } /** * An object that contains information about the data type. */ export interface DataType { /** * The allowed values for this data type. * * @minItems 0 * @maxItems 50 */ AllowedValues?: DataValue[]; NestedType?: DataType1; Relationship?: Relationship; /** * The underlying type of the data type. */ Type: "RELATIONSHIP" | "STRING" | "LONG" | "BOOLEAN" | "INTEGER" | "DOUBLE" | "LIST" | "MAP"; /** * The unit of measure used in this data type. */ UnitOfMeasure?: string; } /** * An object that specifies a value for a property. */ export interface DataValue { /** * A Boolean value. */ BooleanValue?: boolean; /** * A double value. */ DoubleValue?: number; /** * An expression that produces the value. */ Expression?: string; /** * An integer value. */ IntegerValue?: number; /** * A list of multiple values. * * @minItems 0 * @maxItems 50 */ ListValue?: DataValue[]; /** * A long value. */ LongValue?: number; /** * A string value. */ StringValue?: string; /** * An object that maps strings to multiple DataValue objects. * * */ MapValue?: { [k: string]: DataValue; }; /** * A value that relates a component to another component. */ RelationshipValue?: { TargetComponentName?: string; TargetEntityId?: string; }; } /** * The nested type in the data type. */ export interface DataType1 { /** * The allowed values for this data type. * * @minItems 0 * @maxItems 50 */ AllowedValues?: DataValue[]; NestedType?: DataType1; Relationship?: Relationship; /** * The underlying type of the data type. */ Type: "RELATIONSHIP" | "STRING" | "LONG" | "BOOLEAN" | "INTEGER" | "DOUBLE" | "LIST" | "MAP"; /** * The unit of measure used in this data type. */ UnitOfMeasure?: string; } /** * A relationship that associates a component with another component. */ export interface Relationship { /** * The type of the relationship. */ RelationshipType?: string; /** * The ID of the target component type associated with this relationship. */ TargetComponentTypeId?: string; } /** * An object that specifies a value for a property. */ export interface DataValue1 { /** * A Boolean value. */ BooleanValue?: boolean; /** * A double value. */ DoubleValue?: number; /** * An expression that produces the value. */ Expression?: string; /** * An integer value. */ IntegerValue?: number; /** * A list of multiple values. * * @minItems 0 * @maxItems 50 */ ListValue?: DataValue[]; /** * A long value. */ LongValue?: number; /** * A string value. */ StringValue?: string; /** * An object that maps strings to multiple DataValue objects. * * */ MapValue?: { [k: string]: DataValue; }; /** * A value that relates a component to another component. */ RelationshipValue?: { TargetComponentName?: string; TargetEntityId?: string; }; } /** * An object that sets information about a property group. * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z_\-0-9]+". */ export interface PropertyGroup { /** * The type of property group. */ GroupType?: "TABULAR"; /** * The list of property names in the property group. * * @minItems 1 * @maxItems 256 */ PropertyNames?: [PropertyName, ...PropertyName[]]; } /** * The current status of the component type. */ export interface Status { State?: "CREATING" | "UPDATING" | "DELETING" | "ACTIVE" | "ERROR"; Error?: | {} | { Message?: string; Code?: "VALIDATION_ERROR" | "INTERNAL_FAILURE"; }; }