//
// Copyright 2014-2015 Amazon.com, 
// Inc. or its affiliates. All Rights Reserved.
// 
// SPDX-License-Identifier: Apache-2.0
//
using System;
using System.Globalization;
namespace Amazon.CognitoSync.SyncManager
{
    /// 
    /// Metadata information representing a dataset
    /// 
    public sealed class DatasetMetadata
    {
        private string _datasetName;
        private DateTime? _creationDate;
        private DateTime? _lastModifiedDate;
        private string _lastModifiedBy;
        private long _storageSizeBytes;
        private long _recordCount;
        /// 
        /// Non empty String name of the dataset
        /// 
        /// The name of the dataset.
        public string DatasetName
        {
            get { return this._datasetName; }
        }
        /// 
        /// Date when the dataset is created
        /// 
        /// The creation date.
        public DateTime? CreationDate
        {
            get { return this._creationDate; }
        }
        /// 
        /// Date when the dataset is last modified
        /// 
        /// The last modified date.
        public DateTime? LastModifiedDate
        {
            get { return this._lastModifiedDate; }
        }
        /// 
        /// The device that made the last modification
        /// 
        /// The last modified by.
        public string LastModifiedBy
        {
            get { return this._lastModifiedBy; }
        }
        /// 
        /// The storage size in bytes of the dataset
        /// 
        /// The storage size bytes.
        public long StorageSizeBytes
        {
            get { return this._storageSizeBytes; }
        }
        /// 
        /// Number of records in the dataset
        /// 
        /// The record count.
        public long RecordCount
        {
            get { return this._recordCount; }
        }
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public DatasetMetadata(string datasetName, DateTime? creationDate, DateTime? lastModifiedDate, string lastModifiedBy, long storageSizeBytes, long recordCount)
        {
            this._datasetName = datasetName;
            this._creationDate = creationDate;
            this._lastModifiedDate = lastModifiedDate;
            this._lastModifiedBy = lastModifiedBy;
            this._storageSizeBytes = storageSizeBytes;
            this._recordCount = recordCount;
        }
        /// 
        /// A string representation of DatasetMetadata
        /// 
        /// 
        public override string ToString()
        {
            return string.Format(CultureInfo.InvariantCulture,
                "DatasetName:[{0}], CreationDate:[{1}], LastModifiedDate:[{2}], LastModifiedBy:[{3}], StorageSizeBytes:[{4}], RecordCount:[{5}]",
                DatasetName, CreationDate, LastModifiedDate, LastModifiedBy, StorageSizeBytes, RecordCount);
        }
    }
}