/// <summary>
        /// Create a new album.
        /// </summary>
        /// <param name="imageIDs">The image ids that you want to be included in the album.</param>
        /// <param name="coverImageId">The id of the image you want to set as the cover.  If the coverImageID isn't in the list you specified in the first parameter, this is ignored.</param>
        /// <param name="title"> The title of the album </param>
        /// <param name="description">The description of the album</param>
        /// <param name="albumPrivacy">Sets the privacy level of the album. Values are : public | hidden | secret. Defaults to user's privacy settings for logged in users.</param>
        /// <param name="albumLayout">Sets the layout to display the album. Values are : blog | grid | horizontal | vertical</param>
        /// <returns></returns>
        public async Task <ImgurAlbum> AlbumCreationAsync(List <string> imageIDs, string coverImageId, String title = "", String description = "", Privacy albumPrivacy = Privacy.ignore, Layout albumLayout = Layout.ignore)
        {
            MultipartFormDataContent content = new MultipartFormDataContent(BoundaryGuid.ToString());

            if (imageIDs.Count != 0 || imageIDs == null)
            {
                string serializedImageList = await Task.Run(() => JsonConvert.SerializeObject(imageIDs));

                content.Add(new StringContent(serializedImageList), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.ids]);
            }
            if (imageIDs.Contains(coverImageId))
            {
                content.Add(new StringContent(coverImageId), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.cover]);
            }
            if (title != "")
            {
                content.Add(new StringContent(title), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.title]);
            }
            if (description != "")
            {
                content.Add(new StringContent(description), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.description]);
            }
            if (albumPrivacy != Privacy.ignore)
            {
                content.Add(new StringContent(Utilities.convertToString(albumPrivacy)), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.privacy]);
            }
            if (albumLayout != Layout.ignore)
            {
                content.Add(new StringContent(Utilities.convertToString(albumLayout)), ImgurEndpoints.ImageEndpointParameterLookup[ImgurParameters.layout]);
            }
            String responseString = await PostAnonymousImgurDataAsync(ImgurEndpoints.AlbumCreation(), content);

            ImgurBasicWithAlbum status = await Task.Run(() => JsonConvert.DeserializeObject <ImgurBasicWithAlbum>(responseString, _defaultSerializerSettings));

            // By default, we only get the deletehash in the basic response but this should really include the deletehash
            // so we make another call to fill in the rest of the details about the object
            ImgurAlbum album = await this.AlbumDetailsAsync(status.data.id);

            album.deletehash = status.data.deletehash;

            return(album);
        }