startJob method
Starts a new job for a branch of an Amplify app.
May throw BadRequestException. May throw UnauthorizedException. May throw InternalFailureException. May throw NotFoundException. May throw LimitExceededException.
Parameter appId
:
The unique ID for an Amplify app.
Parameter branchName
:
The branch name for the job.
Parameter jobType
:
Describes the type for the job. The job type RELEASE
starts a
new job with the latest change from the specified branch. This value is
available only for apps that are connected to a repository. The job type
RETRY
retries an existing job. If the job type value is
RETRY
, the jobId
is also required.
Parameter commitId
:
The commit ID from a third-party repository provider for the job.
Parameter commitMessage
:
The commit message from a third-party repository provider for the job.
Parameter commitTime
:
The commit date and time for the job.
Parameter jobId
:
The unique ID for an existing job. This is required if the value of
jobType
is RETRY
.
Parameter jobReason
:
A descriptive reason for starting this job.
Implementation
Future<StartJobResult> startJob({
required String appId,
required String branchName,
required JobType jobType,
String? commitId,
String? commitMessage,
DateTime? commitTime,
String? jobId,
String? jobReason,
}) async {
ArgumentError.checkNotNull(appId, 'appId');
_s.validateStringLength(
'appId',
appId,
1,
20,
isRequired: true,
);
ArgumentError.checkNotNull(branchName, 'branchName');
_s.validateStringLength(
'branchName',
branchName,
1,
255,
isRequired: true,
);
ArgumentError.checkNotNull(jobType, 'jobType');
_s.validateStringLength(
'commitId',
commitId,
0,
255,
);
_s.validateStringLength(
'commitMessage',
commitMessage,
0,
10000,
);
_s.validateStringLength(
'jobId',
jobId,
0,
255,
);
_s.validateStringLength(
'jobReason',
jobReason,
0,
255,
);
final $payload = <String, dynamic>{
'jobType': jobType.toValue(),
if (commitId != null) 'commitId': commitId,
if (commitMessage != null) 'commitMessage': commitMessage,
if (commitTime != null) 'commitTime': unixTimestampToJson(commitTime),
if (jobId != null) 'jobId': jobId,
if (jobReason != null) 'jobReason': jobReason,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri:
'/apps/${Uri.encodeComponent(appId)}/branches/${Uri.encodeComponent(branchName)}/jobs',
exceptionFnMap: _exceptionFns,
);
return StartJobResult.fromJson(response);
}