| 32 | ) |
| 33 | |
| 34 | func NewFromConfig(conf *api.Credentials, role credentials.Role, l log.Logger) (credentials.ReaderWriter, error) { |
| 35 | if l == nil { |
| 36 | l = log.NewStdLogger(io.Discard) |
| 37 | } |
| 38 | |
| 39 | if awsc := conf.GetAwsSecretManager(); awsc != nil { |
| 40 | return newAWSCredentialsManager(awsc, conf.SecretPrefix, role, l) |
| 41 | } |
| 42 | |
| 43 | if gcpc := conf.GetGcpSecretManager(); gcpc != nil { |
| 44 | return newGCPCredentialsManager(gcpc, conf.SecretPrefix, role, l) |
| 45 | } |
| 46 | |
| 47 | if vaultc := conf.GetVault(); vaultc != nil { |
| 48 | return newVaultCredentialsManager(vaultc, conf.SecretPrefix, role, l) |
| 49 | } |
| 50 | |
| 51 | if creds := conf.GetAzureKeyVault(); creds != nil { |
| 52 | return newAzureKBManager(creds, conf.SecretPrefix, role, l) |
| 53 | } |
| 54 | |
| 55 | return nil, errors.New("no credentials manager configuration found") |
| 56 | } |
| 57 | |
| 58 | func validateConfig(msg protoreflect.ProtoMessage) error { |
| 59 | return protovalidate.Validate(msg) |