diff --git a/awsconfiguration.sh b/awsconfiguration.sh
index 4b8d3bf..6681569 100755
--- a/awsconfiguration.sh
+++ b/awsconfiguration.sh
@@ -37,5 +37,5 @@ echo "export AWS_SECRET_ACCESS_KEY=\"$AWS_SECRET_ACCESS_KEY\"">>awsenvconf
 echo "export AWS_ENVIRONMENT=\"$AWS_ENVIRONMENT\"">>awsenvconf
 echo "export AWS_SESSION_TOKEN=\"$AWS_SESSION_TOKEN\"">>awsenvconf
 echo "export AWS_ACCOUNT_ID=\"$AWS_ACCOUNT_ID\"">>awsenvconf
-
+echo awsenvconf >>.dockerignore
 
diff --git a/buildenv.sh b/buildenv.sh
index aebb8fc..9253d16 100755
--- a/buildenv.sh
+++ b/buildenv.sh
@@ -48,7 +48,7 @@ uploading_buildenvvar()
             varname=$(echo $s| jq -r ".name")
             varvalue=$(echo $s| jq -r ".value")
             echo $varname
-            echo export "$varname"="\"$varvalue\"" >>"buildenvvar"
+            echo export "$varname"="'$varvalue'" >>"buildenvvar"
 	        #export "$varname"="$varvalue"
             #echo export "$varname"="$varvalue" >>"$BASH_ENV"
             #echo export "$varname"="\"$varvalue\"" >> ~/.circlerc
@@ -84,21 +84,21 @@ do
      esac
 done
 
-AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV}_AWS_ACCESS_KEY_ID")
-AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV}_AWS_SECRET_ACCESS_KEY")
-AWS_REGION=$(eval "echo \$${ENV}_AWS_REGION")
-if [ -z $AWS_REGION ];
-then
-AWS_REGION="us-east-1"
-fi
-if [ -z $AWS_ACCESS_KEY_ID ] || [ -z $AWS_SECRET_ACCESS_KEY ] ;
-then
-     log "AWS Secret Parameters are not configured in circleci/environment"
-     usage
-     exit 1
-else
-     configure_aws_cli
-fi
+# AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV}_AWS_ACCESS_KEY_ID")
+# AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV}_AWS_SECRET_ACCESS_KEY")
+# AWS_REGION=$(eval "echo \$${ENV}_AWS_REGION")
+# if [ -z $AWS_REGION ];
+# then
+# AWS_REGION="us-east-1"
+# fi
+# if [ -z $AWS_ACCESS_KEY_ID ] || [ -z $AWS_SECRET_ACCESS_KEY ] ;
+# then
+#      log "AWS Secret Parameters are not configured in circleci/environment"
+#      usage
+#      exit 1
+# else
+#      configure_aws_cli
+# fi
 ENV_CONFIG=`echo "$ENV" | tr '[:upper:]' '[:lower:]'`
 download_buildenvfile
 uploading_buildenvvar
diff --git a/ebs_base_template_v2.json.template b/ebs_base_template_v2.json.template
new file mode 100644
index 0000000..85bc8f1
--- /dev/null
+++ b/ebs_base_template_v2.json.template
@@ -0,0 +1,16 @@
+{
+    "AWSEBDockerrunVersion": "1",
+    "Authentication": {
+        "Bucket": "@AWSS3AUTHBUCKET@",
+        "Key": "services/common/dockercfg"
+    },
+    "Image": {
+        "Name": "appiriodevops/@IMAGE@",
+        "Update": "true"
+    },
+    "Ports": [{
+        "ContainerPort": "8080"
+    }],
+    "Volumes": [],
+    "Logging": ""
+}
\ No newline at end of file
diff --git a/ebs_base_template_v3.json.template b/ebs_base_template_v3.json.template
new file mode 100644
index 0000000..2af6938
--- /dev/null
+++ b/ebs_base_template_v3.json.template
@@ -0,0 +1,15 @@
+{
+  "AWSEBDockerrunVersion": "1",
+  "Authentication": {
+    "Bucket": "@AWSS3AUTHBUCKET@",
+    "Key": "services/common/dockercfg"
+  },
+  "Image": {
+    "Name": "appiriodevops/@IMAGE@",
+    "Update": "true"
+  },
+  "Ports": [
+  ],
+  "Volumes": [],
+  "Logging": ""
+}
diff --git a/master_deploy.sh b/master_deploy.sh
index a6a2a6c..0572bdd 100755
--- a/master_deploy.sh
+++ b/master_deploy.sh
@@ -10,13 +10,18 @@ SECRET_FILE_NAME="./buildsecvar.conf"
 SHARED_PROPERTY_FILENAME=""
 
 #Common Varibles
-AWS_ACCESS_KEY_ID=""
-AWS_SECRET_ACCESS_KEY=""
-AWS_ACCOUNT_ID=""
-AWS_REGION=""
+#echo $AWS_ACCESS_KEY_ID
+# AWS_ACCESS_KEY_ID=""
+# AWS_SECRET_ACCESS_KEY=""
+# AWS_ACCOUNT_ID=""
+# AWS_REGION=""
 TAG=""
 SEC_LIST=""
-COUNTER_LIMIT=12
+#COUNTER_LIMIT=12
+
+if [ -z "$COUNTER_LIMIT" ]; then
+        COUNTER_LIMIT=12
+fi
 
 #Varibles specific to ECS
 #AWS_REPOSITORY=""
@@ -35,12 +40,14 @@ volcount=0
 template=""
 TEMPLATE_SKELETON_FILE="base_template_v2.json"
 APP_IMAGE_NAME=""
+DEPLOYCATEGORY=""
+ECSCLI_ENVFILE="api.env"
 
 #variable specific to EBS
 DOCKERRUN="Dockerrun.aws.json"
 #EBS_EB_EXTENSTION_LOCATION=""
 IMG_WITH_EBS_TAG=""
-EBS_TEMPLATE_SKELETON_FILE="ebs_base_template_v1.json.template"
+EBS_TEMPLATE_SKELETON_FILE="ebs_base_template_v3.json.template"
 EBS_APPLICATION_NAME=""
 EBS_APPVER=""
 EBS_TAG=""
@@ -53,15 +60,16 @@ EBS_TEMPLATE_FILE_NAME=""
 #AWS_EBS_EB_DOCKERRUN_TEMPLATE_LOCATION=$(eval "echo \$${ENV}_AWS_EBS_EB_DOCKERRUN_TEMPLATE_LOCATION")
 #AWS_EBS_DOCKERRUN_TEMPLATE=$(eval "echo \$${ENV}_AWS_EBS_DOCKERRUN_TEMPLATE")
 #AWS_S3_KEY_LOCATION=""
-
+ebsportcount=0
+ebstemplate=""
 #variable for cloud front
 #AWS_S3_BUCKET=""
 #AWS_S3_SOURCE_SYNC_PATH=""
 CFCACHE="true"
 
 #variable for Lambda 
-AWS_LAMBDA_DEPLOY_TYPE=""
-AWS_LAMBDA_STAGE=""
+#AWS_LAMBDA_DEPLOY_TYPE=""
+#AWS_LAMBDA_STAGE=""
 
 #FUNCTIONS
 #usage Function - provides information like how to execute the script
@@ -134,7 +142,45 @@ ECS_push_ecr_image() {
 	track_error $? "ECS ECR image push"
 	log "Docker Image published."
 }
+#===============
+ECSCLI_push_ecr_image() {
+    ECS_REPONAME=$1
+    IMAGE_NAME=$2
+    if [ -z "$IMAGE_NAME" ];
+    then
+        log "Image has followed standard format"
+    else
+        log "Image does not follow stanard format. Modifying the image and updating the ECS_TAG"
+        docker tag $IMAGE_NAME:$ECS_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECS_REPONAME:$CIRCLE_BUILD_NUM
+        ECS_TAG=$CIRCLE_BUILD_NUM
+    fi
+	log "Pushing Docker Image..."
+	eval $(aws ecr get-login --region $AWS_REGION --no-include-email)
+	docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECS_REPONAME:$ECS_TAG
+	track_error $? "ECS ECR image push"
+	log "Docker Image published."
+}
+#================
+ECSCLI_update_env()
+{
+    Buffer_seclist=$(echo $SEC_LIST | sed 's/,/ /g')
+    for listname in $Buffer_seclist;
+    do
+        local o=$IFS
+        IFS=$(echo -en "\n\b")
+        envvars=$( cat $listname.json | jq  -r ' . ' | jq ' . | to_entries[] | { "name": .key , "value": .value } ' | jq -s . )
+        log "vars are fetched"
 
+        for s in $(echo $envvars | jq -c ".[]" ); do
+        #echo $envvars
+            varname=$(echo $s| jq -r ".name")
+            varvalue=$(echo $s| jq -r ".value")
+            envaddition "$varname" "$varvalue"
+            echo "$varname"="\"$varvalue\"" >>$ECSCLI_ENVFILE
+        done
+        IFS=$o  
+    done
+}
 #================
 portmapping() {
 hostport=$1
@@ -209,8 +255,13 @@ template=$(cat $TEMPLATE_SKELETON_FILE)
 template=$(echo $template | jq --arg family $AWS_ECS_TASK_FAMILY '.family=$family')
 log "Family updated"
 
-#taskrole and excution role has updated 
-#template=$(echo $template | jq --arg taskRoleArn arn:aws:iam::$AWS_ACCOUNT_ID:role/ecsTaskExecutionRole '.taskRoleArn=$taskRoleArn')
+#taskrole and excution role has updated
+if [ -z $AWS_ECS_TASK_ROLE_ARN ];
+then
+  log "No Execution Role defined"
+else
+  template=$(echo $template | jq --arg taskRoleArn arn:aws:iam::$AWS_ACCOUNT_ID:role/$AWS_ECS_TASK_ROLE_ARN '.taskRoleArn=$taskRoleArn')
+fi
 #template=$(echo $template | jq --arg executionRoleArn arn:aws:iam::$AWS_ACCOUNT_ID:role/ecsTaskExecutionRole '.executionRoleArn=$executionRoleArn')
 
 #Container Name update
@@ -232,6 +283,16 @@ else
 fi
 log "Memory reservation updated"
 
+#Container Memory reservation
+if [ -z $AWS_ECS_CONTAINER_CPU ];
+then
+    echo "No  cpu defined . Going with default value 100"
+    AWS_ECS_CONTAINER_CPU=100
+    template=$(echo $template | jq --argjson cpu $AWS_ECS_CONTAINER_CPU '.containerDefinitions[0].cpu=$cpu')
+else
+    template=$(echo $template | jq --argjson cpu $AWS_ECS_CONTAINER_CPU '.containerDefinitions[0].cpu=$cpu')
+fi
+
 #Port Mapping
 Buffer_portmap=$(echo $AWS_ECS_PORTS | sed 's/,/ /g')
 for b1 in $Buffer_portmap;
@@ -328,15 +389,6 @@ else
     #CONTAINER_CPU
     ECS_NETWORKTYPE="bridge"
     template=$(echo $template | jq --arg networkMode $ECS_NETWORKTYPE '.networkMode=$networkMode')
-    #Container Memory reservation
-    if [ -z $AWS_ECS_CONTAINER_CPU ];
-    then
-      echo "No  cpu defined . Going with default value 100"
-      AWS_ECS_CONTAINER_CPU=100
-      template=$(echo $template | jq --argjson cpu $AWS_ECS_CONTAINER_CPU '.containerDefinitions[0].cpu=$cpu')
-    else 
-      template=$(echo $template | jq --argjson cpu $AWS_ECS_CONTAINER_CPU '.containerDefinitions[0].cpu=$cpu')
-    fi
     
     # Updating the compatibiltiy
     template=$(echo $template | jq --arg requiresCompatibilities EC2 '.requiresCompatibilities[0] =  $requiresCompatibilities')
@@ -408,6 +460,22 @@ validate_update_loggroup()
 }
 # EBS integration
 
+ebsportmapping() {
+echo "port map called"
+containerport=$1
+hostport=$2
+
+if [ -z $hostport ]
+then
+ebstemplate=$(echo $ebstemplate | jq --arg containerPort $containerport --arg ebsportcount $ebsportcount '.Ports[$ebsportcount |tonumber] |= .+ { ContainerPort: $containerPort }')
+else
+ebstemplate=$(echo $ebstemplate | jq --arg hostPort $hostport --arg containerPort $containerport --arg ebsportcount $ebsportcount '.Ports[$ebsportcount |tonumber] |= .+ { HostPort: $hostPort, ContainerPort: $containerPort }')
+fi
+
+let ebsportcount=ebsportcount+1
+
+}
+
 
 EBS_push_docker_image() {
 
@@ -419,6 +487,29 @@ track_error $? "docker push failed."
 }
 
 creating_updating_ebs_docker_json() {
+    echo "updating auth bucket name"
+    sed -i.bak -e "s/@AWSS3AUTHBUCKET@/appirio-platform-$ENV_CONFIG/g" $EBS_TEMPLATE_SKELETON_FILE
+    rm ${EBS_TEMPLATE_SKELETON_FILE}.bak
+
+    #EBS Port Mapping
+    ebstemplate=$(cat $EBS_TEMPLATE_SKELETON_FILE)
+    if [ -z $AWS_EBS_PORTS ];
+    then
+        echo "No container port is defined. configuring default 8080 port"
+        ebsportmapping 8080
+    else
+        Buffer_portmap=$(echo $AWS_EBS_PORTS | sed 's/,/ /g')
+        for ebsportbuf in $Buffer_portmap;
+        do
+            containerport=$( echo $ebsportbuf | cut -d ':' -f 1 ) 
+            if [[ $ebsportbuf = *:* ]]; then
+                hostport=$( echo $ebsportbuf | cut -d ':' -f 2 ) 
+            fi
+            ebsportmapping $containerport $hostport
+        done
+    fi
+    echo "$ebstemplate" > $EBS_TEMPLATE_SKELETON_FILE
+    log "port mapping updated"    
 
     if [ -z "$EBS_EB_EXTENSTION_LOCATION" ];
     then
@@ -478,16 +569,34 @@ deploy_s3bucket() {
 		exit 1
 	fi
 
-	S3_OPTIONS="--exclude '*' --include '*.txt' --include '*.js' --include '*.css' --content-encoding gzip"
-	echo aws s3 sync --dryrun $AWS_S3_SOURCE_SYNC_PATH s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
-	eval "aws s3 sync --dryrun $AWS_S3_SOURCE_SYNC_PATH s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
-	result=`eval "aws s3 sync $AWS_S3_SOURCE_SYNC_PATH s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
-	if [ $? -eq 0 ]; then
-		echo "All txt, css, and js files are Deployed! with gzip"
-	else
-		echo "Deployment Failed  - $result"
-		exit 1
-	fi
+	# S3_OPTIONS="--exclude '*' --include '*.txt' --include '*.js' --include '*.css' --content-encoding gzip"
+    searchpath=${AWS_S3_SOURCE_SYNC_PATH}
+    lengthofsearchpath=$(echo ${#searchpath}) 
+    lengthofsearchpath=$((lengthofsearchpath+1))
+	for syncfilepath in $(find ${searchpath} -name '*.js' -o -name '*.txt' -o -name '*.css'); 
+	do 
+	  echo "$syncfilepath"
+      uploadpath=$(echo $syncfilepath | cut -b ${lengthofsearchpath}-)
+      echo $uploadpath
+	  getformatdetails=$(file ${syncfilepath})
+	  if [[ $getformatdetails == *"ASCII"* ]] || [[ $getformatdetails == *"empty"* ]]; 
+	  then
+        echo "file format is ASCII and skipping gzip option"
+    	S3_OPTIONS=""
+      else 
+        echo $getformatdetails
+        S3_OPTIONS="--content-encoding gzip"
+      fi
+      echo aws s3 cp --dryrun $syncfilepath s3://${AWS_S3_BUCKET}${uploadpath} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
+      eval "aws s3 cp --dryrun $syncfilepath s3://${AWS_S3_BUCKET}${uploadpath} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
+	  result=`eval "aws s3 cp $syncfilepath s3://${AWS_S3_BUCKET}${uploadpath} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
+      if [ $? -eq 0 ]; then
+    	echo "file Deployed!"
+      else
+	    echo "Deployment Failed  - $result"
+  	    exit 1
+	  fi
+    done;
 }
 download_envfile()
 {
@@ -583,7 +692,7 @@ deploy_lambda_package()
 # Input Collection and validation
 input_parsing_validation()
 {
-while getopts .d:h:i:e:t:v:s:p:g:c:. OPTION
+while getopts .d:h:i:e:t:v:s:p:g:c:m:. OPTION
 do
      case $OPTION in
          d)
@@ -617,7 +726,9 @@ do
          g)
              SHARED_PROPERTY_FILENAME=$OPTARG
              ;;
-
+         m)
+             DEPLOYCATEGORY=$OPTARG
+             ;;
          ?)
              log "additional param required"
              usage
@@ -643,19 +754,19 @@ ENV_CONFIG=`echo "$ENV" | tr '[:upper:]' '[:lower:]'`
 
 #Getting Deployment varaible only
 
-AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV}_AWS_ACCESS_KEY_ID")
-AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV}_AWS_SECRET_ACCESS_KEY")
-AWS_ACCOUNT_ID=$(eval "echo \$${ENV}_AWS_ACCOUNT_ID")
-AWS_REGION=$(eval "echo \$${ENV}_AWS_REGION")
-if [ -z $AWS_ACCESS_KEY_ID ] || [ -z $AWS_SECRET_ACCESS_KEY ] || [ -z $AWS_ACCOUNT_ID ] || [ -z $AWS_REGION ];
-then
-     log "AWS Secret Parameters are not configured in circleci/environment"
-     usage
-     exit 1
-else
-     configure_aws_cli
-     #aws configure list
-fi
+# AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV}_AWS_ACCESS_KEY_ID")
+# AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV}_AWS_SECRET_ACCESS_KEY")
+# AWS_ACCOUNT_ID=$(eval "echo \$${ENV}_AWS_ACCOUNT_ID")
+# AWS_REGION=$(eval "echo \$${ENV}_AWS_REGION")
+# if [ -z $AWS_ACCESS_KEY_ID ] || [ -z $AWS_SECRET_ACCESS_KEY ] || [ -z $AWS_ACCOUNT_ID ] || [ -z $AWS_REGION ];
+# then
+#      log "AWS Secret Parameters are not configured in circleci/environment"
+#      usage
+#      exit 1
+# else
+#      configure_aws_cli
+#      #aws configure list
+# fi
 
 download_envfile
 #decrypt_fileenc
@@ -669,14 +780,26 @@ download_envfile
 if [ "$DEPLOYMENT_TYPE" == "ECS" ]
 then
   ECS_TAG=$TAG
-  cp $HOME/buildscript/$TEMPLATE_SKELETON_FILE .
+  if [ "$DEPLOYCATEGORY" == "CLI" ]
+    then
+        if [ -z $AWS_REPOSITORY ] || [ -z $AWS_ECS_CLUSTER ] || [ -z $AWS_ECS_SERVICE ] || [ -z $ECS_TAG ];
+        then
+            log "Deployment varibale are not updated. Please check tag option has provided. also ensure AWS_REPOSITORY, AWS_ECS_TASK_FAMILY,AWS_ECS_CONTAINER_NAME,AWS_ECS_PORTS,AWS_ECS_CLUSTER and AWS_ECS_SERVICE ariables are configured on secret manager"
+            usage
+            exit 1
+        fi
+        DEPLOYCATEGORYNAME="ECSCLI"
+    else
+        cp $HOME/buildscript/$TEMPLATE_SKELETON_FILE .
 
-  if [ -z $AWS_REPOSITORY ] || [ -z $AWS_ECS_CLUSTER ] || [ -z $AWS_ECS_SERVICE ] || [ -z $AWS_ECS_TASK_FAMILY ] || [ -z $AWS_ECS_CONTAINER_NAME ] || [ -z $AWS_ECS_PORTS ] || [ -z $ECS_TAG ];
-  then
-     log "Deployment varibale are not updated. Please check tag option has provided. also ensure AWS_REPOSITORY, AWS_ECS_TASK_FAMILY,AWS_ECS_CONTAINER_NAME,AWS_ECS_PORTS,AWS_ECS_CLUSTER and AWS_ECS_SERVICE ariables are configured on secret manager"
-     usage
-     exit 1
-  fi
+        if [ -z $AWS_REPOSITORY ] || [ -z $AWS_ECS_CLUSTER ] || [ -z $AWS_ECS_SERVICE ] || [ -z $AWS_ECS_TASK_FAMILY ] || [ -z $AWS_ECS_CONTAINER_NAME ] || [ -z $AWS_ECS_PORTS ] || [ -z $ECS_TAG ];
+        then
+            log "Deployment varibale are not updated. Please check tag option has provided. also ensure AWS_REPOSITORY, AWS_ECS_TASK_FAMILY,AWS_ECS_CONTAINER_NAME,AWS_ECS_PORTS,AWS_ECS_CLUSTER and AWS_ECS_SERVICE ariables are configured on secret manager"
+            usage
+            exit 1
+        fi
+        DEPLOYCATEGORYNAME="AWSCLI"
+    fi
   log "AWS_REPOSITORY           :       $AWS_REPOSITORY"
   log "AWS_ECS_CLUSTER    :       $AWS_ECS_CLUSTER"
   log "AWS_ECS_SERVICE_NAMES  :       $AWS_ECS_SERVICE"
@@ -684,6 +807,7 @@ then
   log "AWS_ECS_CONTAINER_NAME   :       $AWS_ECS_CONTAINER_NAME"
   log "AWS_ECS_PORTS  :       $AWS_ECS_PORTS"
   log "ECS_TAG  :       $ECS_TAG"
+  log "DEPLOY TYPE : $DEPLOYCATEGORYNAME"
 fi
 #EBS parameter validation
 if [ "$DEPLOYMENT_TYPE" == "EBS" ]
@@ -761,29 +885,102 @@ input_parsing_validation $@
 
 if [ "$DEPLOYMENT_TYPE" == "ECS" ]
 then
-    validate_update_loggroup
-	ECS_push_ecr_image
-	ECS_template_create_register
-    echo "value of AWS_ECS_SERVICE " $AWS_ECS_SERVICE
-	AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g')
-    #AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g' | sed 'N;s/\n//')
-    echo "value of AWS_ECS_SERVICE_NAMES " $AWS_ECS_SERVICE_NAMES
-	IFS=' ' read -a AWS_ECS_SERVICES <<< $AWS_ECS_SERVICE_NAMES
-	if [ ${#AWS_ECS_SERVICES[@]} -gt 0 ]; then
-		 echo "${#AWS_ECS_SERVICES[@]} service are going to be updated"
-		 for AWS_ECS_SERVICE_NAME in "${AWS_ECS_SERVICES[@]}"
-		 do
-		   echo "updating ECS Cluster Service - $AWS_ECS_SERVICE_NAME"
-		   ECS_deploy_cluster "$AWS_ECS_SERVICE_NAME"
-		   check_service_status "$AWS_ECS_SERVICE_NAME"
-		   #echo $REVISION
-		 done
-	else
-		 echo "Kindly check the service name in Parameter"
-		 usage
-		 exit 1
+    if [ "$DEPLOYCATEGORY" == "CLI" ]
+    then
+        eval $(aws ecr get-login --region $AWS_REGION --no-include-email)
+        #Moving image to repository
+        if [ -z $APP_IMAGE_NAME ];
+        then
+            echo "value of AWS_REPOSITORY " $AWS_REPOSITORY
+            AWS_REPOSITORY_NAMES=$(echo ${AWS_REPOSITORY} | sed 's/,/ /g')
+            echo "value of AWS_REPOSITORY_NAMES " $AWS_REPOSITORY_NAMES
+            IFS=' ' read -a AWS_REPOSITORY_NAMES_ARRAY <<< $AWS_REPOSITORY_NAMES
+            if [ ${#AWS_REPOSITORY_NAMES_ARRAY[@]} -gt 0 ]; then
+                echo "${#AWS_REPOSITORY_NAMES_ARRAY[@]} repo push initalisation"
+                for AWS_ECS_REPO_NAME in "${AWS_REPOSITORY_NAMES_ARRAY[@]}"
+                do
+                    echo "updating reposioty - $AWS_ECS_REPO_NAME"
+                    ECSCLI_push_ecr_image $AWS_ECS_REPO_NAME
+                    #echo $REVISION
+                done
+            else
+                echo "Kindly check the Repository name has Parameter"
+                usage
+                exit 1
+            fi
+        else
+        #if appp images details are provided
+
+            echo "value of AWS_REPOSITORY " $AWS_REPOSITORY
+            AWS_REPOSITORY_NAMES=$(echo ${AWS_REPOSITORY} | sed 's/,/ /g')
+            echo "value of AWS_REPOSITORY_NAMES " $AWS_REPOSITORY_NAMES
+            echo "value of image name provided " $APP_IMAGE_NAME
+            APP_IMAGE_NAMES=$(echo ${APP_IMAGE_NAME} | sed 's/,/ /g')
+            IFS=' ' read -a AWS_REPOSITORY_NAMES_ARRAY <<< $AWS_REPOSITORY_NAMES
+            IFS=' ' read -a APP_IMAGE_NAMES_ARRAY <<< $APP_IMAGE_NAMES
+            echo "AWS REPO COUNT NEED TO BE UPDATE ${#AWS_REPOSITORY_NAMES_ARRAY[@]} , APP image count provided in option ${#APP_IMAGE_NAMES_ARRAY[@]} "
+            if [ "${#AWS_REPOSITORY_NAMES_ARRAY[@]}" = "${#APP_IMAGE_NAMES_ARRAY[@]}" ];
+            then
+                ecstempcount=0
+                while [ $ecstempcount -lt ${#AWS_REPOSITORY_NAMES_ARRAY[@]} ]
+                do
+                    echo "${AWS_REPOSITORY_NAMES_ARRAY[$count]} , ${APP_IMAGE_NAMES_ARRAY[$count]}"
+                    ECSCLI_push_ecr_image "${AWS_REPOSITORY_NAMES_ARRAY[$count]}" "${APP_IMAGE_NAMES_ARRAY[$count]}"
+                    ecstempcount=`expr $ecstempcount + 1`
+                done
+            else
+                echo "Kindly check the image name in Parameter"
+                usage
+                exit 1
+            fi
+        fi
+        #env file updation
+        ECSCLI_update_env
+        # Configurong cluster
+        ecs-cli configure --region us-east-1 --cluster $AWS_ECS_CLUSTER
+        # updating service
+        echo "value of AWS_ECS_SERVICE " $AWS_ECS_SERVICE
+        AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g')
+        #AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g' | sed 'N;s/\n//')
+        echo "value of AWS_ECS_SERVICE_NAMES " $AWS_ECS_SERVICE_NAMES
+        IFS=' ' read -a AWS_ECS_SERVICES <<< $AWS_ECS_SERVICE_NAMES
+        if [ ${#AWS_ECS_SERVICES[@]} -gt 0 ]; then
+            echo "${#AWS_ECS_SERVICES[@]} service are going to be updated"
+            for AWS_ECS_SERVICE_NAME in "${AWS_ECS_SERVICES[@]}"
+            do
+            echo "updating ECS Cluster Service - $AWS_ECS_SERVICE_NAME"
+            ecs-cli compose --project-name "$AWS_ECS_SERVICE_NAME" service up
+            #echo $REVISION
+            done
+        else
+            echo "Kindly check the service name in Parameter"
+            usage
+            exit 1
+        fi
+    else
+        validate_update_loggroup
+        ECS_push_ecr_image
+        ECS_template_create_register
+        echo "value of AWS_ECS_SERVICE " $AWS_ECS_SERVICE
+        AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g')
+        #AWS_ECS_SERVICE_NAMES=$(echo ${AWS_ECS_SERVICE} | sed 's/,/ /g' | sed 'N;s/\n//')
+        echo "value of AWS_ECS_SERVICE_NAMES " $AWS_ECS_SERVICE_NAMES
+        IFS=' ' read -a AWS_ECS_SERVICES <<< $AWS_ECS_SERVICE_NAMES
+        if [ ${#AWS_ECS_SERVICES[@]} -gt 0 ]; then
+            echo "${#AWS_ECS_SERVICES[@]} service are going to be updated"
+            for AWS_ECS_SERVICE_NAME in "${AWS_ECS_SERVICES[@]}"
+            do
+            echo "updating ECS Cluster Service - $AWS_ECS_SERVICE_NAME"
+            ECS_deploy_cluster "$AWS_ECS_SERVICE_NAME"
+            check_service_status "$AWS_ECS_SERVICE_NAME"
+            #echo $REVISION
+            done
+        else
+            echo "Kindly check the service name in Parameter"
+            usage
+            exit 1
+        fi
 	fi
-	
 fi
 
 
diff --git a/template/variable_file_template/sample_ecs_appvar.json b/template/variable_file_template/sample_ecs_appvar.json
new file mode 100644
index 0000000..dfb11a8
--- /dev/null
+++ b/template/variable_file_template/sample_ecs_appvar.json
@@ -0,0 +1,29 @@
+{
+        "API_CONTEXT_PATH": "/v5/somethings",
+        "AUTH0_AUDIENCE": "https://nm.something.com/",
+        "AUTH0_CLIENT_ID": "xxxxxx14fbsRx",
+        "AUTH0_CLIENT_SECRET": "xxxxxx-x-xx",
+        "AUTH0_URL": "https://something.com.com/oauth/token",
+        "authSecret": "xxxxxxxx+XCU+x",
+        "DATABASE_URL": "xxxxxxxxx",
+        "DEV_MODE_EMAIL": "xxxx.xxxx+devmode@something.com",
+        "ENABLE_DEV_MODE": "false",
+        "ENABLE_EMAILS": "true",
+        "ENV": "DEV",
+        "KAFKA_CLIENT_CERT": "-----BEGIN CERTIFICATE-----\nxxxxxx\nafSRp9F\n-----END CERTIFICATE-----",
+        "KAFKA_CLIENT_CERT_KEY": "-----BEGIN RSA PRIVATE KEY-----\nMIIB/8/eg==\n-----END RSA PRIVATE KEY-----",
+        "KAFKA_GROUP_ID": "tc-something-server",
+        "KAFKA_URL": "blahblah+ssl://vlab-vlak-01.srvs.blahblah.com:9093",
+        "LOG_LEVEL": "DEBUG",
+        "MENTION_EMAIL": "mentioned.connect@something.com",
+        "MESSAGE_API_BASE_URL": "https://something.com/v5",
+        "PORT": 4000,
+        "REPLY_EMAIL_DOMAIN": "connectemail.something.com",
+        "REPLY_EMAIL_PREFIX": "something",
+        "TC_API_BASE_URL": "https://something.com",
+        "TC_API_V3_BASE_URL": "https://something.com/v3",
+        "TC_API_V4_BASE_URL": "https://something.com/v4",
+        "TC_API_V5_BASE_URL": "https://something.com/v5\u007f",
+        "TOKEN_CACHE_TIME": 909090909,
+        "validIssuers": "[\"https://something.com.com/\",\"https://something.com\",\"https://auth.something.com/\",\"https://auth.something.com/\"]"
+    }
diff --git a/template/variable_file_template/sample_ecs_deployvar.json b/template/variable_file_template/sample_ecs_deployvar.json
new file mode 100644
index 0000000..8cfab17
--- /dev/null
+++ b/template/variable_file_template/sample_ecs_deployvar.json
@@ -0,0 +1,8 @@
+{
+        "AWS_REPOSITORY": "tc-somethings",
+        "AWS_ECS_CLUSTER": "tc-somethings",
+        "AWS_ECS_SERVICE": "something-something-svc",
+        "AWS_ECS_TASK_FAMILY": "tc-somethings-task",
+        "AWS_ECS_CONTAINER_NAME": "tc-somethings-container",
+        "AWS_ECS_PORTS": "0:4000:TCP"
+    }