diff --git a/include/mme-app/mmeStates/attachWfAuthRespValidate.h b/include/mme-app/mmeStates/attachWfAuthRespValidate.h
new file mode 100644
index 0000000..46cfe57
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfAuthRespValidate.h
@@ -0,0 +1,61 @@
+ /*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+ /******************************************************
+ * attachWfAuthRespValidate.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+ 
+#ifndef __AttachWfAuthRespValidate__
+#define __AttachWfAuthRespValidate__
+
+#include "state.h"
+
+namespace mme {
+
+	class AttachWfAuthRespValidate : public SM::State
+	{
+		public:
+			/******************************************
+			* Instance 
+			*    Creates static instance for the state
+			*******************************************/
+			static AttachWfAuthRespValidate* Instance();
+
+			/****************************************
+			* AttachWfAuthRespValidate
+			*    Destructor
+			****************************************/
+			~AttachWfAuthRespValidate();			
+			
+			/******************************************
+			* initialize
+			*  Initializes action handlers for the state
+			* and next state
+			******************************************/
+			void initialize();
+	
+		private:
+			/****************************************
+			* AttachWfAuthRespValidate
+			*    Private constructor
+			****************************************/
+			AttachWfAuthRespValidate();  
+	};
+};
+#endif // __AttachWfAuthRespValidate__
