/// <summary>
        /// Initializes a new instance of <see cref="TableAccountSasBuilder"/> based on an existing Uri containing a shared acccess signature.
        /// </summary>
        /// <param name="sasUri">The Uri containing a SAS token to parse.</param>
        /// <returns></returns>
        public TableAccountSasBuilder(Uri sasUri)
        {
            Argument.AssertNotNull(sasUri, nameof(sasUri));

            var uriBuilder = new TableUriBuilder(sasUri);

            if (!uriBuilder.Sas.ResourceTypes.HasValue)
            {
                throw new ArgumentException("Uri must contain a ResourceType value", nameof(sasUri));
            }

            ExpiresOn     = uriBuilder.Sas.ExpiresOn;
            Identifier    = uriBuilder.Sas.Identifier;
            IPRange       = uriBuilder.Sas.IPRange;
            Protocol      = uriBuilder.Sas.Protocol;
            StartsOn      = uriBuilder.Sas.StartsOn;
            Version       = uriBuilder.Sas.Version;
            ResourceTypes = uriBuilder.Sas.ResourceTypes.Value;
            SetPermissions(uriBuilder.Sas.Permissions);
        }