createTemplate method
- required String awsAccountId,
- required TemplateSourceEntity sourceEntity,
- required String templateId,
- String? name,
- List<
ResourcePermission> ? permissions, - List<
Tag> ? tags, - String? versionDescription,
Creates a template from an existing QuickSight analysis or template. You can use the resulting template to create a dashboard.
A template is an entity in QuickSight that encapsulates the metadata required to create an analysis and that you can use to create s dashboard. A template adds a layer of abstraction by using placeholders to replace the dataset associated with the analysis. You can use templates to create dashboards by replacing dataset placeholders with datasets that follow the same schema that was used to create the source analysis and template.
May throw InvalidParameterValueException. May throw AccessDeniedException. May throw ResourceExistsException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw LimitExceededException. May throw UnsupportedUserEditionException. May throw ConflictException. May throw InternalFailureException.
Parameter awsAccountId
:
The ID for the AWS account that the group is in. Currently, you use the ID
for the AWS account that contains your Amazon QuickSight account.
Parameter sourceEntity
:
The entity that you are using as a source when you create the template. In
SourceEntity
, you specify the type of object you're using as
source: SourceTemplate
for a template or
SourceAnalysis
for an analysis. Both of these require an
Amazon Resource Name (ARN). For SourceTemplate
, specify the
ARN of the source template. For SourceAnalysis
, specify the
ARN of the source analysis. The SourceTemplate
ARN can
contain any AWS Account and any QuickSight-supported AWS Region.
Use the DataSetReferences
entity within
SourceTemplate
or SourceAnalysis
to list the
replacement datasets for the placeholders listed in the original. The
schema in each dataset must match its placeholder.
Parameter templateId
:
An ID for the template that you want to create. This template is unique
per AWS Region in each AWS account.
Parameter name
:
A display name for the template.
Parameter permissions
:
A list of resource permissions to be set on the template.
Parameter tags
:
Contains a map of the key-value pairs for the resource tag or tags
assigned to the resource.
Parameter versionDescription
:
A description of the current template version being created. This API
operation creates the first version of the template. Every time
UpdateTemplate
is called, a new version is created. Each
version of the template maintains a description of the version in the
VersionDescription
field.
Implementation
Future<CreateTemplateResponse> createTemplate({
required String awsAccountId,
required TemplateSourceEntity sourceEntity,
required String templateId,
String? name,
List<ResourcePermission>? permissions,
List<Tag>? tags,
String? versionDescription,
}) async {
ArgumentError.checkNotNull(awsAccountId, 'awsAccountId');
_s.validateStringLength(
'awsAccountId',
awsAccountId,
12,
12,
isRequired: true,
);
ArgumentError.checkNotNull(sourceEntity, 'sourceEntity');
ArgumentError.checkNotNull(templateId, 'templateId');
_s.validateStringLength(
'templateId',
templateId,
1,
2048,
isRequired: true,
);
_s.validateStringLength(
'name',
name,
1,
2048,
);
_s.validateStringLength(
'versionDescription',
versionDescription,
1,
512,
);
final $payload = <String, dynamic>{
'SourceEntity': sourceEntity,
if (name != null) 'Name': name,
if (permissions != null) 'Permissions': permissions,
if (tags != null) 'Tags': tags,
if (versionDescription != null) 'VersionDescription': versionDescription,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri:
'/accounts/${Uri.encodeComponent(awsAccountId)}/templates/${Uri.encodeComponent(templateId)}',
exceptionFnMap: _exceptionFns,
);
return CreateTemplateResponse.fromJson(response);
}