createTemplate method

Future<CreateTemplateResponse> createTemplate({
  1. required String awsAccountId,
  2. required String templateId,
  3. TemplateVersionDefinition? definition,
  4. String? name,
  5. List<ResourcePermission>? permissions,
  6. TemplateSourceEntity? sourceEntity,
  7. List<Tag>? tags,
  8. ValidationStrategy? validationStrategy,
  9. String? versionDescription,
})

Creates a template either from a TemplateDefinition or from an existing Quick Sight analysis or template. You can use the resulting template to create additional dashboards, templates, or analyses.

A template is an entity in Quick Sight 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 AccessDeniedException. May throw ConflictException. May throw InternalFailureException. May throw InvalidParameterValueException. May throw LimitExceededException. May throw ResourceExistsException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw UnsupportedUserEditionException.

Parameter awsAccountId : The ID for the Amazon Web Services account that the group is in. You use the ID for the Amazon Web Services account that contains your Amazon Quick Sight account.

Parameter templateId : An ID for the template that you want to create. This template is unique per Amazon Web Services Region; in each Amazon Web Services account.

Parameter definition : The definition of a template.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

Either a SourceEntity or a Definition must be provided in order for the request to be valid.

Parameter name : A display name for the template.

Parameter permissions : A list of resource permissions to be set on the template.

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 Amazon Web Services account and any Quick Sight-supported Amazon Web Services 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.

Either a SourceEntity or a Definition must be provided in order for the request to be valid.

Parameter tags : Contains a map of the key-value pairs for the resource tag or tags assigned to the resource.

Parameter validationStrategy : TThe option to relax the validation needed to create a template with definition objects. This skips the validation step for specific errors.

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 String templateId,
  TemplateVersionDefinition? definition,
  String? name,
  List<ResourcePermission>? permissions,
  TemplateSourceEntity? sourceEntity,
  List<Tag>? tags,
  ValidationStrategy? validationStrategy,
  String? versionDescription,
}) async {
  final $payload = <String, dynamic>{
    if (definition != null) 'Definition': definition,
    if (name != null) 'Name': name,
    if (permissions != null) 'Permissions': permissions,
    if (sourceEntity != null) 'SourceEntity': sourceEntity,
    if (tags != null) 'Tags': tags,
    if (validationStrategy != null) 'ValidationStrategy': validationStrategy,
    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);
}