github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/cloud/aws/options.go (about) 1 package aws 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/concurrency" 5 "github.com/khulnasoft-lab/defsec/pkg/progress" 6 "github.com/khulnasoft-lab/defsec/pkg/scanners/options" 7 ) 8 9 type ConfigurableAWSScanner interface { 10 options.ConfigurableScanner 11 SetProgressTracker(t progress.Tracker) 12 SetAWSRegion(region string) 13 SetAWSEndpoint(endpoint string) 14 SetAWSServices(services []string) 15 SetConcurrencyStrategy(strategy concurrency.Strategy) 16 } 17 18 func ScannerWithProgressTracker(t progress.Tracker) options.ScannerOption { 19 return func(s options.ConfigurableScanner) { 20 if aws, ok := s.(ConfigurableAWSScanner); ok { 21 aws.SetProgressTracker(t) 22 } 23 } 24 } 25 26 func ScannerWithAWSRegion(region string) options.ScannerOption { 27 return func(s options.ConfigurableScanner) { 28 if aws, ok := s.(ConfigurableAWSScanner); ok { 29 aws.SetAWSRegion(region) 30 } 31 } 32 } 33 34 func ScannerWithAWSEndpoint(endpoint string) options.ScannerOption { 35 return func(s options.ConfigurableScanner) { 36 if aws, ok := s.(ConfigurableAWSScanner); ok { 37 aws.SetAWSEndpoint(endpoint) 38 } 39 } 40 } 41 42 func ScannerWithAWSServices(services ...string) options.ScannerOption { 43 return func(s options.ConfigurableScanner) { 44 if aws, ok := s.(ConfigurableAWSScanner); ok { 45 aws.SetAWSServices(services) 46 } 47 } 48 } 49 50 func ScannerWithConcurrencyStrategy(strategy concurrency.Strategy) options.ScannerOption { 51 return func(s options.ConfigurableScanner) { 52 if aws, ok := s.(ConfigurableAWSScanner); ok { 53 aws.SetConcurrencyStrategy(strategy) 54 } 55 } 56 }