Build an API with Node.js to run bioinformatic tools containers in AWS. The programmer will be provided with Docker containers and their respective commands to effectively run them and obtain a result. The API should be able to:
1. Submit batch jobs: This includes: Docker container to run, uploaded file IDs stored in S3 buckets to run with container, job ID, AWS instance type to execute the job, etc.
2. Retrieve metadata about running jobs, which includes but it is not limited to queued, running, finished and errors. Ideally, resources metadata used by each job ID should also be retrievable by the API. The API should be able to also retrieve a full job’s list (queued, running, finished).
3. Stop a job: The API should allow the user to stop a running job. Metadata about the stopped job should also be retrievable as in running and finished jobs.
4. Delete a job: The API should allow to delete finished and stopped jobs.
5. The API should allow to have job dependencies. For example: Some docker container outputs are required to execute the subsequent docker containers which have used a unique S3 bucket file.
6. The API should use https and/or any other secured data transfer certificates.