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  }