diff --git a/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/Enums.java b/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/Enums.java
index 501c80effdfc..4964fb9bc07b 100644
--- a/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/Enums.java
+++ b/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/after/src/main/java/foo/bar/Enums.java
@@ -14,7 +14,8 @@
  */
 
 package foo.bar;
-
+import software.amazon.awssdk.services.s3.model.Event;
+import software.amazon.awssdk.services.s3.model.StorageClass;
 import software.amazon.awssdk.services.sqs.model.MessageAttributeValue;
 import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
 import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;
@@ -27,6 +28,9 @@ public class Enums {
     public static void main(String... args) {
         QueueAttributeName qan = QueueAttributeName.DELAY_SECONDS;
         QueueAttributeName qan2 = QueueAttributeName.ALL;
+        StorageClass sc1 = StorageClass.STANDARD_IA;
+        StorageClass sc2 = StorageClass.ONEZONE_IA;
+        Event se = Event.S3_OBJECT_CREATED;
         System.out.println(qan);
         System.out.println(qan2);
 
diff --git a/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/Enums.java b/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/Enums.java
index 867cc2ce195f..e81bb087510c 100644
--- a/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/Enums.java
+++ b/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/maven/before/src/main/java/foo/bar/Enums.java
@@ -15,6 +15,8 @@
 
 package foo.bar;
 
+import com.amazonaws.services.s3.model.S3Event;
+import com.amazonaws.services.s3.model.StorageClass;
 import com.amazonaws.services.sqs.model.QueueAttributeName;
 import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
 import software.amazon.awssdk.services.sqs.model.MessageAttributeValue;
@@ -27,6 +29,9 @@ public class Enums {
     public static void main(String... args) {
         QueueAttributeName qan = QueueAttributeName.DelaySeconds;
         QueueAttributeName qan2 = QueueAttributeName.All;
+        StorageClass sc1 = StorageClass.StandardInfrequentAccess;
+        StorageClass sc2 = StorageClass.OneZoneInfrequentAccess;
+        S3Event se = S3Event.ObjectCreated;
         System.out.println(qan);
         System.out.println(qan2);
 
diff --git a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/EnumCasingToV2.java b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/EnumCasingToV2.java
index 2e3dbf30ab8f..7bd873cf9ca3 100644
--- a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/EnumCasingToV2.java
+++ b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/EnumCasingToV2.java
@@ -17,7 +17,9 @@
 
 import static software.amazon.awssdk.utils.internal.CodegenNamingUtils.splitOnWordBoundaries;
 
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import org.openrewrite.ExecutionContext;
 import org.openrewrite.Recipe;
@@ -35,6 +37,15 @@ public class EnumCasingToV2 extends Recipe {
 
     private static Set<String> ENUMS = new HashSet<>();
 
+    private static final Map<String, String> SPECIAL_CASES = new HashMap<>();
+
+    static {
+        SPECIAL_CASES.put("StandardInfrequentAccess", "STANDARD_IA");
+        SPECIAL_CASES.put("OneZoneInfrequentAccess", "ONEZONE_IA");
+        SPECIAL_CASES.put("GlacierInstantRetrieval", "GLACIER_IR");
+        SPECIAL_CASES.put("textORcsv", "TEXT_OR_CSV");
+    }
+
     @Override
     public String getDisplayName() {
         return "V1 Enum Casing to V2";
@@ -51,8 +62,11 @@ public TreeVisitor<?, ExecutionContext> getVisitor() {
     }
 
     private static String v2Casing(String enumValue) {
+        if (SPECIAL_CASES.containsKey(enumValue)) {
+            return SPECIAL_CASES.get(enumValue);
+        }
+
         String result = enumValue;
-        result = result.replaceAll("textORcsv", "TEXT_OR_CSV");
         result = String.join("_", splitOnWordBoundaries(result));
         return StringUtils.upperCase(result);
     }
@@ -64,6 +78,9 @@ public J.FieldAccess visitFieldAccess(J.FieldAccess fieldAccess, ExecutionContex
 
             if (isV2EnumValue(fa)) {
                 String v2Casing = v2Casing(fa.getSimpleName());
+                if (isS3EventsEnum(fa)) {
+                    v2Casing = "S3_" + v2Casing;
+                }
                 ENUMS.add(v2Casing);
                 return fa.withName(fa.getName().withSimpleName(v2Casing));
             }
@@ -96,5 +113,14 @@ public boolean isV2EnumValue(J.FieldAccess fa) {
             }
             return false;
         }
+
+        private boolean isS3EventsEnum(J.FieldAccess fa) {
+            JavaType javaType = fa.getTarget().getType();
+            JavaType.FullyQualified fullyQualified = TypeUtils.asFullyQualified(javaType);
+            return fullyQualified != null && fullyQualified.getClassName().equals("Event")
+                && fullyQualified.getPackageName().equals("software.amazon.awssdk.services.s3.model")
+                && !fa.getSimpleName().startsWith("S3_");
+        }
+
     }
 }
diff --git a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/NamingConversionUtils.java b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/NamingConversionUtils.java
index 339e4080e66c..e7580e0f99b1 100644
--- a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/NamingConversionUtils.java
+++ b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/NamingConversionUtils.java
@@ -182,6 +182,9 @@ public final class NamingConversionUtils {
         S3_POJO_MAPPING.put("ReplicationFilter", "ReplicationRuleFilter");
         S3_POJO_MAPPING.put("ReplicationAndOperator", "ReplicationRuleAndOperator");
         S3_POJO_MAPPING.put("PartETag", "CompletedPart");
+
+        //Special Enum mapping
+        S3_POJO_MAPPING.put("S3Event", "Event");
     }
 
     static {