Summary:
Surrounding code for OCI storage config, which can later be updated to accommodate the OCI IAM creds passing to YBC.
Same Storage Configuration classes will work in two modes - static credentials via S3 compatible credentials for OCI, and the IAM based implementation which calls YBC C-archive based approach for handling IAM auth requests.
Introduce OCI IAM-native backup storage config (CustomerConfigStorageOCIData → CustomerConfigStorageOCIValidator → OCIUtil), wired into CustomerConfig and storage util factories. Util class methods, validator logic, YBC integration etc. are stubbed for a later change.
In same storage config classes, also introduce static credential support in the form of S3 compatible credentials.
Native IAM details:
`BACKUP_LOCATION` format: `https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket>/o/<prefix>`
Also needs: `OCI_REGION`, `OCI_NAMESPACE`.
Also pass `USE_OCI_IAM` as true.
S3 compatible details:
Pass `USE_OCI_IAM` as false, or omit the field. It is false by default.
Creds accepted: `BACKUP_LOCATION`, `OCI_S3_ACCESS_KEY_ID`, `OCI_S3_SECRET_ACCESS_KEY`, `OCI_S3_HOST_BASE`, `OCI_REGION`, `OCI_NAMESPACE`
Also, the YBC version is bumped from `2.2.0.4-b5` to `2.2.0.4-b7`
Test Plan: Compilation success, jenkins success
Reviewers: vkumar, anabaria, agunta, vanka.naidu
Reviewed By: anabaria
Subscribers: yugaware
Differential Revision: https://phorge.dev.yugabyte.com/D55167