/// <summary>
        /// Creates a branch on a stream.
        /// </summary>
        /// <param name="branchInput"></param>
        /// <returns>The stream's id.</returns>
        public async Task <string> BranchCreate(CancellationToken cancellationToken, BranchCreateInput branchInput)
        {
            try
            {
                var request = new GraphQLRequest
                {
                    Query     = @"mutation branchCreate($myBranch: BranchCreateInput!){ branchCreate(branch: $myBranch)}",
                    Variables = new
                    {
                        myBranch = branchInput
                    }
                };

                var res = await GQLClient.SendMutationAsync <Dictionary <string, object> >(request, cancellationToken).ConfigureAwait(false);

                if (res.Errors != null)
                {
                    throw new SpeckleException("Could not create branch", res.Errors);
                }

                return((string)res.Data["branchCreate"]);
            }
            catch (Exception e)
            {
                throw new SpeckleException(e.Message, e);
            }
        }
 /// <summary>
 /// Creates a branch on a stream.
 /// </summary>
 /// <param name="branchInput"></param>
 /// <returns>The stream's id.</returns>
 public Task <string> BranchCreate(BranchCreateInput branchInput)
 {
     return(BranchCreate(CancellationToken.None, branchInput));
 }