createAssetModel method
- required String assetModelName,
- List<
AssetModelCompositeModelDefinition> ? assetModelCompositeModels, - String? assetModelDescription,
- String? assetModelExternalId,
- List<
AssetModelHierarchyDefinition> ? assetModelHierarchies, - String? assetModelId,
- List<
AssetModelPropertyDefinition> ? assetModelProperties, - AssetModelType? assetModelType,
- String? clientToken,
- Map<
String, String> ? tags,
Creates an asset model from specified property and hierarchy definitions. You create assets from asset models. With asset models, you can easily create assets of the same type that have standardized definitions. Each asset created from a model inherits the asset model's property and hierarchy definitions. For more information, see Defining asset models in the IoT SiteWise User Guide.
You can create three types of asset models, ASSET_MODEL,
COMPONENT_MODEL, or an INTERFACE.
- ASSET_MODEL – (default) An asset model that you can use to create assets. Can't be included as a component in another asset model.
- COMPONENT_MODEL – A reusable component that you can include in the composite models of other asset models. You can't create assets directly from this type of asset model.
- INTERFACE – An interface is a type of model that defines a standard structure that can be applied to different asset models.
May throw ConflictingOperationException.
May throw InternalFailureException.
May throw InvalidRequestException.
May throw LimitExceededException.
May throw ResourceAlreadyExistsException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
Parameter assetModelName :
A unique name for the asset model.
Parameter assetModelCompositeModels :
The composite models that are part of this asset model. It groups
properties (such as attributes, measurements, transforms, and metrics) and
child composite models that model parts of your industrial equipment. Each
composite model has a type that defines the properties that the composite
model supports. Use composite models to define alarms on this asset model.
Parameter assetModelDescription :
A description for the asset model.
Parameter assetModelExternalId :
An external ID to assign to the asset model. The external ID must be
unique within your Amazon Web Services account. For more information, see
Using
external IDs in the IoT SiteWise User Guide.
Parameter assetModelHierarchies :
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. For more information, see Asset
hierarchies in the IoT SiteWise User Guide.
You can specify up to 10 hierarchies per asset model. For more information, see Quotas in the IoT SiteWise User Guide.
Parameter assetModelId :
The ID to assign to the asset model, if desired. IoT SiteWise
automatically generates a unique ID for you, so this parameter is never
required. However, if you prefer to supply your own ID instead, you can
specify it here in UUID format. If you specify your own ID, it must be
globally unique.
Parameter assetModelProperties :
The property definitions of the asset model. For more information, see Asset
properties in the IoT SiteWise User Guide.
You can specify up to 200 properties per asset model. For more information, see Quotas in the IoT SiteWise User Guide.
Parameter assetModelType :
The type of asset model.
- ASSET_MODEL – (default) An asset model that you can use to create assets. Can't be included as a component in another asset model.
- COMPONENT_MODEL – A reusable component that you can include in the composite models of other asset models. You can't create assets directly from this type of asset model.
Parameter clientToken :
A unique case-sensitive identifier that you can provide to ensure the
idempotency of the request. Don't reuse this client token if a new
idempotent request is required.
Parameter tags :
A list of key-value pairs that contain metadata for the asset model. For
more information, see Tagging
your IoT SiteWise resources in the IoT SiteWise User Guide.
Implementation
Future<CreateAssetModelResponse> createAssetModel({
required String assetModelName,
List<AssetModelCompositeModelDefinition>? assetModelCompositeModels,
String? assetModelDescription,
String? assetModelExternalId,
List<AssetModelHierarchyDefinition>? assetModelHierarchies,
String? assetModelId,
List<AssetModelPropertyDefinition>? assetModelProperties,
AssetModelType? assetModelType,
String? clientToken,
Map<String, String>? tags,
}) async {
final $payload = <String, dynamic>{
'assetModelName': assetModelName,
if (assetModelCompositeModels != null)
'assetModelCompositeModels': assetModelCompositeModels,
if (assetModelDescription != null)
'assetModelDescription': assetModelDescription,
if (assetModelExternalId != null)
'assetModelExternalId': assetModelExternalId,
if (assetModelHierarchies != null)
'assetModelHierarchies': assetModelHierarchies,
if (assetModelId != null) 'assetModelId': assetModelId,
if (assetModelProperties != null)
'assetModelProperties': assetModelProperties,
if (assetModelType != null) 'assetModelType': assetModelType.value,
'clientToken': clientToken ?? _s.generateIdempotencyToken(),
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/asset-models',
exceptionFnMap: _exceptionFns,
);
return CreateAssetModelResponse.fromJson(response);
}