createGroup method

Future<CreateGroupOutput> createGroup({
  1. required String name,
  2. List<GroupConfigurationItem>? configuration,
  3. String? description,
  4. ResourceQuery? resourceQuery,
  5. Map<String, String>? tags,
})

Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration. For more information about constructing a resource query, see Create a tag-based group in Resource Groups. For more information about service configurations, see Service configurations for resource groups.

Minimum permissions

To run this command, you must have the following permissions:

  • resource-groups:CreateGroup

May throw BadRequestException. May throw ForbiddenException. May throw MethodNotAllowedException. May throw TooManyRequestsException. May throw InternalServerErrorException.

Parameter name : The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, numbers, hyphens, periods, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within each AWS Region in your AWS account.

Parameter configuration : A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of GroupConfigurationItem elements. For details about the syntax of service configurations, see Service configurations for resource groups.

Parameter description : The description of the resource group. Descriptions can consist of letters, numbers, hyphens, underscores, periods, and spaces.

Parameter resourceQuery : The resource query that determines which AWS resources are members of this group. For more information about resource queries, see Create a tag-based group in Resource Groups.

Parameter tags : The tags to add to the group. A tag is key-value pair string.

Implementation

Future<CreateGroupOutput> createGroup({
  required String name,
  List<GroupConfigurationItem>? configuration,
  String? description,
  ResourceQuery? resourceQuery,
  Map<String, String>? tags,
}) async {
  ArgumentError.checkNotNull(name, 'name');
  _s.validateStringLength(
    'name',
    name,
    1,
    128,
    isRequired: true,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    512,
  );
  final $payload = <String, dynamic>{
    'Name': name,
    if (configuration != null) 'Configuration': configuration,
    if (description != null) 'Description': description,
    if (resourceQuery != null) 'ResourceQuery': resourceQuery,
    if (tags != null) 'Tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/groups',
    exceptionFnMap: _exceptionFns,
  );
  return CreateGroupOutput.fromJson(response);
}