createWorkteam method

Future<CreateWorkteamResponse> createWorkteam({
  1. required String description,
  2. required List<MemberDefinition> memberDefinitions,
  3. required String workteamName,
  4. NotificationConfiguration? notificationConfiguration,
  5. List<Tag>? tags,
  6. String? workforceName,
})

Creates a new work team for labeling your data. A work team is defined by one or more Amazon Cognito user pools. You must first create the user pools before you can create a work team.

You cannot create more than 25 work teams in an account and region.

May throw ResourceInUse. May throw ResourceLimitExceeded.

Parameter description : A description of the work team.

Parameter memberDefinitions : A list of MemberDefinition objects that contains objects that identify the workers that make up the work team.

Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use CognitoMemberDefinition. For workforces created using your own OIDC identity provider (IdP) use OidcMemberDefinition. Do not provide input for both of these parameters in a single request.

For workforces created using Amazon Cognito, private work teams correspond to Amazon Cognito user groups within the user pool used to create a workforce. All of the CognitoMemberDefinition objects that make up the member definition must have the same ClientId and UserPool values. To add a Amazon Cognito user group to an existing worker pool, see Adding groups to a User Pool. For more information about user pools, see Amazon Cognito User Pools.

For workforces created using your own OIDC IdP, specify the user groups that you want to include in your private work team in OidcMemberDefinition by listing those groups in Groups.

Parameter workteamName : The name of the work team. Use this name to identify the work team.

Parameter notificationConfiguration : Configures notification of workers regarding available or expiring work items.

Parameter tags : An array of key-value pairs.

For more information, see Resource Tag and Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

Parameter workforceName : The name of the workforce.

Implementation

Future<CreateWorkteamResponse> createWorkteam({
  required String description,
  required List<MemberDefinition> memberDefinitions,
  required String workteamName,
  NotificationConfiguration? notificationConfiguration,
  List<Tag>? tags,
  String? workforceName,
}) async {
  ArgumentError.checkNotNull(description, 'description');
  _s.validateStringLength(
    'description',
    description,
    1,
    200,
    isRequired: true,
  );
  ArgumentError.checkNotNull(memberDefinitions, 'memberDefinitions');
  ArgumentError.checkNotNull(workteamName, 'workteamName');
  _s.validateStringLength(
    'workteamName',
    workteamName,
    1,
    63,
    isRequired: true,
  );
  _s.validateStringLength(
    'workforceName',
    workforceName,
    1,
    63,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SageMaker.CreateWorkteam'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Description': description,
      'MemberDefinitions': memberDefinitions,
      'WorkteamName': workteamName,
      if (notificationConfiguration != null)
        'NotificationConfiguration': notificationConfiguration,
      if (tags != null) 'Tags': tags,
      if (workforceName != null) 'WorkforceName': workforceName,
    },
  );

  return CreateWorkteamResponse.fromJson(jsonResponse.body);
}