deleteFile method

Future<DeleteFileOutput> deleteFile({
  1. required String branchName,
  2. required String filePath,
  3. required String parentCommitId,
  4. required String repositoryName,
  5. String? commitMessage,
  6. String? email,
  7. bool? keepEmptyFolders,
  8. String? name,
})

Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion.

May throw RepositoryNameRequiredException. May throw InvalidRepositoryNameException. May throw RepositoryDoesNotExistException. May throw ParentCommitIdRequiredException. May throw InvalidParentCommitIdException. May throw ParentCommitDoesNotExistException. May throw ParentCommitIdOutdatedException. May throw PathRequiredException. May throw InvalidPathException. May throw FileDoesNotExistException. May throw BranchNameRequiredException. May throw InvalidBranchNameException. May throw BranchDoesNotExistException. May throw BranchNameIsTagNameException. May throw NameLengthExceededException. May throw InvalidEmailException. May throw CommitMessageLengthExceededException. May throw EncryptionIntegrityChecksFailedException. May throw EncryptionKeyAccessDeniedException. May throw EncryptionKeyDisabledException. May throw EncryptionKeyNotFoundException. May throw EncryptionKeyUnavailableException.

Parameter branchName : The name of the branch where the commit that deletes the file is made.

Parameter filePath : The fully qualified path to the file that to be deleted, including the full name and extension of that file. For example, /examples/file.md is a fully qualified path to a file named file.md in a folder named examples.

Parameter parentCommitId : The ID of the commit that is the tip of the branch where you want to create the commit that deletes the file. This must be the HEAD commit for the branch. The commit that deletes the file is created from this commit ID.

Parameter repositoryName : The name of the repository that contains the file to delete.

Parameter commitMessage : The commit message you want to include as part of deleting the file. Commit messages are limited to 256 KB. If no message is specified, a default message is used.

Parameter email : The email address for the commit that deletes the file. If no email address is specified, the email address is left blank.

Parameter keepEmptyFolders : If a file is the only object in the folder or directory, specifies whether to delete the folder or directory that contains the file. By default, empty folders are deleted. This includes empty folders that are part of the directory structure. For example, if the path to a file is dir1/dir2/dir3/dir4, and dir2 and dir3 are empty, deleting the last file in dir4 also deletes the empty folders dir4, dir3, and dir2.

Parameter name : The name of the author of the commit that deletes the file. If no name is specified, the user's ARN is used as the author name and committer name.

Implementation

Future<DeleteFileOutput> deleteFile({
  required String branchName,
  required String filePath,
  required String parentCommitId,
  required String repositoryName,
  String? commitMessage,
  String? email,
  bool? keepEmptyFolders,
  String? name,
}) async {
  ArgumentError.checkNotNull(branchName, 'branchName');
  _s.validateStringLength(
    'branchName',
    branchName,
    1,
    256,
    isRequired: true,
  );
  ArgumentError.checkNotNull(filePath, 'filePath');
  ArgumentError.checkNotNull(parentCommitId, 'parentCommitId');
  ArgumentError.checkNotNull(repositoryName, 'repositoryName');
  _s.validateStringLength(
    'repositoryName',
    repositoryName,
    1,
    100,
    isRequired: true,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'CodeCommit_20150413.DeleteFile'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'branchName': branchName,
      'filePath': filePath,
      'parentCommitId': parentCommitId,
      'repositoryName': repositoryName,
      if (commitMessage != null) 'commitMessage': commitMessage,
      if (email != null) 'email': email,
      if (keepEmptyFolders != null) 'keepEmptyFolders': keepEmptyFolders,
      if (name != null) 'name': name,
    },
  );

  return DeleteFileOutput.fromJson(jsonResponse.body);
}