createGroup method

Future<CreateGroupResult> createGroup({
  1. required String groupName,
  2. String? filterExpression,
  3. InsightsConfiguration? insightsConfiguration,
  4. List<Tag>? tags,
})

Creates a group resource with a name and a filter expression.

May throw InvalidRequestException. May throw ThrottledException.

Parameter groupName : The case-sensitive name of the new group. Default is a reserved name and names must be unique.

Parameter filterExpression : The filter expression defining criteria by which to group traces.

Parameter insightsConfiguration : The structure containing configurations related to insights.

  • The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group.
  • The NotifcationsEnabled boolean can be set to true to enable insights notifications for the new group. Notifications may only be enabled on a group with InsightsEnabled set to true.

Parameter tags : A map that contains one or more tag keys and tag values to attach to an X-Ray group. For more information about ways to use tags, see Tagging AWS resources in the AWS General Reference.

The following restrictions apply to tags:

  • Maximum number of user-applied tags per resource: 50
  • Maximum tag key length: 128 Unicode characters
  • Maximum tag value length: 256 Unicode characters
  • Valid values for key and value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and @
  • Tag keys and values are case sensitive.
  • Don't use aws: as a prefix for keys; it's reserved for AWS use.

Implementation

Future<CreateGroupResult> createGroup({
  required String groupName,
  String? filterExpression,
  InsightsConfiguration? insightsConfiguration,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(groupName, 'groupName');
  _s.validateStringLength(
    'groupName',
    groupName,
    1,
    32,
    isRequired: true,
  );
  final $payload = <String, dynamic>{
    'GroupName': groupName,
    if (filterExpression != null) 'FilterExpression': filterExpression,
    if (insightsConfiguration != null)
      'InsightsConfiguration': insightsConfiguration,
    if (tags != null) 'Tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/CreateGroup',
    exceptionFnMap: _exceptionFns,
  );
  return CreateGroupResult.fromJson(response);
}