Answer – C
The AWS Documentation mentions the following.
Elastic Beanstalk creates an application version whenever you upload source code. This usually occurs when you create an environment or upload and deploy code using the environment management console or EB CLI. Elastic Beanstalk deletes these application versions according to its life cycle policy and when you delete the application.
You can also upload a source bundle without deploying it from the application management console or with the EB CLI command eb appversion. Elastic Beanstalk stores source bundles in Amazon Simple Storage Service (Amazon S3) and doesn`t automatically delete them.
Options A and B are incorrect since this would be the least efficient way to maintain application revisions.
Option D is incorrect since you would not use CodePipeline for application versions.
For more information on application versions, please refer to the below URL-
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-versions.html
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html