createCustomMetric method
Use this API to define a Custom Metric published by your devices to Device Defender.
Requires permission to access the CreateCustomMetric action.
May throw InternalFailureException.
May throw InvalidRequestException.
May throw LimitExceededException.
May throw ResourceAlreadyExistsException.
May throw ThrottlingException.
Parameter metricName :
The name of the custom metric. This will be used in the metric report
submitted from the device/thing. The name can't begin with
aws:. You can't change the name after you define it.
Parameter metricType :
The type of the custom metric.
Parameter clientRequestToken :
Each custom metric must have a unique client request token. If you try to
create a new custom metric that already exists with a different token, an
exception occurs. If you omit this value, Amazon Web Services SDKs will
automatically generate a unique client request.
Parameter displayName :
The friendly name in the console for the custom metric. This name doesn't
have to be unique. Don't use this name as the metric identifier in the
device metric report. You can update the friendly name after you define
it.
Parameter tags :
Metadata that can be used to manage the custom metric.
Implementation
Future<CreateCustomMetricResponse> createCustomMetric({
required String metricName,
required CustomMetricType metricType,
String? clientRequestToken,
String? displayName,
List<Tag>? tags,
}) async {
final $payload = <String, dynamic>{
'metricType': metricType.value,
'clientRequestToken': clientRequestToken ?? _s.generateIdempotencyToken(),
if (displayName != null) 'displayName': displayName,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/custom-metric/${Uri.encodeComponent(metricName)}',
exceptionFnMap: _exceptionFns,
);
return CreateCustomMetricResponse.fromJson(response);
}