namespace Amazon.Lambda.CognitoEvents
{
    using System;
    using System.Collections.Generic;
    /// 
    /// AWS Cognito event
    /// http://docs.aws.amazon.com/cognito/latest/developerguide/cognito-events.html
    /// http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-cognito-sync-trigger
    /// 
    public class CognitoEvent
    {
        /// 
        /// The data set name of the event.
        /// 
        public string DatasetName { get; set; }
        /// 
        /// The map of data set records for the event.
        /// 
        public IDictionary DatasetRecords { get; set; }
        /// 
        /// The event type.
        /// 
        public string EventType { get; set; }
        /// 
        /// The identity pool ID associated with the data set.
        /// 
        public string IdentityId { get; set; }
        /// 
        /// The identity pool ID associated with the data set.
        /// 
        public string IdentityPoolId { get; set; }
        /// 
        /// The region in which data set resides.
        /// 
        public string Region { get; set; }
        /// 
        /// The event version.
        /// 
        public int Version { get; set; }
        /// 
        /// Data set records for the event.
        /// 
        public class DatasetRecord
        {
            /// 
            /// The record's new value.
            /// 
            public string NewValue { get; set; }
            /// 
            /// The record's old value.
            /// 
            public string OldValue { get; set; }
            /// 
            /// The operation associated with the record.
            /// For a new record or any updates to existing record it is set to "replace".
            /// For deleting a record it is set to "remove".
            /// 
            public string Op { get; set; }
        }
    }
}