createProject method

Future<CreateProjectOutput> createProject({
  1. required String projectName,
  2. required ServiceCatalogProvisioningDetails serviceCatalogProvisioningDetails,
  3. String? projectDescription,
  4. List<Tag>? tags,
})

Creates a machine learning (ML) project that can contain one or more templates that set up an ML pipeline from training to deploying an approved model.

May throw ResourceLimitExceeded.

Parameter projectName : The name of the project.

Parameter serviceCatalogProvisioningDetails : The product ID and provisioning artifact ID to provision a service catalog. For information, see What is AWS Service Catalog.

Parameter projectDescription : A description for the project.

Parameter tags : An array of key-value pairs that you want to use to organize and track your AWS resource costs. For more information, see Tagging AWS resources in the AWS General Reference Guide.

Implementation

Future<CreateProjectOutput> createProject({
  required String projectName,
  required ServiceCatalogProvisioningDetails
      serviceCatalogProvisioningDetails,
  String? projectDescription,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(projectName, 'projectName');
  _s.validateStringLength(
    'projectName',
    projectName,
    1,
    32,
    isRequired: true,
  );
  ArgumentError.checkNotNull(
      serviceCatalogProvisioningDetails, 'serviceCatalogProvisioningDetails');
  _s.validateStringLength(
    'projectDescription',
    projectDescription,
    0,
    1024,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SageMaker.CreateProject'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ProjectName': projectName,
      'ServiceCatalogProvisioningDetails': serviceCatalogProvisioningDetails,
      if (projectDescription != null)
        'ProjectDescription': projectDescription,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateProjectOutput.fromJson(jsonResponse.body);
}