createSystemInstance method
- required DefinitionDocument definition,
- required DeploymentTarget target,
- String? flowActionsRoleArn,
- String? greengrassGroupName,
- MetricsConfiguration? metricsConfiguration,
- String? s3BucketName,
- List<
Tag> ? tags,
Creates a system instance.
This action validates the system instance, prepares the deployment-related
resources. For Greengrass deployments, it updates the Greengrass group
that is specified by the greengrassGroupName
parameter. It
also adds a file to the S3 bucket specified by the
s3BucketName
parameter. You need to call
DeploySystemInstance
after running this action.
For Greengrass deployments, since this action modifies and adds resources to a Greengrass group and an S3 bucket on the caller's behalf, the calling identity must have write permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call will fail with an authorization error.
For cloud deployments, this action requires a
flowActionsRoleArn
value. This is an IAM role that has
permissions to access AWS services, such as AWS Lambda and AWS IoT, that
the flow uses when it executes.
If the definition document doesn't specify a version of the user's namespace, the latest version will be used by default.
May throw InvalidRequestException. May throw ResourceAlreadyExistsException. May throw ThrottlingException. May throw InternalFailureException. May throw LimitExceededException.
Parameter target
:
The target type of the deployment. Valid values are
GREENGRASS
and CLOUD
.
Parameter flowActionsRoleArn
:
The ARN of the IAM role that AWS IoT Things Graph will assume when it
executes the flow. This role must have read and write access to AWS Lambda
and AWS IoT and any other AWS services that the flow uses when it
executes. This value is required if the value of the target
parameter is CLOUD
.
Parameter greengrassGroupName
:
The name of the Greengrass group where the system instance will be
deployed. This value is required if the value of the target
parameter is GREENGRASS
.
Parameter s3BucketName
:
The name of the Amazon Simple Storage Service bucket that will be used to
store and deploy the system instance's resource file. This value is
required if the value of the target
parameter is
GREENGRASS
.
Parameter tags
:
Metadata, consisting of key-value pairs, that can be used to categorize
your system instances.
Implementation
Future<CreateSystemInstanceResponse> createSystemInstance({
required DefinitionDocument definition,
required DeploymentTarget target,
String? flowActionsRoleArn,
String? greengrassGroupName,
MetricsConfiguration? metricsConfiguration,
String? s3BucketName,
List<Tag>? tags,
}) async {
ArgumentError.checkNotNull(definition, 'definition');
ArgumentError.checkNotNull(target, 'target');
_s.validateStringLength(
'flowActionsRoleArn',
flowActionsRoleArn,
20,
2048,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'IotThingsGraphFrontEndService.CreateSystemInstance'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'definition': definition,
'target': target.toValue(),
if (flowActionsRoleArn != null)
'flowActionsRoleArn': flowActionsRoleArn,
if (greengrassGroupName != null)
'greengrassGroupName': greengrassGroupName,
if (metricsConfiguration != null)
'metricsConfiguration': metricsConfiguration,
if (s3BucketName != null) 's3BucketName': s3BucketName,
if (tags != null) 'tags': tags,
},
);
return CreateSystemInstanceResponse.fromJson(jsonResponse.body);
}