/// <summary>
        ///     Gets the channel. This returns more detail, including consumers than the GetChannels method.
        /// </summary>
        /// <param name="source"></param>
        /// <returns>The channel.</returns>
        /// <param name="channelName">Channel name.</param>
        /// <param name="ratesCriteria">Criteria for getting samples of rate data</param>
        /// <param name="cancellationToken"></param>
        public static Channel GetChannel(
            [NotNull] this IManagementClient source,
            string channelName,
            GetRatesCriteria ratesCriteria      = null,
            CancellationToken cancellationToken = default
            )
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            return(source.GetChannelAsync(channelName, ratesCriteria, cancellationToken)
                   .GetAwaiter()
                   .GetResult());
        }