/// <inheritdoc/>
        public virtual async Task <Index> CreateAsync(string name, IndexAttributes attributes = null,
                                                      string coldPath = null, string homePath = null, string thawedPath = null)
        {
            var arguments = new CreationArgs()
            {
                Name       = name,
                ColdPath   = coldPath,
                HomePath   = homePath,
                ThawedPath = thawedPath
            }
            .AsEnumerable();

            if (attributes != null)
            {
                arguments = arguments.Concat(attributes);
            }

            return(await this.CreateAsync(arguments).ConfigureAwait(false));
        }
        /// <inheritdoc/>
        public async Task <Application> CreateAsync(string name, string template, ApplicationAttributes attributes = null)
        {
            var arguments = new CreationArgs
            {
                ExplicitApplicationName = name,
                Filename = false,
                Name     = name,
                Template = template
            }
            .AsEnumerable();

            if (attributes != null)
            {
                arguments = arguments.Concat(attributes);
            }

            var resourceEndpoint = await this.CreateAsync(arguments).ConfigureAwait(false);

            return(resourceEndpoint);
        }