efs

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EfsCalls = []types.AWSService{
	{
		Name: "efs:DescribeFileSystems",
		Call: func(ctx context.Context, sess *session.Session) (interface{}, error) {
			var allFileSystems []*efs.FileSystemDescription
			for _, region := range types.Regions {
				regionSess := sess.Copy(&aws.Config{Region: aws.String(region)})
				svc := efs.New(regionSess)
				output, err := svc.DescribeFileSystemsWithContext(ctx, &efs.DescribeFileSystemsInput{})
				if err != nil {
					return nil, err
				}
				allFileSystems = append(allFileSystems, output.FileSystems...)
			}
			return allFileSystems, nil
		},
		Process: func(output interface{}, err error, debug bool) []types.ScanResult {
			var results []types.ScanResult

			if err != nil {
				utils.HandleAWSError(debug, "efs:DescribeFileSystems", err)
				return []types.ScanResult{
					{
						ServiceName: "EFS",
						MethodName:  "efs:DescribeFileSystems",
						Error:       err,
						Timestamp:   time.Now(),
					},
				}
			}

			fileSystems, ok := output.([]*efs.FileSystemDescription)
			if !ok {
				utils.HandleAWSError(debug, "efs:DescribeFileSystems", fmt.Errorf("unexpected output type %T", output))
				return results
			}

			if len(fileSystems) == 0 {
				utils.PrintAccessGranted(debug, "efs:DescribeFileSystems", "file systems")
				return results
			}

			for _, fs := range fileSystems {
				fsId := ""
				if fs.FileSystemId != nil {
					fsId = *fs.FileSystemId
				}

				name := ""
				if fs.Name != nil {
					name = *fs.Name
				}

				lifecycleState := ""
				if fs.LifeCycleState != nil {
					lifecycleState = *fs.LifeCycleState
				}

				var sizeValue int64
				if fs.SizeInBytes != nil && fs.SizeInBytes.Value != nil {
					sizeValue = *fs.SizeInBytes.Value
				}

				var mountTargets int64
				if fs.NumberOfMountTargets != nil {
					mountTargets = *fs.NumberOfMountTargets
				}

				encrypted := false
				if fs.Encrypted != nil {
					encrypted = *fs.Encrypted
				}

				sizeStr := fmt.Sprintf("%d bytes", sizeValue)

				results = append(results, types.ScanResult{
					ServiceName:  "EFS",
					MethodName:   "efs:DescribeFileSystems",
					ResourceType: "file-system",
					ResourceName: fsId,
					Details: map[string]interface{}{
						"Name":                 name,
						"LifeCycleState":       lifecycleState,
						"SizeInBytes":          sizeValue,
						"NumberOfMountTargets": mountTargets,
						"Encrypted":            encrypted,
					},
					Timestamp: time.Now(),
				})

				utils.PrintResult(debug, "", "efs:DescribeFileSystems",
					fmt.Sprintf("Found EFS: %s (Name: %s, State: %s, Size: %s, MountTargets: %d, Encrypted: %v)",
						utils.ColorizeItem(fsId), name, lifecycleState, sizeStr, mountTargets, encrypted), nil)
			}
			return results
		},
		ModuleName: types.DefaultModuleName,
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL