This class composes Client Context header for Amazon Web Service client. It contains information like app title, version code, version name, client id, OS platform etc.
        /// <summary>
        /// Initializes a new instance of the <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.MobileAnalyticsManager"/> class.
        /// </summary>
        /// <param name="clientContextConfig">Client context config.</param>
        /// <param name="regionEndpoint">Region endpoint.</param>
        /// <param name="credentials">AWS Credentials.</param>
        private MobileAnalyticsManager(string appId, AWSCredentials credentials, RegionEndpoint regionEndpoint)
        {
            _appId = appId;

            ClientContext = new Amazon.Runtime.Internal.ClientContext(appId);

            if (credentials == null)
            {
                throw new ArgumentNullException("credentials");
            }

            BackgroundDeliveryClient = new DeliveryClient(AWSConfigsMobileAnalytics.AllowUseDataNetwork, ClientContext, credentials, regionEndpoint);

            Session = new Session(_appId);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.MobileAnalyticsManager"/> class.
        /// </summary>
        /// <param name="clientContextConfig">Client context config.</param>
        /// <param name="regionEndpoint">Region endpoint.</param>
        /// <param name="credentials">AWS Credentials.</param>
        private MobileAnalyticsManager(string appId, AWSCredentials credentials, RegionEndpoint regionEndpoint)
        {
            _appId = appId;

            ClientContext = new Amazon.Runtime.Internal.ClientContext(appId);

            if (credentials == null)
                throw new ArgumentNullException("credentials");

            BackgroundDeliveryClient = new DeliveryClient(AWSConfigsMobileAnalytics.AllowUseDataNetwork, ClientContext, credentials, regionEndpoint);

            Session = new Session(_appId);
        }