code: func s3NotificationPrefixBasedPermission(bucketName gocf.Stringable, keyPathPrefix string) sparta.S3Permission {
  
  	permission := sparta.S3Permission{
  		BasePermission: sparta.BasePermission{
  			SourceArn: bucketName.String(),
  		},
  		Events: []string{"s3:ObjectCreated:*",
  			"s3:ObjectRemoved:*"},
  	}
  
  	if keyPathPrefix != "" {
  		permission.Filter = s3.NotificationConfigurationFilter{
  			Key: &s3.KeyFilter{
  				FilterRules: []*s3.FilterRule{{
  					Name:  aws.String("prefix"),
  					Value: aws.String(keyPathPrefix),
  				}},
  			},
  		}
  	}
  	return permission
  }
docs: // s3NotificationPrefixFilter is a DRY spec for setting up a notification configuration
  // filter