create method

Future<TestMatrix> create(
  1. TestMatrix request,
  2. String projectId, {
  3. String? requestId,
  4. String? $fields,
})

Creates and runs a matrix of tests according to the given specifications.

Unsupported environments will be returned in the state UNSUPPORTED. A test matrix is limited to use at most 2000 devices in parallel. The returned matrix will not yet contain the executions that will be created for this matrix. Execution creation happens later on and will require a call to GetTestMatrix. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed or if the matrix tries to use too many simultaneous devices.

request - The metadata request object.

Request parameters:

projectId - The GCE project under which this job will run.

requestId - A string id used to detect duplicated requests. Ids are automatically scoped to a project, so users should ensure the ID is unique per-project. A UUID is recommended. Optional, but strongly recommended.

$fields - Selector specifying which fields to include in a partial response.

Completes with a TestMatrix.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<TestMatrix> create(
  TestMatrix request,
  core.String projectId, {
  core.String? requestId,
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if (requestId != null) 'requestId': [requestId],
    if ($fields != null) 'fields': [$fields],
  };

  final url_ =
      'v1/projects/' + commons.escapeVariable('$projectId') + '/testMatrices';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return TestMatrix.fromJson(
      response_ as core.Map<core.String, core.dynamic>);
}