/// <summary>
        /// Initializes a new instance of the <see cref="AccountConfiguration"/> class
        /// with the specified webhook token.
        /// </summary>
        /// <param name="webhookToken">The webhook token to associate with the account.</param>
        /// <exception cref="ArgumentNullException">If <paramref name="webhookToken"/> is <see langword="null"/>.</exception>
        public AccountConfiguration(WebhookToken webhookToken)
        {
            if (webhookToken == null)
            {
                throw new ArgumentNullException("webhookToken");
            }

            _webhookToken = webhookToken;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AccountConfiguration"/> class
        /// with the specified metadata and webhook token.
        /// </summary>
        /// <param name="metadata">The metadata to associate with the monitoring account. If this value is <see langword="null"/>, the metadata associated with the account is not changed.</param>
        /// <param name="webhookToken">The webhook token to associate with the account. If this value is <see langword="null"/>, the webhook token associated with the account is not changed.</param>
        /// <exception cref="ArgumentException">If <paramref name="metadata"/> contains any empty keys.</exception>
        public AccountConfiguration(IDictionary <string, string> metadata, WebhookToken webhookToken)
        {
            if (metadata != null)
            {
                if (metadata.ContainsKey(string.Empty))
                {
                    throw new ArgumentException("metadata cannot contain any empty keys", "metadata");
                }

                _metadata = new Dictionary <string, string>(metadata);
            }

            _webhookToken = webhookToken;
        }