in internal/pkg/manifest/validate.go [1457:1498]
func (e EFSVolumeConfiguration) validate() error {
if e.IsEmpty() {
return nil
}
if !e.EmptyBYOConfig() && !e.EmptyUIDConfig() {
return &errFieldMutualExclusive{
firstField: "uid/gid",
secondField: "id/root_dir/auth",
}
}
if e.UID != nil && e.GID == nil {
return &errFieldMustBeSpecified{
missingField: "gid",
conditionalFields: []string{"uid"},
}
}
if e.UID == nil && e.GID != nil {
return &errFieldMustBeSpecified{
missingField: "uid",
conditionalFields: []string{"gid"},
}
}
if e.UID != nil && *e.UID == 0 {
return fmt.Errorf(`"uid" must not be 0`)
}
if err := e.AuthConfig.validate(); err != nil {
return fmt.Errorf(`validate "auth": %w`, err)
}
if e.AuthConfig.AccessPointID != nil {
if (aws.StringValue(e.RootDirectory) == "" || aws.StringValue(e.RootDirectory) == "/") &&
(e.AuthConfig.IAM == nil || aws.BoolValue(e.AuthConfig.IAM)) {
return nil
}
return fmt.Errorf(`"root_dir" must be either empty or "/" and "auth.iam" must be true when "access_point_id" is used`)
}
if e.RootDirectory != nil {
if err := validateVolumePath(aws.StringValue(e.RootDirectory)); err != nil {
return fmt.Errorf(`validate "root_dir": %w`, err)
}
}
return nil
}