diff --git a/.github/workflows/release-preview.yml b/.github/workflows/release-preview.yml index a5fbb4d..cc62b12 100644 --- a/.github/workflows/release-preview.yml +++ b/.github/workflows/release-preview.yml @@ -21,10 +21,4 @@ jobs: - name: Pack run: dotnet pack ./src/ImageSharpCommunity.Providers.Remote/ImageSharpCommunity.Providers.Remote.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build - name: Push to NuGet - run: dotnet nuget push **\ImageSharpCommunity.Providers.Remote.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json - - name: Build Umbraco Package - run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release - - name: Pack - run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build - - name: Push to NuGet - run: dotnet nuget push **\Umbraco.Community.ImageSharpRemoteImages.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json + run: dotnet nuget push **\ImageSharpCommunity.Providers.Remote.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96fbd0c..92e32dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,10 +21,4 @@ jobs: - name: Pack run: dotnet pack ./src/ImageSharpCommunity.Providers.Remote/ImageSharpCommunity.Providers.Remote.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build - name: Push to NuGet - run: dotnet nuget push **\ImageSharpCommunity.Providers.Remote.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json - - name: Build Umbraco Package - run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release - - name: Pack - run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build - - name: Push to NuGet - run: dotnet nuget push **\Umbraco.Community.ImageSharpRemoteImages.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json + run: dotnet nuget push **\ImageSharpCommunity.Providers.Remote.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json \ No newline at end of file diff --git a/.github/workflows/umb-release-preview.yml b/.github/workflows/umb-release-preview.yml new file mode 100644 index 0000000..c0f18e2 --- /dev/null +++ b/.github/workflows/umb-release-preview.yml @@ -0,0 +1,24 @@ +name: Release Preview Umbraco Package +on: + push: + tags: + - "umb-v[0-9]+.[0-9]+.[0-9]+-[a-z]*[0-9][0-9][0-9]" +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set VERSION variable from tag + run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV + - name: Output version name + run: echo "${VERSION}" + - name: Cancel job if version is empty + if: ${{ env.VERSION == '' }} + run: exit 1 + - name: Build Umbraco Package + run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release + - name: Pack + run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build + - name: Push to NuGet + run: dotnet nuget push **\Umbraco.Community.ImageSharpRemoteImages.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json diff --git a/.github/workflows/umb-release.yml b/.github/workflows/umb-release.yml new file mode 100644 index 0000000..baac3ca --- /dev/null +++ b/.github/workflows/umb-release.yml @@ -0,0 +1,24 @@ +name: Release Umbraco Package +on: + push: + tags: + - "umb-v[0-9]+.[0-9]+.[0-9]+" +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Set VERSION variable from tag + run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV + - name: Output version name + run: echo "${VERSION}" + - name: Cancel job if version is empty + if: ${{ env.VERSION == '' }} + run: exit 1 + - name: Build Umbraco Package + run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release + - name: Pack + run: dotnet pack ./src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj /p:NuGetVersion=${VERSION} /p:Version=${VERSION} --output . --configuration Release --no-build + - name: Push to NuGet + run: dotnet nuget push **\Umbraco.Community.ImageSharpRemoteImages.${VERSION}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json diff --git a/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestFilter.cs b/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestFilter.cs deleted file mode 100644 index 9dcf156..0000000 --- a/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestFilter.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Umbraco.Cms.Core.Manifest; - -namespace Umbraco.Community.ImageSharpRemoteImages; - -public class ImageSharpRemoteImagesManifestFilter : IManifestFilter -{ - public void Filter(List manifests) - { - manifests.Add(new PackageManifest() - { - AllowPackageTelemetry = true, - PackageName = "ImageSharp Remote Images" - }); - } -} diff --git a/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestReader.cs b/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestReader.cs new file mode 100644 index 0000000..e2a8748 --- /dev/null +++ b/src/Umbraco.Community.ImageSharpRemoteImages/ImageSharpRemoteImagesManifestReader.cs @@ -0,0 +1,23 @@ +using Umbraco.Cms.Core.Manifest; +using Umbraco.Cms.Infrastructure.Manifest; + +namespace Umbraco.Community.ImageSharpRemoteImages; + +public class ImageSharpRemoteImagesManifestReader : IPackageManifestReader +{ + public async Task> ReadPackageManifestsAsync() + { + return await Task.Run(() => + { + return new List() { + new PackageManifest() + { + AllowTelemetry = true, + Name = "ImageSharp Remote Images", + Extensions = Array.Empty(), + Version = "14.0.0" + } + }; + }); + } +} diff --git a/src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj b/src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj index f4e4559..04f2a43 100644 --- a/src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj +++ b/src/Umbraco.Community.ImageSharpRemoteImages/Umbraco.Community.ImageSharpRemoteImages.csproj @@ -20,9 +20,9 @@ git https://github.com/skttl/ImageSharpCommunity.Providers.Remote ImageSharpCommunity.Providers.Remote - net7.0 + net8.0 Remote Image Provider for ImageSharp.Web in Umbraco - 0.1.0 + 1.0.0 @@ -37,13 +37,9 @@ - - - - - - - + + + diff --git a/src/Umbraco.Community.ImageSharpRemoteImages/UmbracoBuilderExtensions.cs b/src/Umbraco.Community.ImageSharpRemoteImages/UmbracoBuilderExtensions.cs index 23ae5b3..90b6af3 100644 --- a/src/Umbraco.Community.ImageSharpRemoteImages/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Community.ImageSharpRemoteImages/UmbracoBuilderExtensions.cs @@ -2,6 +2,7 @@ using ImageSharpCommunity.Providers.Remote.Configuration; using Microsoft.Extensions.DependencyInjection; using Umbraco.Cms.Core.DependencyInjection; +using Umbraco.Cms.Infrastructure.Manifest; namespace Umbraco.Community.ImageSharpRemoteImages; @@ -9,12 +10,6 @@ public static class UmbracoBuilderExtensions { public static IUmbracoBuilder AddImageSharpRemoteImages(this IUmbracoBuilder builder, Action? defaultOptions = default) { - // if the Manifest Filter is registred then we assume this has been added before so we don't do it again. - if (builder.ManifestFilters().Has()) - { - return builder; - } - // load up the settings. var options = builder.Services.AddOptions() .Bind(builder.Config.GetSection("Umbraco:Community:ImageSharpRemoteImages")); @@ -25,7 +20,7 @@ public static IUmbracoBuilder AddImageSharpRemoteImages(this IUmbracoBuilder bui } options.ValidateDataAnnotations(); - builder.ManifestFilters().Append(); + builder.Services.AddSingleton(); builder.Services.InsertImageProvider(0); diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Program.cs b/src/demos/RemoteImageProviderUmbracoDemo/Program.cs index fffedf4..854d98c 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/Program.cs +++ b/src/demos/RemoteImageProviderUmbracoDemo/Program.cs @@ -1,19 +1,27 @@ -namespace RemoteImageProviderUmbracoDemo -{ - public class Program +WebApplicationBuilder builder = WebApplication.CreateBuilder(args); + +builder.CreateUmbracoBuilder() + .AddBackOffice() + .AddWebsite() + .AddDeliveryApi() + .AddComposers() + .Build(); + +WebApplication app = builder.Build(); + +await app.BootUmbracoAsync(); + + +app.UseUmbraco() + .WithMiddleware(u => + { + u.UseBackOffice(); + u.UseWebsite(); + }) + .WithEndpoints(u => { - public static void Main(string[] args) - => CreateHostBuilder(args) - .Build() - .Run(); + u.UseBackOfficeEndpoints(); + u.UseWebsiteEndpoints(); + }); - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureUmbracoDefaults() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStaticWebAssets(); - webBuilder.UseStartup(); - }); - } -} +await app.RunAsync(); diff --git a/src/demos/RemoteImageProviderUmbracoDemo/RemoteImageProviderUmbracoDemo.csproj b/src/demos/RemoteImageProviderUmbracoDemo/RemoteImageProviderUmbracoDemo.csproj index d96b3b5..b53032a 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/RemoteImageProviderUmbracoDemo.csproj +++ b/src/demos/RemoteImageProviderUmbracoDemo/RemoteImageProviderUmbracoDemo.csproj @@ -1,13 +1,13 @@ - net7.0 + net8.0 enable enable - - + + diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Startup.cs b/src/demos/RemoteImageProviderUmbracoDemo/Startup.cs deleted file mode 100644 index b583c3b..0000000 --- a/src/demos/RemoteImageProviderUmbracoDemo/Startup.cs +++ /dev/null @@ -1,67 +0,0 @@ -namespace RemoteImageProviderUmbracoDemo -{ - public class Startup - { - private readonly IWebHostEnvironment _env; - private readonly IConfiguration _config; - - /// - /// Initializes a new instance of the class. - /// - /// The web hosting environment. - /// The configuration. - /// - /// Only a few services are possible to be injected here https://github.com/dotnet/aspnetcore/issues/9337. - /// - public Startup(IWebHostEnvironment webHostEnvironment, IConfiguration config) - { - _env = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment)); - _config = config ?? throw new ArgumentNullException(nameof(config)); - } - - /// - /// Configures the services. - /// - /// The services. - /// - /// This method gets called by the runtime. Use this method to add services to the container. - /// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940. - /// - public void ConfigureServices(IServiceCollection services) - { - - services.AddUmbraco(_env, _config) - .AddBackOffice() - .AddWebsite() - .AddDeliveryApi() - .AddComposers() - .Build(); - } - - /// - /// Configures the application. - /// - /// The application builder. - /// The web hosting environment. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseUmbraco() - .WithMiddleware(u => - { - u.UseBackOffice(); - u.UseWebsite(); - }) - .WithEndpoints(u => - { - u.UseInstallerEndpoints(); - u.UseBackOfficeEndpoints(); - u.UseWebsiteEndpoints(); - }); - } - } -} diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/Blog.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/Blog.cshtml index f5ecc1c..d9ddc84 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/Views/Blog.cshtml +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/Blog.cshtml @@ -10,12 +10,8 @@
- @await Umbraco.RenderMacroAsync("latestBlogposts", - new - { - numberOfPosts = Model.HowManyPostsShouldBeShown, - startNodeId = Model.Id - }) + @await Component.InvokeAsync("LatestBlogPosts", + new { numberOfPosts = Model.HowManyPostsShouldBeShown, startNodeKey = Model.Key })
-
\ No newline at end of file + diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/Default.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/Default.cshtml new file mode 100644 index 0000000..dd15c67 --- /dev/null +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/Default.cshtml @@ -0,0 +1,49 @@ +@using Umbraco.Cms.Core.Models.PublishedContent +@using Umbraco.Extensions +@model Umbraco.SampleSite.Models.LatestBlogPostsViewModel; + +
+ @foreach (IPublishedContent post in Model.BlogPosts) + { + +
+ @post.CreateDate.ToShortDateString() + + @await Html.PartialAsync("~/Views/Partials/CategoryLinks.cshtml", post.Value>("categories")) + +
+

@post.Value("pageTitle")

+
@post.Value("excerpt")
+
+ } + + @if (Model.BlogPosts.Count() < Model.Total) + { + + } +
diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/NoContent.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/NoContent.cshtml new file mode 100644 index 0000000..e7da005 --- /dev/null +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/Components/LatestBlogPosts/NoContent.cshtml @@ -0,0 +1,3 @@ +
+

There are no posts at this time, try again later.

+
diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/blockgrid/Components/latestBlogposts.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/blockgrid/Components/latestBlogposts.cshtml new file mode 100644 index 0000000..dcc2d96 --- /dev/null +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/Partials/blockgrid/Components/latestBlogposts.cshtml @@ -0,0 +1,5 @@ +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage>; +@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels; + +@await Component.InvokeAsync("LatestBlogPosts", + new { numberOfPosts = Model.Content.NumberOfPosts, startNodeKey = Model.Content.StartNode?.Key ?? Guid.Empty }) diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/_ViewImports.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/_ViewImports.cshtml index 91d671e..11aac37 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/Views/_ViewImports.cshtml +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/_ViewImports.cshtml @@ -4,5 +4,3 @@ @using Umbraco.Cms.Core.Models.PublishedContent @using Microsoft.AspNetCore.Html @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, Smidge -@inject Smidge.SmidgeHelper SmidgeHelper diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/home.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/home.cshtml index d4b4b10..c4c28c8 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/Views/home.cshtml +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/home.cshtml @@ -20,7 +20,7 @@ var format = ""; var formats = new Dictionary(); - var sourceUrl = new Uri($"https://placekitten.com/100/100"); + var sourceUrl = new Uri($"https://www.ecreo.dk/media/e2cmeyrm/regnskab2024.png"); var ourSourceUrl = new Uri("https://our.umbraco.com/media/upload/1bfc4cad-4ab9-4dbb-9c11-c2aba80c48c3/52993696145_431a3ec8bd_k.jpg"); var ourRemoteUrl = ourSourceUrl.GetRemoteImageProviderUrl(imageOptions.Value); @@ -72,7 +72,7 @@
- @await Html.GetBlockGridHtmlAsync(Model, "bodyText") + @await Html.GetBlockGridHtmlAsync(Model.BodyText)
diff --git a/src/demos/RemoteImageProviderUmbracoDemo/Views/master.cshtml b/src/demos/RemoteImageProviderUmbracoDemo/Views/master.cshtml index d266967..3645639 100644 --- a/src/demos/RemoteImageProviderUmbracoDemo/Views/master.cshtml +++ b/src/demos/RemoteImageProviderUmbracoDemo/Views/master.cshtml @@ -72,12 +72,12 @@ - @* + @* Wish not to use JQuery? Insert this method call to load Umbraco Forms client dependencies without JQuery. @Html.RenderUmbracoFormDependencies() *@ - + diff --git a/src/demos/RemoteImageProviderUmbracoDemo/umbraco-package-schema.json b/src/demos/RemoteImageProviderUmbracoDemo/umbraco-package-schema.json new file mode 100644 index 0000000..f1f698f --- /dev/null +++ b/src/demos/RemoteImageProviderUmbracoDemo/umbraco-package-schema.json @@ -0,0 +1,6828 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "ApiLoaderProperty": { + "type": [ + "string", + "object" + ] + }, + "BlockEntryShowContentEditConditionConfig": { + "properties": { + "alias": { + "const": "Umb.Condition.BlockEntryShowContentEdit", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "BlockWorkspaceHasSettingsConditionConfig": { + "properties": { + "alias": { + "const": "Umb.Condition.BlockWorkspaceHasSettings", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "CollectionAliasConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.CollectionAlias\">" + }, + { + "properties": { + "match": { + "description": "The collection that this extension should be available in", + "type": "string" + } + }, + "required": [ + "match" + ], + "type": "object" + } + ] + }, + "CollectionBulkActionPermissionConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.CollectionBulkActionPermission\">" + }, + { + "properties": { + "match": { + "type": "object" + } + }, + "required": [ + "match" + ], + "type": "object" + } + ] + }, + "ConditionTypes": { + "anyOf": [ + { + "$ref": "#/definitions/SwitchConditionConfig" + }, + { + "$ref": "#/definitions/BlockEntryShowContentEditConditionConfig" + }, + { + "$ref": "#/definitions/BlockWorkspaceHasSettingsConditionConfig" + }, + { + "$ref": "#/definitions/CollectionAliasConditionConfig" + }, + { + "$ref": "#/definitions/CollectionBulkActionPermissionConditionConfig" + }, + { + "$ref": "#/definitions/SectionAliasConditionConfig" + }, + { + "$ref": "#/definitions/UmbDocumentUserPermissionConditionConfig" + }, + { + "$ref": "#/definitions/UmbSectionUserPermissionConditionConfig" + }, + { + "$ref": "#/definitions/WorkspaceAliasConditionConfig" + }, + { + "$ref": "#/definitions/WorkspaceEntityTypeConditionConfig" + }, + { + "$ref": "#/definitions/UmbConditionConfigBase" + } + ] + }, + "ConditionsDashboardCollection": { + "description": "The conditions for when the dashboard should be available", + "properties": { + "entityType": { + "description": "The entity type that the dashboard collection should be available for", + "examples": [ + "media" + ], + "type": "string" + }, + "sections": { + "description": "An array of section aliases that the dashboard collection should be available in", + "examples": [ + "Umb.Section.Content", + "Umb.Section.Settings" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "entityType", + "sections" + ], + "type": "object" + }, + "ManifestAppEntryPoint": { + "description": "Manifest for an `appEntryPoint`, which is loaded up front when the app starts.\n\nThis type of extension gives full control and will simply load the specified JS file.\nYou could have custom logic to decide which extensions to load/register by using extensionRegistry.\nThis is useful for extensions that need to be loaded up front, like an `authProvider`.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "appEntryPoint", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestAuthProvider": { + "description": "Represents an authentication provider that can be used to authenticate users.\nThe provider needs to be registered in the API that the authorization request is sent to in order to be used.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forProviderName": { + "description": "The provider name that this provider is for.", + "examples": "'Umbraco.Github'", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaAuthProvider", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "authProvider", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forProviderName", + "name", + "type" + ], + "type": "object" + }, + "ManifestBackofficeEntryPoint": { + "description": "Manifest for an `backofficeEntryPoint`, which is loaded after the Backoffice has been loaded and authentication has been done.\n\nThis type of extension gives full control and will simply load the specified JS file.\nYou could have custom logic to decide which extensions to load/register by using extensionRegistry.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "backofficeEntryPoint", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestBase": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestBlockEditorCustomView": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "blockEditorCustomView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestBundle": { + "description": "This type of extension takes a JS module and registers all exported manifests from the pointed JS file.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "bundle", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestCollection": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaCollection" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "collection", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestCollectionAction": { + "description": "An action to perform on an entity\nFor example for content you may wish to create a new document etc", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaCollectionAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "collectionAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestCollectionView": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaCollectionView", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "collectionView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestCondition": { + "description": "This type of extension takes a JS module and registers all exported manifests from the pointed JS file.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "condition", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestCurrentUserAction": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaCurrentUserAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "currentUserAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestCurrentUserActionDefaultKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "default", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaCurrentUserActionDefaultKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "currentUserAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestDashboard": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaDashboard", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "dashboard", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestDashboardCollection": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "$ref": "#/definitions/ConditionsDashboardCollection" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaDashboardCollection" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "dashboardCollection", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "conditions", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestDynamicRootOrigin": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaDynamicRootOrigin" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "dynamicRootOrigin", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestDynamicRootQueryStep": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaDynamicRootQueryStep" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "dynamicRootQueryStep", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityAction": { + "description": "An action to perform on an entity\nFor example for content you may wish to create a new document etc", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaEntityAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionCreateFolderKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "folderCreate", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionFolderKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionDefaultKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "default", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionDefaultKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionDeleteFolderKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "folderDelete", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionFolderKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionDeleteKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "delete", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionDeleteKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionDuplicateToKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "duplicateTo", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionDuplicateToKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionEmptyRecycleBinKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "emptyRecycleBin", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionEmptyRecycleBinKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionMoveToKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "moveTo", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionMoveToKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionReloadTreeItemChildrenKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "reloadTreeItemChildren", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionRenameServerFileKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionRenameServerFileKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "renameServerFile", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionRenameServerFileKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionRestoreFromRecycleBinKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "restoreFromRecycleBin", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionRestoreFromRecycleBinKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionSortChildrenOfKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "sortChildrenOf", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionSortChildrenOfKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionTrashKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "trash", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionTrashKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityActionUpdateFolderKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "folderUpdate", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaEntityActionFolderKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityBulkAction": { + "description": "An action to perform on multiple entities\nFor example for content you may wish to move one or more documents in bulk", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaEntityBulkAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "entityBulkAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntityUserPermission": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaEntityUserPermission" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "entityUserPermission", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestEntryPoint": { + "description": "Manifest for an `entryPoint`, which is loaded after the Backoffice has been loaded and authentication has been done.\n\nThis type of extension gives full control and will simply load the specified JS file.\nYou could have custom logic to decide which extensions to load/register by using extensionRegistry.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "entryPoint", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestExternalLoginProvider": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaExternalLoginProvider", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "externalLoginProvider", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestGlobalContext": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "globalContext", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestGranularUserPermission": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaGranularUserPermission", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "userGranularPermission", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestHeaderApp": { + "description": "Header apps are displayed in the top right corner of the backoffice\nThe two provided header apps are the search and the user menu", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "headerApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestHeaderAppButtonKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "button", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaHeaderAppButtonKind", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "headerApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestHealthCheck": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "$ref": "#/definitions/ApiLoaderProperty", + "description": "The API to load for this health check. This should implement or extend the `UmbHealthCheckContext` interface." + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaHealthCheck" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "healthCheck", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "api", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestIcons": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "icons", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestItemStore": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "itemStore", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestLocalization": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaLocalization" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "localization", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestMenu": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "menu", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestMenuItem": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaMenuItem", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "menuItem", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestMenuItemTreeKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "tree", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaMenuItemTreeKind", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "menuItem", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestMfaLoginProvider": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forProviderName": { + "description": "The provider names that this provider is for.", + "examples": "'Umbraco.GoogleAuthenticator'", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaMfaLoginProvider", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "mfaLoginProvider", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forProviderName", + "name", + "type" + ], + "type": "object" + }, + "ManifestModal": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "modal", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestMonacoMarkdownEditorAction": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaMonacoMarkdownEditorAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "monacoMarkdownEditorAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestPackageView": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaPackageView", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "packageView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestPreviewAppProvider": { + "description": "Preview apps are displayed in the menu of the preview window.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "previewApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestPropertyAction": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forPropertyEditorUis": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaPropertyAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "propertyAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forPropertyEditorUis", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestPropertyActionDefaultKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forPropertyEditorUis": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "default", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaPropertyActionDefaultKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "propertyAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forPropertyEditorUis", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestPropertyEditorSchema": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaPropertyEditorSchema" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "propertyEditorSchema", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestPropertyEditorUi": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaPropertyEditorUi", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "propertyEditorUi", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestRepository": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "repository", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestSearchProvider": { + "description": "Represents an search provider that can be used to search.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaSearchProvider" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "searchProvider", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestSearchResultItem": { + "description": "Represents a search result element.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "searchResultItem", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "name", + "type" + ], + "type": "object" + }, + "ManifestSection": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaSection", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "section", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestSectionRoute": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaSectionRoute" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "sectionRoute", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestSectionSidebarApp": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "sectionSidebarApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestSectionSidebarAppMenuKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "menu", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaSectionSidebarAppMenuKind", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "sectionSidebarApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestSectionView": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaSectionView", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "sectionView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestStore": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "store", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestTheme": { + "description": "Theme manifest for styling the backoffice of Umbraco such as dark, high contrast etc", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "css": { + "description": "The file location of the stylesheet file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "theme", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestTinyMcePlugin": { + "description": "The manifest for a TinyMCE plugin.\nThe plugin will be loaded into the TinyMCE editor.\nA plugin can add things like buttons, menu items, context menu items, etc. through the TinyMCE API.\nA plugin can also add custom commands to the editor.\nA plugin can also modify the behavior of the editor.", + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaTinyMcePlugin" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "tinyMcePlugin", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestTree": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaTree" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "tree", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestTreeItem": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forEntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "treeItem", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forEntityTypes", + "name", + "type" + ], + "type": "object" + }, + "ManifestTreeStore": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "treeStore", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestTypes": { + "anyOf": [ + { + "$ref": "#/definitions/ManifestBase" + }, + { + "$ref": "#/definitions/ManifestCondition" + }, + { + "$ref": "#/definitions/ManifestSectionSidebarAppMenuKind" + }, + { + "$ref": "#/definitions/ManifestSectionSidebarApp" + }, + { + "$ref": "#/definitions/ManifestModal" + }, + { + "$ref": "#/definitions/ManifestTreeItem" + }, + { + "$ref": "#/definitions/ManifestTree" + }, + { + "$ref": "#/definitions/ManifestAuthProvider" + }, + { + "$ref": "#/definitions/ManifestAppEntryPoint" + }, + { + "$ref": "#/definitions/ManifestBackofficeEntryPoint" + }, + { + "$ref": "#/definitions/ManifestBlockEditorCustomView" + }, + { + "$ref": "#/definitions/ManifestBundle" + }, + { + "$ref": "#/definitions/ManifestCollection" + }, + { + "$ref": "#/definitions/ManifestCollectionAction" + }, + { + "$ref": "#/definitions/ManifestCollectionView" + }, + { + "$ref": "#/definitions/ManifestCurrentUserAction" + }, + { + "$ref": "#/definitions/ManifestCurrentUserActionDefaultKind" + }, + { + "$ref": "#/definitions/ManifestDashboard" + }, + { + "$ref": "#/definitions/ManifestDashboardCollection" + }, + { + "$ref": "#/definitions/ManifestDynamicRootOrigin" + }, + { + "$ref": "#/definitions/ManifestDynamicRootQueryStep" + }, + { + "$ref": "#/definitions/ManifestEntityAction" + }, + { + "$ref": "#/definitions/ManifestEntityActionCreateFolderKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionDefaultKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionDeleteFolderKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionDeleteKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionDuplicateToKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionEmptyRecycleBinKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionMoveToKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionReloadTreeItemChildrenKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionRenameServerFileKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionRestoreFromRecycleBinKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionSortChildrenOfKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionTrashKind" + }, + { + "$ref": "#/definitions/ManifestEntityActionUpdateFolderKind" + }, + { + "$ref": "#/definitions/ManifestEntityBulkAction" + }, + { + "$ref": "#/definitions/ManifestEntityUserPermission" + }, + { + "$ref": "#/definitions/ManifestEntryPoint" + }, + { + "$ref": "#/definitions/ManifestExternalLoginProvider" + }, + { + "$ref": "#/definitions/ManifestGlobalContext" + }, + { + "$ref": "#/definitions/ManifestGranularUserPermission" + }, + { + "$ref": "#/definitions/ManifestHeaderApp" + }, + { + "$ref": "#/definitions/ManifestHeaderAppButtonKind" + }, + { + "$ref": "#/definitions/ManifestHealthCheck" + }, + { + "$ref": "#/definitions/ManifestIcons" + }, + { + "$ref": "#/definitions/ManifestItemStore" + }, + { + "$ref": "#/definitions/ManifestLocalization" + }, + { + "$ref": "#/definitions/ManifestMenu" + }, + { + "$ref": "#/definitions/ManifestMenuItem" + }, + { + "$ref": "#/definitions/ManifestMenuItemTreeKind" + }, + { + "$ref": "#/definitions/ManifestMfaLoginProvider" + }, + { + "$ref": "#/definitions/ManifestMonacoMarkdownEditorAction" + }, + { + "$ref": "#/definitions/ManifestPackageView" + }, + { + "$ref": "#/definitions/ManifestPreviewAppProvider" + }, + { + "$ref": "#/definitions/ManifestPropertyAction" + }, + { + "$ref": "#/definitions/ManifestPropertyActionDefaultKind" + }, + { + "$ref": "#/definitions/ManifestPropertyEditorSchema" + }, + { + "$ref": "#/definitions/ManifestPropertyEditorUi" + }, + { + "$ref": "#/definitions/ManifestRepository" + }, + { + "$ref": "#/definitions/ManifestSearchProvider" + }, + { + "$ref": "#/definitions/ManifestSearchResultItem" + }, + { + "$ref": "#/definitions/ManifestSection" + }, + { + "$ref": "#/definitions/ManifestSectionView" + }, + { + "$ref": "#/definitions/ManifestSectionRoute" + }, + { + "$ref": "#/definitions/ManifestStore" + }, + { + "$ref": "#/definitions/ManifestTheme" + }, + { + "$ref": "#/definitions/ManifestTinyMcePlugin" + }, + { + "$ref": "#/definitions/ManifestTreeStore" + }, + { + "$ref": "#/definitions/ManifestUserProfileApp" + }, + { + "$ref": "#/definitions/ManifestWorkspaceActionMenuItem" + }, + { + "$ref": "#/definitions/ManifestWorkspaceAction" + }, + { + "$ref": "#/definitions/ManifestWorkspaceActionDefaultKind" + }, + { + "$ref": "#/definitions/ManifestWorkspaceContext" + }, + { + "$ref": "#/definitions/ManifestWorkspaceFooterApp" + }, + { + "$ref": "#/definitions/ManifestWorkspaceFooterAppMenuBreadcrumbKind" + }, + { + "$ref": "#/definitions/ManifestWorkspaceFooterAppVariantMenuBreadcrumbKind" + }, + { + "$ref": "#/definitions/ManifestWorkspace" + }, + { + "$ref": "#/definitions/ManifestWorkspaceRoutableKind" + }, + { + "$ref": "#/definitions/ManifestWorkspaceView" + }, + { + "$ref": "#/definitions/ManifestWorkspaceViewContentTypeDesignEditorKind" + } + ] + }, + "ManifestUserProfileApp": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaUserProfileApp", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "userProfileApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspace": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaWorkspace" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "workspace", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceAction": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceAction" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceActionDefaultKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "default", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceActionDefaultKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceAction", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceActionMenuItem": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "forWorkspaceActions": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define which workspace actions this menu item should be shown for.", + "examples": "[\n['Umb.WorkspaceAction.Document.Save', 'Umb.WorkspaceAction.Document.SaveAndPublish'],\n\"Umb.WorkspaceAction.Document.Save\"\n]" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceActionMenuItem" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceActionMenuItem", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "forWorkspaceActions", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceContext": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceContext", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceFooterApp": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceFooterApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceFooterAppMenuBreadcrumbKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "menuBreadcrumb", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceFooterApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceFooterAppVariantMenuBreadcrumbKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "variantMenuBreadcrumb", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceFooterApp", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceRoutableKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "api": { + "description": "The file location of the api javascript file to load", + "type": "string" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "routable", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceRoutableKind" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "type": { + "const": "workspace", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceView": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "description": "The kind of the extension, used to group extensions together", + "examples": [ + "button" + ] + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceView", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "meta", + "name", + "type" + ], + "type": "object" + }, + "ManifestWorkspaceViewContentTypeDesignEditorKind": { + "properties": { + "alias": { + "description": "The alias of the extension, ensure it is unique", + "type": "string" + }, + "conditions": { + "description": "Set the conditions for when the extension should be loaded", + "items": { + "$ref": "#/definitions/ConditionTypes" + }, + "type": "array" + }, + "element": { + "description": "The file location of the element javascript file to load", + "type": "string" + }, + "elementName": { + "description": "The HTML web component name to use such as 'my-dashboard'\nNote it is NOT , just the element name.", + "type": "string" + }, + "js": { + "description": "The file location of the javascript file to load", + "type": "string" + }, + "kind": { + "const": "contentTypeDesignEditor", + "description": "The kind of the extension, used to group extensions together", + "type": "string" + }, + "meta": { + "$ref": "#/definitions/MetaWorkspaceViewContentTypeDesignEditorKind", + "description": "This contains properties specific to the type of extension" + }, + "name": { + "description": "The friendly name of the extension", + "type": "string" + }, + "overwrites": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ], + "description": "Define one or more extension aliases that this extension should overwrite." + }, + "type": { + "const": "workspaceView", + "description": "The type of extension such as dashboard etc...", + "type": "string" + }, + "weight": { + "description": "Extensions such as dashboards are ordered by weight with lower numbers being first in the list", + "type": "number" + } + }, + "required": [ + "alias", + "kind", + "meta", + "name", + "type" + ], + "type": "object" + }, + "MetaAuthProvider": { + "properties": { + "behavior": { + "description": "The behavior of the provider when it is used.", + "properties": { + "autoRedirect": { + "default": false, + "description": "If true, the user will be redirected to the provider's login page immediately.", + "type": "boolean" + }, + "popupFeatures": { + "default": "'width=600,height=600,menubar=no,location=no,resizable=yes,scrollbars=yes,status=no,toolbar=no'", + "description": "The features of the popup that is opened when the user logs in.", + "type": "string" + }, + "popupTarget": { + "default": "'umbracoAuthPopup'", + "description": "The target of the popup that is opened when the user logs in.", + "type": "string" + } + }, + "type": "object" + }, + "defaultView": { + "description": "The default view of the provider that is shown to the user.\nIf no element is provided, then the button will be rendered as a", + "properties": { + "color": { + "default": "'secondary'", + "description": "The color of the provider that is shown to the user.", + "enum": [ + "", + "danger", + "default", + "positive", + "warning" + ], + "type": "string" + }, + "icon": { + "default": "'icon-cloud'", + "description": "The icon of the provider that is shown to the user.", + "examples": "['icon-cloud', 'icon-github', 'icon-google', 'icon-facebook', 'icon-twitter', 'icon-x', 'icon-microsoft']", + "type": "string" + }, + "look": { + "default": "'default'", + "description": "The look of the provider that is shown to the user.", + "enum": [ + "", + "default", + "outline", + "placeholder", + "primary", + "secondary" + ], + "type": "string" + } + }, + "type": "object" + }, + "label": { + "description": "The label of the provider that is shown to the user.", + "type": "string" + }, + "linking": { + "description": "The linking options of the provider when it is used.", + "properties": { + "allowManualLinking": { + "default": false, + "description": "If true, the user will be able to link the provider to an existing account.", + "type": "boolean" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "MetaCollection": { + "properties": { + "repositoryAlias": { + "type": "string" + } + }, + "required": [ + "repositoryAlias" + ], + "type": "object" + }, + "MetaCollectionAction": { + "properties": { + "href": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object" + }, + "MetaCollectionView": { + "properties": { + "icon": { + "description": "An icon to represent the collection view", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the collection view", + "type": "string" + }, + "pathName": { + "description": "The URL pathname for this collection view that can be deep linked to by sharing the url", + "type": "string" + } + }, + "required": [ + "icon", + "label", + "pathName" + ], + "type": "object" + }, + "MetaCurrentUserAction": { + "type": "object" + }, + "MetaCurrentUserActionDefaultKind": { + "properties": { + "color": { + "default": "default", + "description": "The color of the button", + "enum": [ + "", + "danger", + "default", + "positive", + "warning" + ], + "type": "string" + }, + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "look": { + "default": "primary", + "description": "The look of the button", + "enum": [ + "", + "default", + "outline", + "placeholder", + "primary", + "secondary" + ], + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object" + }, + "MetaDashboard": { + "properties": { + "label": { + "description": "The displayed name (label) in the navigation.", + "type": "string" + }, + "pathname": { + "description": "This is the URL path part for this view. This is used for navigating or deep linking directly to the dashboard\nhttps://yoursite.com/section/settings/dashboard/my-dashboard-path", + "examples": [ + "my-dashboard-path" + ], + "type": "string" + } + }, + "type": "object" + }, + "MetaDashboardCollection": { + "properties": { + "label": { + "description": "Optional string to display as the label for the dashboard collection", + "type": "string" + }, + "pathname": { + "description": "The URL path for the dashboard which is used for navigating or deep linking directly to the dashboard", + "examples": [ + "media-management-dashboard", + "my-awesome-dashboard" + ], + "type": "string" + }, + "repositoryAlias": { + "description": "The alias of the repository that the dashboard collection is for", + "examples": [ + "Umb.Repository.Media" + ], + "type": "string" + } + }, + "required": [ + "pathname", + "repositoryAlias" + ], + "type": "object" + }, + "MetaDynamicRootOrigin": { + "properties": { + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "originAlias": { + "type": "string" + } + }, + "required": [ + "originAlias" + ], + "type": "object" + }, + "MetaDynamicRootQueryStep": { + "properties": { + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "queryStepAlias": { + "type": "string" + } + }, + "required": [ + "queryStepAlias" + ], + "type": "object" + }, + "MetaEntityAction": { + "type": "object" + }, + "MetaEntityActionDefaultKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + } + }, + "required": [ + "icon", + "label" + ], + "type": "object" + }, + "MetaEntityActionDeleteKind": { + "properties": { + "detailRepositoryAlias": { + "type": "string" + }, + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "itemRepositoryAlias": { + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + } + }, + "required": [ + "detailRepositoryAlias", + "icon", + "itemRepositoryAlias", + "label" + ], + "type": "object" + }, + "MetaEntityActionDuplicateToKind": { + "properties": { + "duplicateRepositoryAlias": { + "type": "string" + }, + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "treeAlias": { + "type": "string" + }, + "treeRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "duplicateRepositoryAlias", + "icon", + "label", + "treeAlias", + "treeRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionEmptyRecycleBinKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "recycleBinRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "label", + "recycleBinRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionFolderKind": { + "properties": { + "folderRepositoryAlias": { + "type": "string" + }, + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + } + }, + "required": [ + "folderRepositoryAlias", + "icon", + "label" + ], + "type": "object" + }, + "MetaEntityActionMoveToKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "moveRepositoryAlias": { + "type": "string" + }, + "treeAlias": { + "type": "string" + }, + "treeRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "label", + "moveRepositoryAlias", + "treeAlias", + "treeRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionRenameServerFileKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "itemRepositoryAlias": { + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "renameRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "itemRepositoryAlias", + "label", + "renameRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionRestoreFromRecycleBinKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "itemRepositoryAlias": { + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "pickerModal": { + "anyOf": [ + { + "$ref": "#/definitions/UmbModalToken,UmbPickerModalValue>" + }, + { + "type": "string" + } + ] + }, + "recycleBinRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "itemRepositoryAlias", + "label", + "pickerModal", + "recycleBinRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionSortChildrenOfKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "sortChildrenOfRepositoryAlias": { + "type": "string" + }, + "treeRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "label", + "sortChildrenOfRepositoryAlias", + "treeRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityActionTrashKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "itemRepositoryAlias": { + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + }, + "recycleBinRepositoryAlias": { + "type": "string" + } + }, + "required": [ + "icon", + "itemRepositoryAlias", + "label", + "recycleBinRepositoryAlias" + ], + "type": "object" + }, + "MetaEntityBulkAction": { + "properties": { + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + } + }, + "type": "object" + }, + "MetaEntityUserPermission": { + "properties": { + "description": { + "type": "string" + }, + "group": { + "type": "string" + }, + "label": { + "type": "string" + }, + "verbs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "verbs" + ], + "type": "object" + }, + "MetaExternalLoginProvider": { + "properties": { + "label": { + "type": "string" + }, + "pathname": { + "type": "string" + } + }, + "required": [ + "label", + "pathname" + ], + "type": "object" + }, + "MetaGranularUserPermission": { + "properties": { + "description": { + "type": "string" + }, + "descriptionKey": { + "type": "string" + }, + "label": { + "type": "string" + }, + "labelKey": { + "type": "string" + }, + "schemaType": { + "type": "string" + } + }, + "required": [ + "schemaType" + ], + "type": "object" + }, + "MetaHeaderAppButtonKind": { + "properties": { + "href": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "href", + "icon", + "label" + ], + "type": "object" + }, + "MetaHealthCheck": { + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object" + }, + "MetaLocalization": { + "properties": { + "culture": { + "description": "The culture is a combination of a language and a country. The language is represented by an ISO 639-1 code and the country is represented by an ISO 3166-1 alpha-2 code.\nThe language and country are separated by a dash.\nThe value is used to describe the language of the translations according to the extension system\nand it will be set as the `lang` attribute on the `` element.", + "examples": [ + "en-us", + "en-gb", + "da-dk" + ], + "type": "string" + }, + "direction": { + "default": "ltr", + "description": "The value is used to describe the direction of the translations according to the extension system\nand it will be set as the `dir` attribute on the `` element. It defaults to `ltr`.", + "enum": [ + "ltr", + "rtl" + ], + "examples": [ + "ltr" + ], + "type": "string" + }, + "localizations": { + "$ref": "#/definitions/UmbLocalizationDictionary", + "description": "The localizations." + } + }, + "required": [ + "culture" + ], + "type": "object" + }, + "MetaMenuItem": { + "properties": { + "entityType": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "menus": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "label", + "menus" + ], + "type": "object" + }, + "MetaMenuItemTreeKind": { + "properties": { + "entityType": { + "type": "string" + }, + "hideTreeRoot": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "menus": { + "items": { + "type": "string" + }, + "type": "array" + }, + "treeAlias": { + "type": "string" + } + }, + "required": [ + "label", + "menus", + "treeAlias" + ], + "type": "object" + }, + "MetaMfaLoginProvider": { + "properties": { + "label": { + "type": "string" + } + }, + "type": "object" + }, + "MetaMonacoMarkdownEditorAction": { + "type": "object" + }, + "MetaPackageView": { + "properties": { + "packageName": { + "type": "string" + } + }, + "required": [ + "packageName" + ], + "type": "object" + }, + "MetaPropertyAction": { + "type": "object" + }, + "MetaPropertyActionDefaultKind": { + "properties": { + "icon": { + "description": "An icon to represent the action to be performed", + "examples": [ + "icon-box", + "icon-grid" + ], + "type": "string" + }, + "label": { + "description": "The friendly name of the action to perform", + "examples": [ + "Create", + "Create Content Template" + ], + "type": "string" + } + }, + "required": [ + "icon", + "label" + ], + "type": "object" + }, + "MetaPropertyEditorSchema": { + "properties": { + "defaultPropertyEditorUiAlias": { + "type": "string" + }, + "settings": { + "$ref": "#/definitions/PropertyEditorSettings" + } + }, + "required": [ + "defaultPropertyEditorUiAlias" + ], + "type": "object" + }, + "MetaPropertyEditorUi": { + "properties": { + "group": { + "default": "Common", + "description": "The group that this property editor UI belongs to, which will be used to group the property editor UIs in the property editor picker.\nIf not specified, the property editor UI will be grouped under \"Common\".", + "examples": [ + "Common", + "Content", + "Media" + ], + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "propertyEditorSchemaAlias": { + "description": "The alias of the property editor schema that this property editor UI is for.\nIf not specified, the property editor UI can only be used to configure other property editors.", + "examples": [ + "Umbraco.TextBox", + "Umbraco.TextArea", + "Umbraco.Label" + ], + "type": "string" + }, + "settings": { + "$ref": "#/definitions/PropertyEditorSettings" + }, + "supportsReadOnly": { + "type": "boolean" + } + }, + "required": [ + "group", + "icon", + "label" + ], + "type": "object" + }, + "MetaSearchProvider": { + "properties": { + "label": { + "description": "The label of the provider that is shown to the user.", + "type": "string" + } + }, + "type": "object" + }, + "MetaSection": { + "properties": { + "label": { + "type": "string" + }, + "pathname": { + "type": "string" + } + }, + "required": [ + "label", + "pathname" + ], + "type": "object" + }, + "MetaSectionRoute": { + "properties": { + "path": { + "type": "string" + } + }, + "type": "object" + }, + "MetaSectionSidebarAppMenuKind": { + "properties": { + "label": { + "type": "string" + }, + "menu": { + "type": "string" + } + }, + "required": [ + "label", + "menu" + ], + "type": "object" + }, + "MetaSectionView": { + "properties": { + "icon": { + "description": "The icon displayed for this view in the navigation.", + "examples": [ + "box" + ], + "type": "string" + }, + "label": { + "description": "The displayed name (label) in the navigation.", + "type": "string" + }, + "pathname": { + "description": "This is the URL path part for this view. This is used for navigating or deep linking directly to the view\nhttps://yoursite.com/section/settings/view/my-view-path", + "examples": [ + "my-view-path" + ], + "type": "string" + } + }, + "required": [ + "icon" + ], + "type": "object" + }, + "MetaTinyMcePlugin": { + "properties": { + "toolbar": { + "description": "If the plugin adds toolbar buttons, this property can be used to configure the buttons.\nThis configuration will be used on the Rich Text Editor configuration page.", + "items": { + "properties": { + "alias": { + "description": "The alias of the toolbar button that will be configured in the TinyMCE editor.", + "type": "string" + }, + "icon": { + "description": "The icon shown on the Rich Text Editor configuration page. The icon has to be a part of TinyMCE's icon set.", + "type": "string" + }, + "label": { + "description": "The label of the option shown on the Rich Text Editor configuration page.", + "type": "string" + } + }, + "required": [ + "alias", + "label" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "MetaTree": { + "properties": { + "repositoryAlias": { + "type": "string" + } + }, + "required": [ + "repositoryAlias" + ], + "type": "object" + }, + "MetaUserProfileApp": { + "properties": { + "label": { + "type": "string" + }, + "pathname": { + "type": "string" + } + }, + "required": [ + "label", + "pathname" + ], + "type": "object" + }, + "MetaWorkspace": { + "properties": { + "entityType": { + "type": "string" + } + }, + "required": [ + "entityType" + ], + "type": "object" + }, + "MetaWorkspaceAction": { + "type": "object" + }, + "MetaWorkspaceActionDefaultKind": { + "properties": { + "color": { + "enum": [ + "", + "danger", + "default", + "positive", + "warning" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "look": { + "enum": [ + "", + "default", + "outline", + "placeholder", + "primary", + "secondary" + ], + "type": "string" + } + }, + "type": "object" + }, + "MetaWorkspaceActionMenuItem": { + "type": "object" + }, + "MetaWorkspaceRoutableKind": { + "properties": { + "entityType": { + "type": "string" + } + }, + "required": [ + "entityType" + ], + "type": "object" + }, + "MetaWorkspaceView": { + "properties": { + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pathname": { + "type": "string" + } + }, + "required": [ + "icon", + "label", + "pathname" + ], + "type": "object" + }, + "MetaWorkspaceViewContentTypeDesignEditorKind": { + "properties": { + "compositionRepositoryAlias": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "pathname": { + "type": "string" + } + }, + "required": [ + "icon", + "label", + "pathname" + ], + "type": "object" + }, + "PropertyEditorSettings": { + "properties": { + "defaultData": { + "items": { + "$ref": "#/definitions/PropertyEditorSettingsDefaultData" + }, + "type": "array" + }, + "properties": { + "items": { + "$ref": "#/definitions/PropertyEditorSettingsProperty" + }, + "type": "array" + } + }, + "required": [ + "properties" + ], + "type": "object" + }, + "PropertyEditorSettingsDefaultData": { + "properties": { + "alias": { + "type": "string" + }, + "value": {} + }, + "required": [ + "alias", + "value" + ], + "type": "object" + }, + "PropertyEditorSettingsProperty": { + "properties": { + "alias": { + "type": "string" + }, + "config": { + "items": { + "properties": { + "alias": { + "type": "string" + }, + "value": {} + }, + "required": [ + "alias" + ], + "type": "object" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string" + }, + "propertyEditorUiAlias": { + "type": "string" + }, + "weight": { + "type": "number" + } + }, + "required": [ + "alias", + "label", + "propertyEditorUiAlias" + ], + "type": "object" + }, + "SectionAliasConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.SectionAlias\">" + }, + { + "properties": { + "match": { + "description": "Define the section that this extension should be available in", + "type": "string" + }, + "oneOf": { + "description": "Define one or more workspaces that this extension should be available in", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "match" + ], + "type": "object" + } + ] + }, + "SwitchConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.Switch\">" + }, + { + "properties": { + "frequency": { + "type": "string" + } + }, + "required": [ + "frequency" + ], + "type": "object" + } + ] + }, + "UmbConditionConfigBase<\"Umb.Condition.CollectionAlias\">": { + "properties": { + "alias": { + "const": "Umb.Condition.CollectionAlias", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.CollectionBulkActionPermission\">": { + "properties": { + "alias": { + "const": "Umb.Condition.CollectionBulkActionPermission", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.SectionAlias\">": { + "properties": { + "alias": { + "const": "Umb.Condition.SectionAlias", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.SectionUserPermission\">": { + "properties": { + "alias": { + "const": "Umb.Condition.SectionUserPermission", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.Switch\">": { + "properties": { + "alias": { + "const": "Umb.Condition.Switch", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.UserPermission.Document\">": { + "properties": { + "alias": { + "const": "Umb.Condition.UserPermission.Document", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.WorkspaceAlias\">": { + "properties": { + "alias": { + "const": "Umb.Condition.WorkspaceAlias", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase<\"Umb.Condition.WorkspaceEntityType\">": { + "properties": { + "alias": { + "const": "Umb.Condition.WorkspaceEntityType", + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbConditionConfigBase": { + "properties": { + "alias": { + "type": "string" + } + }, + "required": [ + "alias" + ], + "type": "object" + }, + "UmbDocumentUserPermissionConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.UserPermission.Document\">" + }, + { + "properties": { + "allOf": { + "description": "The user must have all of the permissions in this array for the condition to be met.", + "items": { + "type": "string" + }, + "type": "array" + }, + "oneOf": { + "description": "The user must have at least one of the permissions in this array for the condition to be met.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + ] + }, + "UmbLocalizationDictionary": { + "type": "object" + }, + "UmbModalConfig": { + "properties": { + "backdropBackground": { + "description": "Set the background property of the modal backdrop", + "type": "string" + }, + "key": { + "type": "string" + }, + "size": { + "enum": [ + "full", + "large", + "medium", + "small" + ], + "type": "string" + }, + "type": { + "enum": [ + "dialog", + "sidebar" + ], + "type": "string" + } + }, + "type": "object" + }, + "UmbModalToken,UmbPickerModalValue>": { + "properties": { + "#alias": { + "type": "string" + }, + "#defaults": { + "$ref": "#/definitions/UmbModalTokenDefaults,UmbPickerModalValue>" + }, + "DATA": { + "description": "Get the data type of the token's data.", + "type": "{ModalDataType}" + }, + "VALUE": { + "description": "Get the value type of the token", + "type": "{ModalValueType}" + } + }, + "required": [ + "#alias", + "DATA", + "VALUE" + ], + "type": "object" + }, + "UmbModalTokenDefaults,UmbPickerModalValue>": { + "properties": { + "data": { + "$ref": "#/definitions/UmbPickerModalData" + }, + "modal": { + "$ref": "#/definitions/UmbModalConfig" + }, + "value": { + "$ref": "#/definitions/UmbPickerModalValue" + } + }, + "type": "object" + }, + "UmbPickerModalData": { + "properties": { + "filter": { + "type": "object" + }, + "multiple": { + "type": "boolean" + }, + "pickableFilter": { + "type": "object" + } + }, + "type": "object" + }, + "UmbPickerModalValue": { + "properties": { + "selection": { + "items": { + "type": [ + "null", + "string" + ] + }, + "type": "array" + } + }, + "required": [ + "selection" + ], + "type": "object" + }, + "UmbSectionUserPermissionConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.SectionUserPermission\">" + }, + { + "properties": { + "match": { + "type": "string" + } + }, + "required": [ + "match" + ], + "type": "object" + } + ] + }, + "UmbracoPackageImportmap": { + "properties": { + "imports": { + "$ref": "#/definitions/UmbracoPackageImportmapValue", + "description": "This is used to define the module specifiers and their respective paths for the package to be used in the browser.", + "examples": [ + { + "library": "./path/to/library.js", + "library/*": "./path/to/library/*" + } + ], + "title": "A module specifier with a path for the importmap" + }, + "scopes": { + "$ref": "#/definitions/UmbracoPackageImportmapScopes", + "description": "This is used to define the scopes for the package to be used in the browser. It has to specify a path and a value that is an object with module specifiers and their respective paths.", + "examples": [ + { + "/path/to/library": { + "library": "./path/to/some/other/library.js" + } + } + ], + "title": "The importmap scopes for the package" + } + }, + "required": [ + "imports" + ], + "type": "object" + }, + "UmbracoPackageImportmapScopes": { + "additionalProperties": { + "$ref": "#/definitions/UmbracoPackageImportmapValue" + }, + "type": "object" + }, + "UmbracoPackageImportmapValue": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "WorkspaceAliasConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.WorkspaceAlias\">" + }, + { + "properties": { + "match": { + "description": "Define the workspace that this extension should be available in", + "type": "string" + }, + "oneOf": { + "description": "Define one or more workspaces that this extension should be available in", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + ] + }, + "WorkspaceEntityTypeConditionConfig": { + "allOf": [ + { + "$ref": "#/definitions/UmbConditionConfigBase<\"Umb.Condition.WorkspaceEntityType\">" + }, + { + "properties": { + "match": { + "description": "Define the workspace that this extension should be available in", + "type": "string" + } + }, + "required": [ + "match" + ], + "type": "object" + } + ] + } + }, + "description": "Umbraco package manifest JSON", + "properties": { + "allowPublicAccess": { + "default": false, + "title": "Decides if the package is allowed to be accessed by the public, e.g. on the login screen", + "type": "boolean" + }, + "allowTelemetry": { + "default": true, + "title": "Decides if the package sends telemetry data for collection", + "type": "boolean" + }, + "extensions": { + "items": { + "$ref": "#/definitions/ManifestTypes" + }, + "title": "An array of Umbraco package manifest types that will be installed", + "type": "array" + }, + "id": { + "title": "The unique identifier of the Umbraco package", + "type": "string" + }, + "importmap": { + "$ref": "#/definitions/UmbracoPackageImportmap", + "description": "This is used to define the imports and the scopes for the package to be used in the browser. It will be combined with the global importmap.", + "title": "The importmap for the package" + }, + "name": { + "title": "The name of the Umbraco package", + "type": "string" + }, + "version": { + "examples": [ + "0.1.0" + ], + "title": "The version of the Umbraco package in the style of semver", + "type": "string" + } + }, + "required": [ + "extensions", + "name" + ], + "type": "object" +} +