context: // ===================================================================================================
  //                           _  __     _ _
  //                          | |/ /__ _| | |_ _  _ _ _ __ _
  //                          | ' </ _` | |  _| || | '_/ _` |
  //                          |_|\_\__,_|_|\__|\_,_|_| \__,_|
  //
  // This file is part of the Kaltura Collaborative Media Suite which allows users
  // to do with audio, video, and animation what Wiki platforms allow them to do with
  // text.
  //
  // Copyright (C) 2006-2022  Kaltura Inc.
  //
  // This program is free software: you can redistribute it and/or modify
  // it under the terms of the GNU Affero General Public License as
  // published by the Free Software Foundation, either version 3 of the
  // License, or (at your option) any later version.
  //
  // This program is distributed in the hope that it will be useful,
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  // GNU Affero General Public License for more details.
  //
  // You should have received a copy of the GNU Affero General Public License
  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
  //
  // @ignore
  // ===================================================================================================
  using System;
  using System.Xml;
  using System.Collections.Generic;
  using Kaltura.Enums;
  using Kaltura.Request;
  using Newtonsoft.Json;
  using Newtonsoft.Json.Linq;
  
  namespace Kaltura.Types
  {
  	public class MetroPcsDistributionProfile : ConfigurableDistributionProfile
  	{
  		#region Constants
  		public const string FTP_HOST = "ftpHost";
  		public const string FTP_LOGIN = "ftpLogin";
  		public const string FTP_PASS = "ftpPass";
  		public const string FTP_PATH = "ftpPath";
  		public const string PROVIDER_NAME = "providerName";
  		public const string PROVIDER_ID = "providerId";
  		public const string COPYRIGHT = "copyright";
  		public const string ENTITLEMENTS = "entitlements";
  		public const string RATING = "rating";
  		public const string ITEM_TYPE = "itemType";
  		#endregion
  
  		#region Private Fields
  		private string _FtpHost = null;
  		private string _FtpLogin = null;
  		private string _FtpPass = null;
  		private string _FtpPath = null;
  		private string _ProviderName = null;
  		private string _ProviderId = null;
  		private string _Copyright = null;
  		private string _Entitlements = null;
  		private string _Rating = null;
  		private string _ItemType = null;
  		#endregion
  
  		#region Properties
  		/// <summary>
  		/// Use FtpHostAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string FtpHost
  		{
  			get { return _FtpHost; }
  			set 
  			{ 
  				_FtpHost = value;
  				OnPropertyChanged("FtpHost");
  			}
  		}
  		/// <summary>
  		/// Use FtpLoginAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string FtpLogin
  		{
  			get { return _FtpLogin; }
  			set 
  			{ 
  				_FtpLogin = value;
  				OnPropertyChanged("FtpLogin");
  			}
  		}
  		/// <summary>
  		/// Use FtpPassAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string FtpPass
  		{
  			get { return _FtpPass; }
  			set 
  			{ 
  				_FtpPass = value;
  				OnPropertyChanged("FtpPass");
  			}
  		}
  		/// <summary>
  		/// Use FtpPathAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string FtpPath
  		{
  			get { return _FtpPath; }
  			set 
  			{ 
  				_FtpPath = value;
  				OnPropertyChanged("FtpPath");
  			}
  		}
  		/// <summary>
  		/// Use ProviderNameAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string ProviderName
  		{
  			get { return _ProviderName; }
  			set 
  			{ 
  				_ProviderName = value;
  				OnPropertyChanged("ProviderName");
  			}
  		}
  		/// <summary>
  		/// Use ProviderIdAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string ProviderId
  		{
  			get { return _ProviderId; }
  			set 
  			{ 
  				_ProviderId = value;
  				OnPropertyChanged("ProviderId");
  			}
  		}
  		/// <summary>
  		/// Use CopyrightAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string Copyright
  		{
  			get { return _Copyright; }
  			set 
  			{ 
  				_Copyright = value;
  				OnPropertyChanged("Copyright");
  			}
  		}
  		/// <summary>
  		/// Use EntitlementsAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string Entitlements
  		{
  			get { return _Entitlements; }
  			set 
  			{ 
  				_Entitlements = value;
  				OnPropertyChanged("Entitlements");
  			}
  		}
  		/// <summary>
  		/// Use RatingAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string Rating
  		{
  			get { return _Rating; }
  			set 
  			{ 
  				_Rating = value;
  				OnPropertyChanged("Rating");
  			}
  		}
  		/// <summary>
  		/// Use ItemTypeAsDouble property instead
  		/// </summary>
  		[JsonProperty]
  		public string ItemType
  		{
  			get { return _ItemType; }
  			set 
  			{ 
  				_ItemType = value;
  				OnPropertyChanged("ItemType");
  			}
  		}
  		#endregion
  
  		#region CTor
  		public MetroPcsDistributionProfile()
  		{
  		}
  
  		public MetroPcsDistributionProfile(JToken node) : base(node)
  		{
  			if(node["ftpHost"] != null)
  			{
  				this._FtpHost = node["ftpHost"].Value<string>();
  			}
  			if(node["ftpLogin"] != null)
  			{
  
gt: 				this._FtpLogin = node["ftpLogin"].Value<string>();