public HttpResponseMessage CreateUmbracoSupportingTypes([FromUri] string token)
        {
            if (!CheckAuthorisationToken(token))
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden));
            }

            try
            {
                // Insert data types before the document types that use them, otherwise the relevant property is not created
                CheckboxDataType.CreateCheckboxDataType();
                CacheDataType.CreateCacheDataType();
                SocialMediaOrderDataType.CreateSocialMediaOrderDataType();
                FacebookWidgetSettingsDataType.CreateFacebookWidgetSettingsDataType();
                FacebookUrlDataType.CreateDataType();
                UmbracoCodeFirstInitializer.CreateDataType(typeof(ShowWidgetDataType));
                TwitterScriptDataType.CreateDataType();
                MultiNodeTreePickerDataType.CreateDataType();
                UrlDataType.CreateDataType();

                RichTextEsccStandardDataType.CreateDataType();
                RichTextEsccWithFormattingDataType.CreateDataType();
                RichTextAuthorNotesDataType.CreateDataType();
                RichTextSingleLinkDataType.CreateDataType();
                RichTextLinksListDataType.CreateDataType();
                RichTextTwoListsOfLinksDataType.CreateDataType();
                LatestDataType.CreateDataType();

                LandingPageColumnsDataType.CreateDataType();
                LandingPageDescriptionsDataType.CreateDataType();

                UmbracoCodeFirstInitializer.CreateDataType(typeof(TopicPageLayoutDataType));

                // Council Plan
                PriorityDataType.CreateDataType();

                // Campaign templates
                UmbracoCodeFirstInitializer.CreateDataType(typeof(ColourPickerDataType));
                UmbracoCodeFirstInitializer.CreateDataType(typeof(AlignmentDataType));
                UmbracoCodeFirstInitializer.CreateDataType(typeof(ShareStyleDataType));

                // Customer focus templates
                EmailAddressDataType.CreateDataType();
                PhoneNumberDataType.CreateDataType();
                LandingPageLayoutDataType.CreateLandingPageLayoutDataType();
                OpeningHoursDataType.CreateDataType();
                UkLocationDataType.CreateDataType(showEastingNorthing: false);

                // For recycling site document type
                ResponsibleAuthorityDataType.CreateDataType();
                UmbracoCodeFirstInitializer.CreateDataType(typeof(WasteTypesDataType));

                // Jobs document types
                UmbracoCodeFirstInitializer.CreateDataType(typeof(PublicOrRedeploymentDataType));

                return(Request.CreateResponse(HttpStatusCode.Created));
            }
            catch (Exception e)
            {
                e.ToExceptionless().Submit();
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }