content: # Please refer readme for detailed information
  
  # ======================
  # Add New Columns
  # ======================
  
  # The AddColumn operation allows you to add new columns to your data in below different ways. 
  
  # ======================================================
  # Add Column with a fixed value or value from InputFile1
  # ======================================================
  
  [AddColumn]
  # System = "aws"  # Adds a "System" column with the fixed value "aws"
  # Adding a fixed column with a predefined value
  
  # SystemUserName = "<<inputfile1.UserName>>"  
  
  # Adding a column where the value comes from InputFile1
  # The value for this column will be taken from the "UserName" field in InputFile1
  # Adds "SystemUserName" column with the value of "UserName" from InputFile1
  
  # ResourceURL = "https://portal.azure.com/users/<<inputfile1.UserName>>/<<inputfile1.UserID>>"  
  # Adding a dynamic URL column, where values are inserted from InputFile1
  # The placeholders "<<inputfile1.UserName>>" and "<<inputfile1.UserID>>" will be replaced with actual values from InputFile1
  # Adds "ResourceURL" column by replacing "UserID" and "UserName" from InputFile1 with their respective values
  
  
  # ======================
  # Add Column by Function
  # ======================
  
  [[AddColumn.ByFunction]]
  
  # Supported functions - Length, CurrentDateTime
  
  [[AddColumn.ByFunction]]
  # ColumnName = "TotalUsers"          # Name of the new column
  # Source = "<<inputfile1.Users>>"    # The source column ("Users") from InputFile1. This should be a List
  # Function = "Length"                # Apply the "Length" function to count the number of items in the "Users" list
  
  [[AddColumn.ByFunction]]
  # ColumnName = "EvaluationTime"      # Name of the new column
  # Source = ""                        # No source, as the function will generate the value
  # Function = "CurrentDateTime"       # Apply the "CurrentDateTime" function to get the current date and time
  # Format = ""%Y-%m-%d""              # Format is optional, By default format - 2025-03-25T01:39:03.459229Z
  
  
  [[AddColumn.ByFunction]]
  # ColumnName = "Project"              # Name of the new column
  # Source = "<<inputfile1.Name>>"      # The source column ("Name") from InputFile1. 
  # Function = "SplitByDelimiter"       # Apply the "SplitByDelimiter" function to get the split value
  # Delimiter = "/"                     
  # Index = 3                           # Defines the index of the part to extract after splitting (starting from 0)
  
  
  # ======================
  # Add Column as object
  # ======================
  
  [[AddColumn.AsObject]]
  # ColumnName = "AdditionalInfo"  # Name of the new column
  # ObjectValues = "<<inputfile1.user_id>>,<<inputfile1.role>>,<<inputfile1.permission>>,<<inputfile1.address>>,<<inputfile1.profile.skills>>"
  
  
  # ========================
  # Add Column using Mapping
  # ========================
  
  # Mapping data from InputFile1 to InputFile2 to add a new column
  [[AddColumn.ByMap]]
  # ColumnName = "Manager"                   # Adds "Manager" column to InputFile1
  # Source = "<<inputfile1.UserName>>"       # Source column from InputFile1 (UserName). 
  # Target = "<<inputfile2.Users>>"          # Target column from InputFile2 (Users). 
  # TargetMapping = "<<inputfile2.Manager>>" # Target mapping column from InputFile2 (Manager)
  # IsCaseSensitive = False                  # Optional. By default - false
  
  #Note: This InputFile2 is an optional file used to add additional context to the data in InputFile1, such as mapping one piece of information (e.g., a user) to another related piece of information (e.g., a manager). 
  #This file typically contains data that helps establish relationships or enrich the data from InputFile1. [OPTIONAL]
  
  # As a result, the column 'Manager' will be added for each user by comparing the 'UserName' with the specified user's manager in InputFile2.
  
  
  # ====================
  # Add Column as List
  # ====================
  
  [[AddColumn.AsList]]
  # ColumnName = "PRReviewers"                      # New column name "PRReviewers"
  # Source = "<<inputfile1.requested_reviewers>>"   # Source column (requested_reviewers). This should be a List.
  # Target = "<<Source.login>>"                     # Extracting the "login" field from each object in the list.
  # As a result, the column 'PRReviewers' will be added as a list that contains the values of all targets from the source list.
  
  [[AddColumn.AsList]]
  # ColumnName = "DefaultList"                      # New column name "DefaultList"
  # ListData = "data1,data2,data3"                  # String with comma seperated values
  # As a result,  the column 'DefaultList' will be added as a list by splitting 'ListData' with a comma delimiter.
  
   
  # ========================
  # Add Column by Condition
  # ========================
  
  # Adding a new column(s) based on condition
  [[AddColumn.ByCondition]]
  # Condition = "<<inputfile1.requested_reviewers_count>> > 1" # Expecting requested_reviewers_count 
  # Note : (Nested structure is not supported (eg : <<inputfile1.User.skills.count>>))
  
  # Define behavior for when the condition is true
  [[AddColumn.ByCondition.True]]
  # ValidationStatusCode = "REQ_REV_CNT_MET"
  # ValidationStatusNotes = "Required reviewvers count met"
  # ComplianceStatus = "COMPLIANT"
  # ComplianceStatusReason = "The record is compliant because the required number of reviewers is present for the user."
  
  # Define behavior for when the condition is false
  [[AddColumn.ByCondition.False]]
  # ValidationStatusCode = "REQ_REV_CNT_NT_MET"
  # ValidationStatusNotes = "Required reviewvers count not met"
  # ComplianceStatus = "NON_COMPLIANT"
  # ComplianceStatusReason = "The record is compliant because the required number of reviewers is not present for the user."
  
  #As a result, new columns will be output based on the condition validation.
  
  # =======================
  # Update Existing Column
  # =======================
  
  # UpdateColumn: Section to update existing column values in the dataset
  [UpdateColumn]
  
  # Replaces the "ResourceName" column with the value from the "UserName" column
  # "ResourceName" = "<<inputfile1.UserName>>"
  
  # Replaces the "ResourceID" column with the value from the "UserID" column
  # "ResourceID" = "<<inputfile1.UserID>>"
  
  # Concat Operation for "role" column
  [[UpdateColumn.Concat]]
  # Specifies the column to update
  # ColumnName = "<<inputfile1.role>>"                     
  
  # Specifies the value to concatenate with the existing value in the column
  # ConcatValue = "Role : " 
  
  # Defines where the new value will be placed: at the Start or End of the existing value
  # Position = "Start"  # Supported Options: 'Start' or 'End' 
  
  
  # Split Operation
  [[UpdateColumn.Split]]
  # Defines the source value (e.g., input file or field) for the split operation
  # Source = "<<inputfile1.project>>"
  
  # Specifies the delimiter to split the value
  # Delimiter = "/" 
  
  # Defines the index of the part to extract after splitting (starting from 0)
  # Index = 3
  
  
  # Replace Operation
  [[UpdateColumn.Replace]]
  # Specifies the column to apply the replace operation
  # ColumnName = "<<inputfile1.project>>"                   
  
  # Defines the regex pattern to find within the column's value
  # Regex = "some_pattern_to_find"  # You need to define a pattern here.
  # Note : If the user needs to replace the null value in the data, the regex field can be ignored.
  
  # Specifies the value to replace the found match with
  # ReplaceValue = "replace_value"
  
  #ReplaceWholeValue = "False" # Replace whole string or regex part alone
  
  
  # Change Path Operation
  [[UpdateColumn.ChangePath]]
  # Refers to the original field that contains the data.
  # Source = "<<inputfile1.address.zipcode>>"
  
  # Refers to the destination field where data will be moved or transformed.
  # Supported path - List, dict
  # Target = "<<inputfile1.address.previous_addresses>>"  
  
  # If the target field is a list, you need to specify the Type as either Concat or Append otherwise it is optional
  # Specifies the operation to be applied, Supported : Concat or Append
  #Type = "Append" 
  
  
  
  # ================
  # Delete Columns
  # ================
  
  # Removing unwanted columns from InputFile1
  [DeleteColumn]
  # "ColumnList" = "Users,requested_reviewers"  # Deletes the "Users" and "requested_reviewers" columns
  
  
  # ====================
  # Reorder Columns
  # ====================
  
  # Changing the order of columns in the final output file
  [ReorderColumn]
  # "ColumnList" = "UserName,UserID,Department,Users,requested_reviewers"  # New column order
  
  # ====================
  # Remove Duplicates
  # ====================
  [RemoveDuplicates]
  
  # ColumnList holds an array (list) of column names, separated by commas, based on which duplicates should be removed.
  # ColumnList = "Userid, mobile" 