createAssistant method

Future<CreateAssistantResponse> createAssistant({
  1. required String name,
  2. required AssistantType type,
  3. String? clientToken,
  4. String? description,
  5. ServerSideEncryptionConfiguration? serverSideEncryptionConfiguration,
  6. Map<String, String>? tags,
})

Creates an Amazon Q in Connect assistant.

May throw AccessDeniedException. May throw ConflictException. May throw ServiceQuotaExceededException. May throw UnauthorizedException. May throw ValidationException.

Parameter name : The name of the assistant.

Parameter type : The type of assistant.

Parameter clientToken : A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

Parameter description : The description of the assistant.

Parameter serverSideEncryptionConfiguration : The configuration information for the customer managed key used for encryption.

The customer managed key must have a policy that allows kms:CreateGrant, kms:DescribeKey, kms:Decrypt, and kms:GenerateDataKey* permissions to the IAM identity using the key to invoke Amazon Q in Connect. To use Amazon Q in Connect with chat, the key policy must also allow kms:Decrypt, kms:GenerateDataKey*, and kms:DescribeKey permissions to the connect.amazonaws.com service principal.

For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance.

Parameter tags : The tags used to organize, track, or control access for this resource.

Implementation

Future<CreateAssistantResponse> createAssistant({
  required String name,
  required AssistantType type,
  String? clientToken,
  String? description,
  ServerSideEncryptionConfiguration? serverSideEncryptionConfiguration,
  Map<String, String>? tags,
}) async {
  final $payload = <String, dynamic>{
    'name': name,
    'type': type.value,
    'clientToken': clientToken ?? _s.generateIdempotencyToken(),
    if (description != null) 'description': description,
    if (serverSideEncryptionConfiguration != null)
      'serverSideEncryptionConfiguration': serverSideEncryptionConfiguration,
    if (tags != null) 'tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/assistants',
    exceptionFnMap: _exceptionFns,
  );
  return CreateAssistantResponse.fromJson(response);
}