func()

in secretcache/cacheItem.go [174:200]


func (ci *secretCacheItem) getSecretValue(ctx context.Context, versionStage string) (*secretsmanager.GetSecretValueOutput, error) {
	if versionStage == "" && ci.config.VersionStage == "" {
		versionStage = DefaultVersionStage
	} else if versionStage == "" && ci.config.VersionStage != "" {
		versionStage = ci.config.VersionStage
	}

	ci.mux.Lock()
	defer ci.mux.Unlock()

	ci.refresh(ctx)
	version, ok := ci.getVersion(versionStage)

	if !ok {
		if ci.err != nil {
			return nil, ci.err
		} else {
			return nil, &VersionNotFoundError{
				baseError{
					Message: fmt.Sprintf("could not find secret version for versionStage %s", versionStage),
				},
			}
		}

	}
	return version.getSecretValue(ctx)
}