// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Microsoft.SelfService.Portal.Core.API.Context; #nullable disable namespace Microsoft.SelfService.Portal.Core.API.Migrations { [DbContext(typeof(DataContext))] [Migration("20260709091610_SeedCredentialSecretsAndDeploymentArtifacts")] partial class SeedCredentialSecretsAndDeploymentArtifacts { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationDefinitionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DefinitionHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(5); b.Property("Kind") .IsRequired() .HasMaxLength(32) .HasColumnType("nvarchar(32)") .HasColumnOrder(2); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(3); b.Property("PropertiesJson") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("TemplateRevisionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.HasKey("Id"); b.HasIndex("TemplateRevisionId", "Kind", "Name") .IsUnique() .HasFilter("[TemplateRevisionId] IS NOT NULL"); b.ToTable("ConfigurationDefinitions", t => { t.HasCheckConstraint("CK_ConfigurationDefinitions_PropertiesJson_IsJson", "ISJSON([PropertiesJson]) = 1"); }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationValueModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("ConfigurationDefinitionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("ScopeId") .HasColumnType("uniqueidentifier") .HasColumnOrder(3); b.Property("ScopeType") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(2); b.Property("SortOrder") .HasColumnType("int") .HasColumnOrder(8); b.Property("SourcePath") .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("ValueHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(7); b.Property("ValueJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("ValueSourceType") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(4); b.HasKey("Id"); b.HasIndex("ConfigurationDefinitionId", "ScopeType", "ScopeId", "SortOrder"); b.ToTable("ConfigurationValues", t => { t.HasCheckConstraint("CK_ConfigurationValues_ValueJson_IsJson", "[ValueJson] IS NULL OR ISJSON([ValueJson]) = 1"); }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.CredentialSecretModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("IsEnabled") .HasColumnType("bit") .HasColumnOrder(6); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(1); b.Property("SecretType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("SecretValue") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("UserName") .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("CredentialSecrets", t => { t.HasCheckConstraint("CK_CredentialSecrets_MetadataJson_IsJson", "[MetadataJson] IS NULL OR ISJSON([MetadataJson]) = 1"); }); b.HasData( new { Id = new Guid("90000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsEnabled = true, MetadataJson = "{\"environment\":\"Demo\",\"plaintext\":true}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Windows/SharePoint/SetupAccount", SecretType = "Credential", SecretValue = "DemoOnly-DoNotUseInProduction!", UserName = "CONTOSO\\svc_sp_setup" }, new { Id = new Guid("90000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsEnabled = true, MetadataJson = "{\"environment\":\"Demo\",\"plaintext\":true}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Windows/SharePoint/FarmAccount", SecretType = "Credential", SecretValue = "DemoOnly-DoNotUseInProduction!", UserName = "CONTOSO\\svc_sp_farm" }, new { Id = new Guid("90000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsEnabled = true, MetadataJson = "{\"environment\":\"Demo\",\"plaintext\":true}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Windows/SharePoint/FarmPassphrase", SecretType = "Secret", SecretValue = "DemoOnly-DoNotUseInProduction!" }, new { Id = new Guid("90000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsEnabled = true, MetadataJson = "{\"environment\":\"Demo\",\"plaintext\":true}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Windows/SharePoint/DefaultServiceAccount", SecretType = "Credential", SecretValue = "DemoOnly-DoNotUseInProduction!", UserName = "CONTOSO\\svc_sp_service" }, new { Id = new Guid("90000000-0000-0000-0000-000000000005"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsEnabled = true, MetadataJson = "{\"environment\":\"Demo\",\"plaintext\":true}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Windows/SharePoint/SearchAccount", SecretType = "Credential", SecretValue = "DemoOnly-DoNotUseInProduction!", UserName = "CONTOSO\\svc_sp_search" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentArtifactModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("ArtifactType") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(4); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("DeploymentJson") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("DeploymentTargetId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.Property("InputHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(10); b.Property("IsStale") .HasColumnType("bit") .HasColumnOrder(12); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("OutputHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(11); b.Property("ResolvedJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(8); b.Property("SourceJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(7); b.Property("SourceSnapshotJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(9); b.Property("StaleReasonJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(13); b.Property("Status") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("TargetId") .HasColumnType("uniqueidentifier") .HasColumnOrder(3); b.HasKey("Id"); b.HasIndex("DeploymentGroupId"); b.HasIndex("TargetId", "DeploymentGroupId"); b.ToTable("DeploymentArtifacts", t => { t.HasCheckConstraint("CK_DeploymentArtifacts_DeploymentJson_IsJson", "ISJSON([DeploymentJson]) = 1"); t.HasCheckConstraint("CK_DeploymentArtifacts_ResolvedJson_IsJson", "[ResolvedJson] IS NULL OR ISJSON([ResolvedJson]) = 1"); t.HasCheckConstraint("CK_DeploymentArtifacts_SourceJson_IsJson", "[SourceJson] IS NULL OR ISJSON([SourceJson]) = 1"); t.HasCheckConstraint("CK_DeploymentArtifacts_SourceSnapshotJson_IsJson", "[SourceSnapshotJson] IS NULL OR ISJSON([SourceSnapshotJson]) = 1"); }); b.HasData( new { Id = new Guid("85000000-0000-0000-0000-000000000101"), ArtifactType = "ResolvedConfigurationData", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), DeploymentJson = "{\n \"metadata\": {\n \"name\": \"Contoso-Test-SharePoint\",\n \"deploymentId\": \"8f6c2c1a\",\n \"source\": \"DemoData\"\n },\n \"parameters\": {\n \"DatabasePrefix\": \"SharePoint_Contoso_Test\"\n },\n \"variables\": {\n \"DatabasePrefix\": \"SharePoint_Contoso_Test\",\n \"ServiceDbPrefix\": \"SharePoint_Contoso_Test_Services\",\n \"ConfigDbName\": \"SharePoint_Contoso_Test_Farm_Config\"\n },\n \"resources\": {\n \"AllNodes\": [\n { \"NodeName\": \"CLD-SHP-01\", \"RunCentralAdministration\": true },\n { \"NodeName\": \"CLD-SHP-02\", \"RunCentralAdministration\": false },\n { \"NodeName\": \"CLD-SHP-03\", \"RunCentralAdministration\": false }\n ],\n \"NonNodeData\": {\n \"LocalConfigurationManager\": {\n \"ConfigurationMode\": \"ApplyOnly\"\n }\n }\n }\n}", InputHash = "F081B9BACB21534D9673317615B990CC3836D68416CD6C94E06045E524640020", IsStale = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", OutputHash = "8A49E86D9D571FDE9FE243849A5399A73750798F165B0D9DCE1318B8561CEF01", ResolvedJson = "{\n \"metadata\": {\n \"name\": \"Contoso-Test-SharePoint\",\n \"deploymentId\": \"8f6c2c1a\",\n \"source\": \"DemoData\"\n },\n \"parameters\": {\n \"DatabasePrefix\": \"SharePoint_Contoso_Test\"\n },\n \"variables\": {\n \"DatabasePrefix\": \"SharePoint_Contoso_Test\",\n \"ServiceDbPrefix\": \"SharePoint_Contoso_Test_Services\",\n \"ConfigDbName\": \"SharePoint_Contoso_Test_Farm_Config\"\n },\n \"resources\": {\n \"AllNodes\": [\n { \"NodeName\": \"CLD-SHP-01\", \"RunCentralAdministration\": true },\n { \"NodeName\": \"CLD-SHP-02\", \"RunCentralAdministration\": false },\n { \"NodeName\": \"CLD-SHP-03\", \"RunCentralAdministration\": false }\n ],\n \"NonNodeData\": {\n \"LocalConfigurationManager\": {\n \"ConfigurationMode\": \"ApplyOnly\"\n }\n }\n }\n}", SourceJson = "{\"source\":\"DemoData\",\"composition\":\"Test.Merge.ps1\"}", SourceSnapshotJson = "{\n \"templateRevisions\": [\n {\n \"id\": \"72000000-0000-0000-0000-000000000101\",\n \"templateVersionId\": \"71000000-0000-0000-0000-000000000101\",\n \"role\": \"Environment\",\n \"alias\": \"Environment-Test\",\n \"hash\": \"58553C7A4E902B5E39D30272754FEF9EF805A7F36363D8316A9B37540C6D4646\"\n },\n {\n \"id\": \"72000000-0000-0000-0000-000000000102\",\n \"templateVersionId\": \"71000000-0000-0000-0000-000000000102\",\n \"role\": \"Domain\",\n \"alias\": \"Domain-Contoso\",\n \"hash\": \"B265C4D542826423BAAF50BF939F026CC67FF631FEC19F708067516BCE4C7667\"\n },\n {\n \"id\": \"72000000-0000-0000-0000-000000000103\",\n \"templateVersionId\": \"71000000-0000-0000-0000-000000000103\",\n \"role\": \"Service\",\n \"alias\": \"Service-SharePoint-Contoso\",\n \"hash\": \"E3B0E2A8E0C85CCD92AEA521ECD243E61E34C61D7078D6715E6317F5669A1D69\"\n },\n {\n \"id\": \"72000000-0000-0000-0000-000000000104\",\n \"templateVersionId\": \"71000000-0000-0000-0000-000000000104\",\n \"role\": \"Stage\",\n \"alias\": \"Stage-Install\",\n \"hash\": \"ACA23E44C9F625F080D2653646555A9DE5546D8DE7BB2166324E775BCF47F3C1\"\n }\n ],\n \"targets\": [\n { \"id\": \"30000000-0000-0000-0000-000000000101\", \"nodeName\": \"CLD-SHP-01\" },\n { \"id\": \"30000000-0000-0000-0000-000000000102\", \"nodeName\": \"CLD-SHP-02\" },\n { \"id\": \"30000000-0000-0000-0000-000000000103\", \"nodeName\": \"CLD-SHP-03\" }\n ]\n}", Status = "Pending" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentRuleId") .HasColumnType("uniqueidentifier") .HasColumnOrder(3); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Status") .IsRequired() .ValueGeneratedOnAdd() .HasColumnType("nvarchar(max)") .HasColumnOrder(4) .HasDefaultValueSql("'New'"); b.Property("TemplateId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("DeploymentRuleId"); b.HasIndex("TemplateId"); b.ToTable("DeploymentBatches", (string)null); b.HasData( new { Id = new Guid("80000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateId = new Guid("70000000-0000-0000-0000-000000000003") }, new { Id = new Guid("80000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateId = new Guid("70000000-0000-0000-0000-000000000103") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => { b.Property("TargetId") .HasColumnType("uniqueidentifier") .HasColumnOrder(3); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnName("DeploymentBatchId") .HasColumnOrder(2); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("CurrentArtifactId") .HasColumnType("uniqueidentifier") .HasColumnOrder(5); b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("JSONData") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(7); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("OverridesJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(8); b.Property("SourceJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(9); b.Property("Status") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("TemplateRevisionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(4); b.HasKey("TargetId", "DeploymentGroupId"); b.HasIndex("CurrentArtifactId"); b.HasIndex("DeploymentGroupId"); b.HasIndex("TemplateRevisionId"); b.ToTable("DeploymentExecutions", (string)null); b.HasData( new { TargetId = new Guid("30000000-0000-0000-0000-000000000004"), DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Id = new Guid("81000000-0000-0000-0000-000000000001"), JSONData = "{\"role\":\"WebFrontEnd\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000003") }, new { TargetId = new Guid("30000000-0000-0000-0000-000000000005"), DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Id = new Guid("81000000-0000-0000-0000-000000000002"), JSONData = "{\"role\":\"Application\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000003") }, new { TargetId = new Guid("30000000-0000-0000-0000-000000000101"), DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Id = new Guid("81000000-0000-0000-0000-000000000101"), JSONData = "{\"role\":\"Node\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000103") }, new { TargetId = new Guid("30000000-0000-0000-0000-000000000102"), DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Id = new Guid("81000000-0000-0000-0000-000000000102"), JSONData = "{\"role\":\"Node\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000103") }, new { TargetId = new Guid("30000000-0000-0000-0000-000000000103"), DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Id = new Guid("81000000-0000-0000-0000-000000000103"), JSONData = "{\"role\":\"Node\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Status = "Pending", TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000103") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentParameterValueModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("DeploymentTemplateSelectionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.Property("IsOverride") .HasColumnType("bit") .HasColumnOrder(6); b.Property("IsSecretReference") .HasColumnType("bit") .HasColumnOrder(5); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(3); b.Property("ValueJson") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.HasKey("Id"); b.HasIndex("DeploymentTemplateSelectionId"); b.HasIndex("DeploymentGroupId", "Name") .IsUnique() .HasFilter("[DeploymentTemplateSelectionId] IS NULL"); b.HasIndex("DeploymentGroupId", "DeploymentTemplateSelectionId", "Name") .IsUnique() .HasFilter("[DeploymentTemplateSelectionId] IS NOT NULL"); b.ToTable("DeploymentParameterValues", t => { t.HasCheckConstraint("CK_DeploymentParameterValues_ValueJson_IsJson", "ISJSON([ValueJson]) = 1"); }); b.HasData( new { Id = new Guid("83000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), DeploymentTemplateSelectionId = new Guid("82000000-0000-0000-0000-000000000001"), IsOverride = true, IsSecretReference = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "DatabasePrefix", ValueJson = "{\"value\":\"SharePoint_Contoso_Test\"}" }, new { Id = new Guid("83000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), DeploymentTemplateSelectionId = new Guid("82000000-0000-0000-0000-000000000001"), IsOverride = true, IsSecretReference = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "FarmAccount", ValueJson = "{\"provider\":\"SecretManagement\",\"vault\":\"ContosoDemo\",\"name\":\"Windows/SharePoint/FarmAccount\"}" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Description") .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("IsActive") .HasColumnType("bit") .HasColumnOrder(3); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.HasKey("Id"); b.ToTable("DeploymentRules"); b.HasData( new { Id = new Guid("60000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Validate input, wait for approval, then provision targets.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Standard Provisioning" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentRuleId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("RequiresApproval") .HasColumnType("bit") .HasColumnOrder(5); b.Property("SortOrder") .HasColumnType("int") .HasColumnOrder(2); b.Property("StepType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.HasKey("Id"); b.HasIndex("DeploymentRuleId"); b.ToTable("DeploymentRuleSteps"); b.HasData( new { Id = new Guid("60000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), MetadataJson = "{\"action\":\"validate\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Validate configuration", RequiresApproval = false, SortOrder = 10, StepType = "Provision" }, new { Id = new Guid("60000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), MetadataJson = "{\"approverGroup\":\"Platform Owners\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Approve deployment", RequiresApproval = true, SortOrder = 20, StepType = "Approval" }, new { Id = new Guid("60000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), MetadataJson = "{\"action\":\"deploy\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Provision workload", RequiresApproval = false, SortOrder = 30, StepType = "Provision" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentTargetAssignmentModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("NodeDataJson") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("RoleKey") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(3); b.Property("SortOrder") .HasColumnType("int") .HasColumnOrder(4); b.Property("TargetId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("TargetId"); b.HasIndex("DeploymentGroupId", "TargetId", "RoleKey") .IsUnique(); b.ToTable("DeploymentTargetAssignments", t => { t.HasCheckConstraint("CK_DeploymentTargetAssignments_NodeDataJson_IsJson", "ISJSON([NodeDataJson]) = 1"); }); b.HasData( new { Id = new Guid("84000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", NodeDataJson = "{\"nodeName\":\"CT-SHP-01\"}", RoleKey = "WebFrontEnd", SortOrder = 10, TargetId = new Guid("30000000-0000-0000-0000-000000000004") }, new { Id = new Guid("84000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", NodeDataJson = "{\"nodeName\":\"CT-SHP-02\"}", RoleKey = "Application", SortOrder = 20, TargetId = new Guid("30000000-0000-0000-0000-000000000005") }, new { Id = new Guid("84000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", NodeDataJson = "{\"nodeName\":\"CLD-SHP-01\",\"RunCentralAdministration\":true}", RoleKey = "Node", SortOrder = 10, TargetId = new Guid("30000000-0000-0000-0000-000000000101") }, new { Id = new Guid("84000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", NodeDataJson = "{\"nodeName\":\"CLD-SHP-02\",\"RunCentralAdministration\":false}", RoleKey = "Node", SortOrder = 20, TargetId = new Guid("30000000-0000-0000-0000-000000000102") }, new { Id = new Guid("84000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", NodeDataJson = "{\"nodeName\":\"CLD-SHP-03\",\"RunCentralAdministration\":false}", RoleKey = "Node", SortOrder = 30, TargetId = new Guid("30000000-0000-0000-0000-000000000103") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentTemplateSelectionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Alias") .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("SortOrder") .HasColumnType("int") .HasColumnOrder(5); b.Property("TemplateRevisionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(3); b.Property("TemplateRole") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("TemplateVersionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("TemplateRevisionId"); b.HasIndex("TemplateVersionId"); b.HasIndex("DeploymentGroupId", "SortOrder") .IsUnique(); b.ToTable("DeploymentTemplateSelections"); b.HasData( new { Id = new Guid("82000000-0000-0000-0000-000000000001"), Alias = "SharePoint", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000001"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", SortOrder = 10, TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000003"), TemplateRole = "Service", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000003") }, new { Id = new Guid("82000000-0000-0000-0000-000000000101"), Alias = "Environment-Test", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", SortOrder = 10, TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000101"), TemplateRole = "Environment", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000101") }, new { Id = new Guid("82000000-0000-0000-0000-000000000102"), Alias = "Domain-Contoso", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", SortOrder = 20, TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000102"), TemplateRole = "Domain", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000102") }, new { Id = new Guid("82000000-0000-0000-0000-000000000103"), Alias = "Service-SharePoint-Contoso", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", SortOrder = 30, TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000103"), TemplateRole = "Service", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000103") }, new { Id = new Guid("82000000-0000-0000-0000-000000000104"), Alias = "Stage-Install", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentGroupId = new Guid("80000000-0000-0000-0000-000000000101"), Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", SortOrder = 40, TemplateRevisionId = new Guid("72000000-0000-0000-0000-000000000104"), TemplateRole = "Stage", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000104") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("FQDN") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("NetBIOS") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.HasKey("Id"); b.ToTable("Domains"); b.HasData( new { Id = new Guid("20000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", FQDN = "corp.contoso.com", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Central Management", NetBIOS = "CONTOSO" }, new { Id = new Guid("20000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", FQDN = "resource.contoso.com", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Resource Domain", NetBIOS = "RESOURCE" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => { b.Property("EnvironmentId") .HasColumnType("uniqueidentifier") .HasColumnOrder(0); b.Property("DomainId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("Created") .HasColumnType("datetime2") .HasColumnOrder(52); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Modified") .HasColumnType("datetime2") .HasColumnOrder(50); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.HasKey("EnvironmentId", "DomainId"); b.HasIndex("DomainId"); b.ToTable("EnvironmentDomains"); b.HasData( new { EnvironmentId = new Guid("10000000-0000-0000-0000-000000000001"), DomainId = new Guid("20000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed" }, new { EnvironmentId = new Guid("10000000-0000-0000-0000-000000000002"), DomainId = new Guid("20000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed" }, new { EnvironmentId = new Guid("10000000-0000-0000-0000-000000000002"), DomainId = new Guid("20000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("EnvironmentType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("HostingType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(7); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("ProviderType") .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("SubscriptionId") .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("TenantId") .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.HasKey("Id"); b.ToTable("Environments"); b.HasData( new { Id = new Guid("10000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", EnvironmentType = "Test", HostingType = "OnPrem", MetadataJson = "{\"location\":\"Datacenter A\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso Test" }, new { Id = new Guid("10000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", EnvironmentType = "Production", HostingType = "OnPrem", MetadataJson = "{\"location\":\"Datacenter A\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso Production" }, new { Id = new Guid("10000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", EnvironmentType = "Production", HostingType = "M365Tenant", MetadataJson = "{\"tenant\":\"contoso.onmicrosoft.com\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso M365", ProviderType = "Microsoft365", TenantId = "11111111-1111-1111-1111-111111111111" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("ParentCategoryName") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("showOrder") .HasColumnType("int") .HasColumnOrder(3); b.HasKey("Id"); b.ToTable("OptionCategories"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("OptionCategoryId") .HasColumnType("uniqueidentifier"); b.Property("OptionType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("OptionValue") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.HasKey("Id"); b.HasIndex("OptionCategoryId"); b.ToTable("Options"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Attempts") .HasColumnType("int") .HasColumnOrder(4); b.Property("CorrelationId") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(13) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("ErrorMessage") .HasColumnType("nvarchar(max)") .HasColumnOrder(10); b.Property("Finished") .HasColumnType("datetime2") .HasColumnOrder(7); b.Property("HeartbeatAt") .HasColumnType("datetime2") .HasColumnOrder(16); b.Property("LockedBy") .HasColumnType("nvarchar(max)") .HasColumnOrder(9); b.Property("LockedUntil") .HasColumnType("datetime2") .HasColumnOrder(8); b.Property("MaxAttempts") .HasColumnType("int") .HasColumnOrder(5); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(11); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("PayloadJson") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("Priority") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(100) .HasColumnOrder(14); b.Property("RowVersion") .IsConcurrencyToken() .IsRequired() .ValueGeneratedOnAddOrUpdate() .HasColumnType("rowversion"); b.Property("RuleSnapshotJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(12); b.Property("ScheduledAt") .HasColumnType("datetime2") .HasColumnOrder(15); b.Property("Started") .HasColumnType("datetime2") .HasColumnOrder(6); b.Property("Status") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(2); b.Property("Type") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("WorkerName") .HasColumnType("nvarchar(450)") .HasColumnOrder(17); b.HasKey("Id"); b.HasIndex("CorrelationId"); b.HasIndex("WorkerName"); b.HasIndex("Status", "ScheduledAt", "LockedUntil", "Priority", "Created"); b.ToTable("DeploymentJobs", (string)null); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("ApprovalComment") .HasColumnType("nvarchar(max)") .HasColumnOrder(10); b.Property("ApprovedAt") .HasColumnType("datetime2") .HasColumnOrder(8); b.Property("ApprovedBy") .HasColumnType("nvarchar(max)") .HasColumnOrder(9); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DependsOnQueueJobStepId") .HasColumnType("uniqueidentifier") .HasColumnName("DependsOnDeploymentJobStepId") .HasColumnOrder(2); b.Property("ErrorMessage") .HasColumnType("nvarchar(max)") .HasColumnOrder(14); b.Property("Finished") .HasColumnType("datetime2") .HasColumnOrder(12); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(7); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("OutputMetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(13); b.Property("QueueJobId") .HasColumnType("uniqueidentifier") .HasColumnName("DeploymentJobId") .HasColumnOrder(1); b.Property("SortOrder") .HasColumnType("int") .HasColumnOrder(3); b.Property("Started") .HasColumnType("datetime2") .HasColumnOrder(11); b.Property("Status") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(6); b.Property("StepType") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.HasKey("Id"); b.HasIndex("DependsOnQueueJobStepId"); b.HasIndex("QueueJobId", "Status", "SortOrder"); b.ToTable("DeploymentJobSteps", null, t => { t.HasCheckConstraint("CK_DeploymentJobSteps_OutputMetadataJson_IsJson", "[OutputMetadataJson] IS NULL OR ISJSON([OutputMetadataJson]) = 1"); }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Attempts") .HasColumnType("int") .HasColumnOrder(6); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentGroupId") .HasColumnType("uniqueidentifier") .HasColumnName("DeploymentBatchId") .HasColumnOrder(3); b.Property("ErrorMessage") .HasColumnType("nvarchar(max)") .HasColumnOrder(7); b.Property("Finished") .HasColumnType("datetime2") .HasColumnOrder(9); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("OutputMetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(10); b.Property("QueueJobId") .HasColumnType("uniqueidentifier") .HasColumnName("DeploymentJobId") .HasColumnOrder(1); b.Property("Started") .HasColumnType("datetime2") .HasColumnOrder(8); b.Property("Status") .IsRequired() .HasColumnType("nvarchar(450)") .HasColumnOrder(5); b.Property("TargetId") .HasColumnType("uniqueidentifier") .HasColumnOrder(2); b.Property("TemplateId") .HasColumnType("uniqueidentifier") .HasColumnOrder(4); b.HasKey("Id"); b.HasIndex("QueueJobId", "Status"); b.ToTable("DeploymentJobTargets", null, t => { t.HasCheckConstraint("CK_DeploymentJobTargets_OutputMetadataJson_IsJson", "[OutputMetadataJson] IS NULL OR ISJSON([OutputMetadataJson]) = 1"); }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Description") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("IconKey") .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("IsCloudService") .HasColumnType("bit") .HasColumnOrder(3); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.HasKey("Id"); b.ToTable("Services"); b.HasData( new { Id = new Guid("40000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "On-premises directory and identity service.", IconKey = "network", IsCloudService = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Active Directory" }, new { Id = new Guid("40000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Database platform for application workloads.", IconKey = "database", IsCloudService = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "SQL Server" }, new { Id = new Guid("40000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Collaboration platform for on-premises workloads.", IconKey = "sharepoint", IsCloudService = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "SharePoint Server" }, new { Id = new Guid("40000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Cloud collaboration workload in Microsoft 365.", IconKey = "messages-square", IsCloudService = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Microsoft Teams" }, new { Id = new Guid("40000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Reusable configuration-data template building blocks for deployment composition.", IconKey = "braces", IsCloudService = false, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "DSC Configuration Data" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Description") .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("Key") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("ServiceId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.HasKey("Id"); b.HasIndex("ServiceId"); b.ToTable("ServiceRoleDefinitions"); b.HasData( new { Id = new Guid("41000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "SharePoint farm role.", Key = "Farm", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Farm", ServiceId = new Guid("40000000-0000-0000-0000-000000000003") }, new { Id = new Guid("41000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "SharePoint web front-end role.", Key = "WebFrontEnd", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Web Front End", ServiceId = new Guid("40000000-0000-0000-0000-000000000003") }, new { Id = new Guid("41000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "SharePoint service application role.", Key = "Application", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Application", ServiceId = new Guid("40000000-0000-0000-0000-000000000003") }, new { Id = new Guid("41000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "SQL Server database role.", Key = "Database", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Database", ServiceId = new Guid("40000000-0000-0000-0000-000000000002") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DomainID") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("ExternalId") .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("MetadataJson") .HasColumnType("nvarchar(max)") .HasColumnOrder(6); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("ProviderType") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(4); b.Property("TargetType") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(3); b.HasKey("Id"); b.HasIndex("DomainID"); b.ToTable("Targets"); b.HasData( new { Id = new Guid("30000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"DomainController\",\"environment\":\"Test\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CT-DC-01", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"DomainController\",\"environment\":\"Production\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CT-DC-02", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SqlServer\",\"environment\":\"Test\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CT-SQL-01", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SharePoint\",\"environment\":\"Test\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CT-SHP-01", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000005"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SharePoint\",\"environment\":\"Test\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CT-SHP-02", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000006"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", ExternalId = "11111111-1111-1111-1111-111111111111", MetadataJson = "{\"environment\":\"Production\",\"workload\":\"M365\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "contoso.onmicrosoft.com", ProviderType = "Microsoft365", TargetType = "Tenant" }, new { Id = new Guid("30000000-0000-0000-0000-000000000007"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", ExternalId = "Teams.StandardUsers", MetadataJson = "{\"workload\":\"Teams\",\"scope\":\"StandardUsers\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Teams - Standard Users", ProviderType = "Microsoft365", TargetType = "PolicyScope" }, new { Id = new Guid("30000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SharePoint\",\"environment\":\"Test\",\"source\":\"Test.Merge.ps1\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CLD-SHP-01", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SharePoint\",\"environment\":\"Test\",\"source\":\"Test.Merge.ps1\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CLD-SHP-02", ProviderType = "OnPrem", TargetType = "VirtualMachine" }, new { Id = new Guid("30000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DomainID = new Guid("20000000-0000-0000-0000-000000000001"), MetadataJson = "{\"role\":\"SharePoint\",\"environment\":\"Test\",\"source\":\"Test.Merge.ps1\"}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "CLD-SHP-03", ProviderType = "OnPrem", TargetType = "VirtualMachine" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Color") .HasColumnType("nvarchar(max)") .HasColumnOrder(5); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Description") .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("IsActive") .HasColumnType("bit") .HasColumnOrder(4); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.Property("ServiceId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.HasKey("Id"); b.HasIndex("ServiceId"); b.ToTable("TemplateCategories"); b.HasData( new { Id = new Guid("50000000-0000-0000-0000-000000000001"), Color = "#2563EB", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Templates for domain controller and domain configuration.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Domain Services", ServiceId = new Guid("40000000-0000-0000-0000-000000000001") }, new { Id = new Guid("50000000-0000-0000-0000-000000000002"), Color = "#16A34A", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Templates for SQL Server workloads.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Database Platform", ServiceId = new Guid("40000000-0000-0000-0000-000000000002") }, new { Id = new Guid("50000000-0000-0000-0000-000000000003"), Color = "#0F766E", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Templates for SharePoint Server farms.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Collaboration Farm", ServiceId = new Guid("40000000-0000-0000-0000-000000000003") }, new { Id = new Guid("50000000-0000-0000-0000-000000000004"), Color = "#7C3AED", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Templates for Teams policy configuration.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Teams Policies", ServiceId = new Guid("40000000-0000-0000-0000-000000000004") }, new { Id = new Guid("50000000-0000-0000-0000-000000000101"), Color = "#2563EB", Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", Description = "Materialized template building blocks from the BGW Test.Merge.ps1 scenario.", IsActive = true, Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Test.Merge.ps1 Templates", ServiceId = new Guid("40000000-0000-0000-0000-000000000101") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("DeploymentRuleId") .HasColumnType("uniqueidentifier") .HasColumnOrder(6); b.Property("Description") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("JSONData") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(4); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(1); b.Property("TemplateCategoryId") .HasColumnType("uniqueidentifier") .HasColumnOrder(5); b.Property("Version") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("DeploymentRuleId"); b.HasIndex("TemplateCategoryId"); b.ToTable("Templates"); b.HasData( new { Id = new Guid("70000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Creates a reusable Active Directory domain baseline.", JSONData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DomainName\": { \"type\": \"string\", \"defaultValue\": \"corp.contoso.com\" },\n \"NetBIOSName\": { \"type\": \"string\", \"defaultValue\": \"CONTOSO\" }\n },\n \"variables\": {\n \"DefaultSiteName\": \"[concat(parameters('DomainName'), '-DefaultSite')]\"\n },\n \"resources\": {\n \"AllNodes\": [\n { \"NodeName\": \"*\", \"PSDscAllowPlainTextPassword\": true }\n ],\n \"NonNodeData\": {\n \"Services\": {\n \"ActiveDirectory\": {\n \"DomainName\": \"[parameters('DomainName')]\",\n \"NetBIOSName\": \"[parameters('NetBIOSName')]\"\n }\n }\n }\n }\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso Active Directory Domain", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000001"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Creates a SQL Server baseline for application workloads.", JSONData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"InstanceName\": { \"type\": \"string\", \"defaultValue\": \"MSSQLSERVER\" },\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"Contoso\" }\n },\n \"variables\": {\n \"ConfigDatabase\": \"[concat(parameters('DatabasePrefix'), '_Config')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SqlServer\": {\n \"InstanceName\": \"[parameters('InstanceName')]\",\n \"ConfigDatabase\": \"[variables('ConfigDatabase')]\"\n }\n }\n }\n }\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso SQL Server", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000002"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Creates a SharePoint Server farm baseline.", JSONData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"SharePoint_Contoso_Test\" },\n \"FarmAccount\": { \"type\": \"credential\", \"metadata\": { \"description\": \"Farm account resolved by the credential provider.\" } }\n },\n \"variables\": {\n \"ConfigDbName\": \"[concat(parameters('DatabasePrefix'), '_Farm_Config')]\",\n \"AdminContentDbName\": \"[concat(parameters('DatabasePrefix'), '_AdminContent')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SharePoint\": {\n \"Farm\": {\n \"ConfigDatabase\": \"[variables('ConfigDbName')]\",\n \"AdminContentDatabase\": \"[variables('AdminContentDbName')]\",\n \"ManagedAccounts\": {\n \"FarmAccount\": \"[parameters('FarmAccount')]\"\n }\n }\n }\n }\n }\n }\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso SharePoint Server", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000003"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Creates a Microsoft Teams policy baseline.", JSONData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"CallingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Calling\" },\n \"MeetingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Meetings\" }\n },\n \"variables\": {},\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"Teams\": {\n \"CallingPolicy\": \"[parameters('CallingPolicyName')]\",\n \"MeetingPolicy\": \"[parameters('MeetingPolicyName')]\"\n }\n }\n }\n }\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "Contoso Teams Policies", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000004"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Materialized Environment/Test.psd1 template from Test.Merge.ps1.", JSONData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Environment\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Environment\",\r\n \"Name\": \"Test\"\r\n },\r\n \"parameters\": {\r\n \"Landscape\": {\r\n \"DefaultValue\": \"Prod\",\r\n \"Value\": \"Test\",\r\n \"Type\": \"string\",\r\n \"AllowedValues\": [\r\n \"Prod\",\r\n \"QA\",\r\n \"Test\"\r\n ]\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n\r\n }\r\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "BGW Environment Test", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000101"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Materialized Domain/Contoso.psd1 template from Test.Merge.ps1.", JSONData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Domain\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Domain\",\r\n \"Name\": \"Contoso\"\r\n },\r\n \"parameters\": {\r\n \"DomainFQDN\": {\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9.-]+$\",\r\n \"Type\": \"string\",\r\n \"Value\": \"contoso.local\",\r\n \"Required\": true\r\n },\r\n \"DomainLabel\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 32,\r\n \"Value\": \"Contoso\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z][A-Za-z0-9_-]*$\",\r\n \"MinLength\": 2,\r\n \"Required\": false\r\n },\r\n \"DomainNetBIOS\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 15,\r\n \"Value\": \"CONTOSO\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9_-]+$\",\r\n \"MinLength\": 1,\r\n \"Required\": true\r\n }\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"ActiveDirectory\": {\r\n \"NetBIOSName\": \"[parameters(\\u0027DomainNetBIOS\\u0027)]\",\r\n \"DomainName\": \"[parameters(\\u0027DomainFQDN\\u0027)]\"\r\n }\r\n }\r\n }\r\n }\r\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "BGW Domain Contoso", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000101"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Materialized Service/SharePoint/Contoso.psd1 template from Test.Merge.ps1.", JSONData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Service\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Service\",\r\n \"Name\": \"SharePoint.Contoso\"\r\n },\r\n \"parameters\": {\r\n \"FarmCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ContentDatabaseSegment\": {\r\n \"DefaultValue\": \"Content\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Content-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint content databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"ServiceApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint service applications.\"\r\n }\r\n }\r\n },\r\n \"WebApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Web Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"DatabaseServerName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"CL-SQL-01\"\r\n },\r\n \"WebApplicationPoolDefaultAccount\": {\r\n \"DefaultValue\": \"SVC_SHP_WAP\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"ServiceDatabaseSegment\": {\r\n \"DefaultValue\": \"Services\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Service-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint service databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"FarmPassphrase\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmPassphrase\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabaseInstanceName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SQLServer\"\r\n },\r\n \"DatabaseTcpPort\": {\r\n \"DefaultValue\": 1433,\r\n \"Type\": \"int\",\r\n \"Value\": 1433\r\n },\r\n \"DefaultServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/DefaultServiceAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ProductKey\": {\r\n \"DefaultValue\": \"0000-0000-0000-0000-0000\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"SharePoint-Produktlizenzschluessel.\",\r\n \"en-US\": \"SharePoint product license key.\"\r\n }\r\n }\r\n },\r\n \"SetupCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SetupAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabasePrefix\": {\r\n \"DefaultValue\": \"SharePoint\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SharePoint\"\r\n },\r\n \"SearchServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Search-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the search application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SearchAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"CentralAdminPort\": {\r\n \"DefaultValue\": 443,\r\n \"Type\": \"int\",\r\n \"Value\": 4000\r\n },\r\n \"ServiceApplicationPoolSearch\": {\r\n \"DefaultValue\": \"SharePoint Search Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Application-Pools fuer SharePoint Search-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the application pool for SharePoint Search service applications.\"\r\n }\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n \"AllNodes\": [\r\n {\r\n \"PSDscAllowDomainUser\": true,\r\n \"PSDSCAllowPlainTextPassword\": true,\r\n \"NodeName\": \"*\",\r\n \"RunCentralAdministration\": false\r\n }\r\n ],\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"SharePoint\": {\r\n \"Farm\": {\r\n \"ManagedAccounts\": {\r\n \"DefaultServiceApplicationPoolAccount\": \"[parameters(\\u0027DefaultServiceApplicationPoolAccount\\u0027)]\",\r\n \"FarmAccount\": \"[parameters(\\u0027FarmCredential\\u0027)]\",\r\n \"SearchServiceApplicationPoolAccount\": \"[parameters(\\u0027SearchServiceApplicationPoolAccount\\u0027)]\"\r\n },\r\n \"Passphrase\": \"[parameters(\\u0027FarmPassphrase\\u0027)]\",\r\n \"ServiceApplications\": {\r\n \"AppManagementService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027AppManagement\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"StateService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027StateService\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SubscriptionSettingsService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SubscriptionSettings\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"ManagedMetadataService\": {\r\n \"Name\": \"Managed Metadata Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027ManagedMetadata\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SearchService\": {\r\n \"Name\": \"Search Service Application\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027Search\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.SearchServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"UsageAndHealthService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027UsageAndHealth\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SecureStoreService\": {\r\n \"Name\": \"Secure Store Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SecureStore\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"AuditingEnabled\": true\r\n },\r\n \"UserProfileService\": {\r\n \"SyncDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Sync\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"Name\": \"User Profile Service\",\r\n \"SocialDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Social\\u0027)]\",\r\n \"ProfileDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Profile\\u0027)]\"\r\n }\r\n },\r\n \"CentralAdminAuth\": \"NTLM\",\r\n \"ConfigDatabaseName\": \"[variables(\\u0027ConfigDbName\\u0027)]\",\r\n \"Accounts\": {\r\n \"SetupAccount\": \"[parameters(\\u0027SetupCredential\\u0027)]\"\r\n },\r\n \"CentralAdminPort\": \"[parameters(\\u0027CentralAdminPort\\u0027)]\",\r\n \"AdminContentDatabase\": \"[variables(\\u0027AdminDbName\\u0027)]\",\r\n \"ServiceApplicationPools\": {\r\n \"SearchServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.SearchServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolSearch\\u0027)]\"\r\n },\r\n \"DefaultServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.DefaultServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolDefault\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"Database\": {\r\n \"Targets\": {\r\n \"Farm\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Content\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Service\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n }\r\n },\r\n \"SQLAlias\": {\r\n \"SQLServer\": {\r\n \"InstanceName\": \"[parameters(\\u0027DatabaseInstanceName\\u0027)]\",\r\n \"ServerName\": \"[parameters(\\u0027DatabaseServerName\\u0027)]\",\r\n \"Protocol\": \"TCP\",\r\n \"TcpPort\": \"[parameters(\\u0027DatabaseTcpPort\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"General\": {\r\n \"ProductKey\": \"[parameters(\\u0027ProductKey\\u0027)]\"\r\n },\r\n \"Windows\": {\r\n \"Registry\": {\r\n \"DisableLoopbackCheck\": {\r\n \"Path\": \"HKLM:\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\Lsa\",\r\n \"Name\": \"DisableLoopbackCheck\",\r\n \"Value\": 1,\r\n \"Type\": \"DWord\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "BGW SharePoint Contoso", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000101"), Version = "1.0.0" }, new { Id = new Guid("70000000-0000-0000-0000-000000000104"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", DeploymentRuleId = new Guid("60000000-0000-0000-0000-000000000001"), Description = "Materialized Stage/Install.psd1 template from Test.Merge.ps1.", JSONData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Stage\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Stage\",\r\n \"Name\": \"Install\"\r\n },\r\n \"parameters\": {\r\n\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"LocalConfigurationManager\": {\r\n \"RefreshFrequencyMins\": \"30\",\r\n \"RefreshMode\": \"PUSH\",\r\n \"ConfigurationModeFrequencyMins\": \"120\",\r\n \"ConfigurationMode\": \"ApplyOnly\"\r\n }\r\n }\r\n }\r\n}", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", Name = "BGW Stage Install", TemplateCategoryId = new Guid("50000000-0000-0000-0000-000000000101"), Version = "1.0.0" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => { b.Property("OptionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("TemplateId") .HasColumnType("uniqueidentifier") .HasColumnOrder(0); b.Property("Created") .HasColumnType("datetime2") .HasColumnOrder(52); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("Modified") .HasColumnType("datetime2") .HasColumnOrder(50); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("Value") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(2); b.HasKey("OptionId", "TemplateId"); b.HasIndex("TemplateId"); b.ToTable("TemplateOptions"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("IsCurrent") .HasColumnType("bit") .HasColumnOrder(6); b.Property("IsPublished") .HasColumnType("bit") .HasColumnOrder(7); b.Property("JsonData") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("JsonHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(4); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("PublishedAt") .HasColumnType("datetime2") .HasColumnOrder(8); b.Property("PublishedBy") .HasColumnType("nvarchar(max)") .HasColumnOrder(9); b.Property("RevisionNumber") .HasColumnType("int") .HasColumnOrder(2); b.Property("SchemaVersion") .IsRequired() .HasMaxLength(32) .HasColumnType("nvarchar(32)") .HasColumnOrder(5); b.Property("TemplateVersionId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.HasKey("Id"); b.HasIndex("TemplateVersionId") .IsUnique() .HasFilter("[IsCurrent] = 1"); b.HasIndex("TemplateVersionId", "RevisionNumber") .IsUnique(); b.ToTable("TemplateRevisions", t => { t.HasCheckConstraint("CK_TemplateRevisions_JsonData_IsJson", "ISJSON([JsonData]) = 1"); }); b.HasData( new { Id = new Guid("72000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DomainName\": { \"type\": \"string\", \"defaultValue\": \"corp.contoso.com\" },\n \"NetBIOSName\": { \"type\": \"string\", \"defaultValue\": \"CONTOSO\" }\n },\n \"variables\": {\n \"DefaultSiteName\": \"[concat(parameters('DomainName'), '-DefaultSite')]\"\n },\n \"resources\": {\n \"AllNodes\": [\n { \"NodeName\": \"*\", \"PSDscAllowPlainTextPassword\": true }\n ],\n \"NonNodeData\": {\n \"Services\": {\n \"ActiveDirectory\": {\n \"DomainName\": \"[parameters('DomainName')]\",\n \"NetBIOSName\": \"[parameters('NetBIOSName')]\"\n }\n }\n }\n }\n}", JsonHash = "C05CBEF91131C75DE53B9609D9C2709D680AFC9559EE8D998318A132490F79A7", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000001") }, new { Id = new Guid("72000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"InstanceName\": { \"type\": \"string\", \"defaultValue\": \"MSSQLSERVER\" },\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"Contoso\" }\n },\n \"variables\": {\n \"ConfigDatabase\": \"[concat(parameters('DatabasePrefix'), '_Config')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SqlServer\": {\n \"InstanceName\": \"[parameters('InstanceName')]\",\n \"ConfigDatabase\": \"[variables('ConfigDatabase')]\"\n }\n }\n }\n }\n}", JsonHash = "F376737E82CB6B729F7B9960CB9988897C16D90A1C454ED2F594B28EB86ECA11", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000002") }, new { Id = new Guid("72000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"SharePoint_Contoso_Test\" },\n \"FarmAccount\": { \"type\": \"credential\", \"metadata\": { \"description\": \"Farm account resolved by the credential provider.\" } }\n },\n \"variables\": {\n \"ConfigDbName\": \"[concat(parameters('DatabasePrefix'), '_Farm_Config')]\",\n \"AdminContentDbName\": \"[concat(parameters('DatabasePrefix'), '_AdminContent')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SharePoint\": {\n \"Farm\": {\n \"ConfigDatabase\": \"[variables('ConfigDbName')]\",\n \"AdminContentDatabase\": \"[variables('AdminContentDbName')]\",\n \"ManagedAccounts\": {\n \"FarmAccount\": \"[parameters('FarmAccount')]\"\n }\n }\n }\n }\n }\n }\n}", JsonHash = "FD5F0FD3C13538FAC70646972DC364DFCEAAF85BBE91B0F50FDFF9FD3A3748B4", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000003") }, new { Id = new Guid("72000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"CallingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Calling\" },\n \"MeetingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Meetings\" }\n },\n \"variables\": {},\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"Teams\": {\n \"CallingPolicy\": \"[parameters('CallingPolicyName')]\",\n \"MeetingPolicy\": \"[parameters('MeetingPolicyName')]\"\n }\n }\n }\n }\n}", JsonHash = "32A902FE1A871D4CE2C877EBC5542F7562856532F09BA7F53597B21270586241", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000004") }, new { Id = new Guid("72000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Environment\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Environment\",\r\n \"Name\": \"Test\"\r\n },\r\n \"parameters\": {\r\n \"Landscape\": {\r\n \"DefaultValue\": \"Prod\",\r\n \"Value\": \"Test\",\r\n \"Type\": \"string\",\r\n \"AllowedValues\": [\r\n \"Prod\",\r\n \"QA\",\r\n \"Test\"\r\n ]\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n\r\n }\r\n}", JsonHash = "58553C7A4E902B5E39D30272754FEF9EF805A7F36363D8316A9B37540C6D4646", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000101") }, new { Id = new Guid("72000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Domain\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Domain\",\r\n \"Name\": \"Contoso\"\r\n },\r\n \"parameters\": {\r\n \"DomainFQDN\": {\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9.-]+$\",\r\n \"Type\": \"string\",\r\n \"Value\": \"contoso.local\",\r\n \"Required\": true\r\n },\r\n \"DomainLabel\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 32,\r\n \"Value\": \"Contoso\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z][A-Za-z0-9_-]*$\",\r\n \"MinLength\": 2,\r\n \"Required\": false\r\n },\r\n \"DomainNetBIOS\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 15,\r\n \"Value\": \"CONTOSO\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9_-]+$\",\r\n \"MinLength\": 1,\r\n \"Required\": true\r\n }\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"ActiveDirectory\": {\r\n \"NetBIOSName\": \"[parameters(\\u0027DomainNetBIOS\\u0027)]\",\r\n \"DomainName\": \"[parameters(\\u0027DomainFQDN\\u0027)]\"\r\n }\r\n }\r\n }\r\n }\r\n}", JsonHash = "B265C4D542826423BAAF50BF939F026CC67FF631FEC19F708067516BCE4C7667", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000102") }, new { Id = new Guid("72000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Service\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Service\",\r\n \"Name\": \"SharePoint.Contoso\"\r\n },\r\n \"parameters\": {\r\n \"FarmCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ContentDatabaseSegment\": {\r\n \"DefaultValue\": \"Content\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Content-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint content databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"ServiceApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint service applications.\"\r\n }\r\n }\r\n },\r\n \"WebApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Web Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"DatabaseServerName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"CL-SQL-01\"\r\n },\r\n \"WebApplicationPoolDefaultAccount\": {\r\n \"DefaultValue\": \"SVC_SHP_WAP\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"ServiceDatabaseSegment\": {\r\n \"DefaultValue\": \"Services\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Service-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint service databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"FarmPassphrase\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmPassphrase\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabaseInstanceName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SQLServer\"\r\n },\r\n \"DatabaseTcpPort\": {\r\n \"DefaultValue\": 1433,\r\n \"Type\": \"int\",\r\n \"Value\": 1433\r\n },\r\n \"DefaultServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/DefaultServiceAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ProductKey\": {\r\n \"DefaultValue\": \"0000-0000-0000-0000-0000\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"SharePoint-Produktlizenzschluessel.\",\r\n \"en-US\": \"SharePoint product license key.\"\r\n }\r\n }\r\n },\r\n \"SetupCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SetupAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabasePrefix\": {\r\n \"DefaultValue\": \"SharePoint\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SharePoint\"\r\n },\r\n \"SearchServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Search-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the search application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SearchAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"CentralAdminPort\": {\r\n \"DefaultValue\": 443,\r\n \"Type\": \"int\",\r\n \"Value\": 4000\r\n },\r\n \"ServiceApplicationPoolSearch\": {\r\n \"DefaultValue\": \"SharePoint Search Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Application-Pools fuer SharePoint Search-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the application pool for SharePoint Search service applications.\"\r\n }\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n \"AllNodes\": [\r\n {\r\n \"PSDscAllowDomainUser\": true,\r\n \"PSDSCAllowPlainTextPassword\": true,\r\n \"NodeName\": \"*\",\r\n \"RunCentralAdministration\": false\r\n }\r\n ],\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"SharePoint\": {\r\n \"Farm\": {\r\n \"ManagedAccounts\": {\r\n \"DefaultServiceApplicationPoolAccount\": \"[parameters(\\u0027DefaultServiceApplicationPoolAccount\\u0027)]\",\r\n \"FarmAccount\": \"[parameters(\\u0027FarmCredential\\u0027)]\",\r\n \"SearchServiceApplicationPoolAccount\": \"[parameters(\\u0027SearchServiceApplicationPoolAccount\\u0027)]\"\r\n },\r\n \"Passphrase\": \"[parameters(\\u0027FarmPassphrase\\u0027)]\",\r\n \"ServiceApplications\": {\r\n \"AppManagementService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027AppManagement\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"StateService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027StateService\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SubscriptionSettingsService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SubscriptionSettings\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"ManagedMetadataService\": {\r\n \"Name\": \"Managed Metadata Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027ManagedMetadata\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SearchService\": {\r\n \"Name\": \"Search Service Application\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027Search\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.SearchServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"UsageAndHealthService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027UsageAndHealth\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SecureStoreService\": {\r\n \"Name\": \"Secure Store Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SecureStore\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"AuditingEnabled\": true\r\n },\r\n \"UserProfileService\": {\r\n \"SyncDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Sync\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"Name\": \"User Profile Service\",\r\n \"SocialDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Social\\u0027)]\",\r\n \"ProfileDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Profile\\u0027)]\"\r\n }\r\n },\r\n \"CentralAdminAuth\": \"NTLM\",\r\n \"ConfigDatabaseName\": \"[variables(\\u0027ConfigDbName\\u0027)]\",\r\n \"Accounts\": {\r\n \"SetupAccount\": \"[parameters(\\u0027SetupCredential\\u0027)]\"\r\n },\r\n \"CentralAdminPort\": \"[parameters(\\u0027CentralAdminPort\\u0027)]\",\r\n \"AdminContentDatabase\": \"[variables(\\u0027AdminDbName\\u0027)]\",\r\n \"ServiceApplicationPools\": {\r\n \"SearchServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.SearchServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolSearch\\u0027)]\"\r\n },\r\n \"DefaultServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.DefaultServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolDefault\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"Database\": {\r\n \"Targets\": {\r\n \"Farm\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Content\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Service\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n }\r\n },\r\n \"SQLAlias\": {\r\n \"SQLServer\": {\r\n \"InstanceName\": \"[parameters(\\u0027DatabaseInstanceName\\u0027)]\",\r\n \"ServerName\": \"[parameters(\\u0027DatabaseServerName\\u0027)]\",\r\n \"Protocol\": \"TCP\",\r\n \"TcpPort\": \"[parameters(\\u0027DatabaseTcpPort\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"General\": {\r\n \"ProductKey\": \"[parameters(\\u0027ProductKey\\u0027)]\"\r\n },\r\n \"Windows\": {\r\n \"Registry\": {\r\n \"DisableLoopbackCheck\": {\r\n \"Path\": \"HKLM:\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\Lsa\",\r\n \"Name\": \"DisableLoopbackCheck\",\r\n \"Value\": 1,\r\n \"Type\": \"DWord\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}", JsonHash = "E3B0E2A8E0C85CCD92AEA521ECD243E61E34C61D7078D6715E6317F5669A1D69", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000103") }, new { Id = new Guid("72000000-0000-0000-0000-000000000104"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsCurrent = true, IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Stage\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Stage\",\r\n \"Name\": \"Install\"\r\n },\r\n \"parameters\": {\r\n\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"LocalConfigurationManager\": {\r\n \"RefreshFrequencyMins\": \"30\",\r\n \"RefreshMode\": \"PUSH\",\r\n \"ConfigurationModeFrequencyMins\": \"120\",\r\n \"ConfigurationMode\": \"ApplyOnly\"\r\n }\r\n }\r\n }\r\n}", JsonHash = "ACA23E44C9F625F080D2653646555A9DE5546D8DE7BB2166324E775BCF47F3C1", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", RevisionNumber = 1, SchemaVersion = "1.0", TemplateVersionId = new Guid("71000000-0000-0000-0000-000000000104") }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateVersionModel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasColumnOrder(0) .HasDefaultValueSql("NEWID()"); b.Property("Created") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(52) .HasDefaultValueSql("GETDATE()"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(53); b.Property("IsPublished") .HasColumnType("bit") .HasColumnOrder(6); b.Property("JsonData") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(3); b.Property("JsonHash") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(4); b.Property("Modified") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasColumnOrder(50) .HasDefaultValueSql("GETDATE()"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)") .HasColumnOrder(51); b.Property("PublishedAt") .HasColumnType("datetime2") .HasColumnOrder(7); b.Property("PublishedBy") .HasColumnType("nvarchar(max)") .HasColumnOrder(8); b.Property("SchemaVersion") .IsRequired() .HasMaxLength(32) .HasColumnType("nvarchar(32)") .HasColumnOrder(5); b.Property("TemplateId") .HasColumnType("uniqueidentifier") .HasColumnOrder(1); b.Property("Version") .IsRequired() .HasMaxLength(64) .HasColumnType("nvarchar(64)") .HasColumnOrder(2); b.HasKey("Id"); b.HasIndex("TemplateId") .IsUnique() .HasFilter("[IsPublished] = 1"); b.HasIndex("TemplateId", "Version") .IsUnique(); b.ToTable("TemplateVersions", t => { t.HasCheckConstraint("CK_TemplateVersions_JsonData_IsJson", "ISJSON([JsonData]) = 1"); }); b.HasData( new { Id = new Guid("71000000-0000-0000-0000-000000000001"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DomainName\": { \"type\": \"string\", \"defaultValue\": \"corp.contoso.com\" },\n \"NetBIOSName\": { \"type\": \"string\", \"defaultValue\": \"CONTOSO\" }\n },\n \"variables\": {\n \"DefaultSiteName\": \"[concat(parameters('DomainName'), '-DefaultSite')]\"\n },\n \"resources\": {\n \"AllNodes\": [\n { \"NodeName\": \"*\", \"PSDscAllowPlainTextPassword\": true }\n ],\n \"NonNodeData\": {\n \"Services\": {\n \"ActiveDirectory\": {\n \"DomainName\": \"[parameters('DomainName')]\",\n \"NetBIOSName\": \"[parameters('NetBIOSName')]\"\n }\n }\n }\n }\n}", JsonHash = "C05CBEF91131C75DE53B9609D9C2709D680AFC9559EE8D998318A132490F79A7", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000001"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000002"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"InstanceName\": { \"type\": \"string\", \"defaultValue\": \"MSSQLSERVER\" },\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"Contoso\" }\n },\n \"variables\": {\n \"ConfigDatabase\": \"[concat(parameters('DatabasePrefix'), '_Config')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SqlServer\": {\n \"InstanceName\": \"[parameters('InstanceName')]\",\n \"ConfigDatabase\": \"[variables('ConfigDatabase')]\"\n }\n }\n }\n }\n}", JsonHash = "F376737E82CB6B729F7B9960CB9988897C16D90A1C454ED2F594B28EB86ECA11", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000002"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000003"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"DatabasePrefix\": { \"type\": \"string\", \"defaultValue\": \"SharePoint_Contoso_Test\" },\n \"FarmAccount\": { \"type\": \"credential\", \"metadata\": { \"description\": \"Farm account resolved by the credential provider.\" } }\n },\n \"variables\": {\n \"ConfigDbName\": \"[concat(parameters('DatabasePrefix'), '_Farm_Config')]\",\n \"AdminContentDbName\": \"[concat(parameters('DatabasePrefix'), '_AdminContent')]\"\n },\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"SharePoint\": {\n \"Farm\": {\n \"ConfigDatabase\": \"[variables('ConfigDbName')]\",\n \"AdminContentDatabase\": \"[variables('AdminContentDbName')]\",\n \"ManagedAccounts\": {\n \"FarmAccount\": \"[parameters('FarmAccount')]\"\n }\n }\n }\n }\n }\n }\n}", JsonHash = "FD5F0FD3C13538FAC70646972DC364DFCEAAF85BBE91B0F50FDFF9FD3A3748B4", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000003"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000004"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\n \"schemaVersion\": \"1.0\",\n \"templateType\": \"Service\",\n \"parameters\": {\n \"CallingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Calling\" },\n \"MeetingPolicyName\": { \"type\": \"string\", \"defaultValue\": \"Contoso-Standard-Meetings\" }\n },\n \"variables\": {},\n \"resources\": {\n \"NonNodeData\": {\n \"Services\": {\n \"Teams\": {\n \"CallingPolicy\": \"[parameters('CallingPolicyName')]\",\n \"MeetingPolicy\": \"[parameters('MeetingPolicyName')]\"\n }\n }\n }\n }\n}", JsonHash = "32A902FE1A871D4CE2C877EBC5542F7562856532F09BA7F53597B21270586241", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000004"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000101"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Environment\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Environment\",\r\n \"Name\": \"Test\"\r\n },\r\n \"parameters\": {\r\n \"Landscape\": {\r\n \"DefaultValue\": \"Prod\",\r\n \"Value\": \"Test\",\r\n \"Type\": \"string\",\r\n \"AllowedValues\": [\r\n \"Prod\",\r\n \"QA\",\r\n \"Test\"\r\n ]\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n\r\n }\r\n}", JsonHash = "58553C7A4E902B5E39D30272754FEF9EF805A7F36363D8316A9B37540C6D4646", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000101"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000102"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Domain\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Domain\",\r\n \"Name\": \"Contoso\"\r\n },\r\n \"parameters\": {\r\n \"DomainFQDN\": {\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9.-]+$\",\r\n \"Type\": \"string\",\r\n \"Value\": \"contoso.local\",\r\n \"Required\": true\r\n },\r\n \"DomainLabel\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 32,\r\n \"Value\": \"Contoso\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z][A-Za-z0-9_-]*$\",\r\n \"MinLength\": 2,\r\n \"Required\": false\r\n },\r\n \"DomainNetBIOS\": {\r\n \"Type\": \"string\",\r\n \"MaxLength\": 15,\r\n \"Value\": \"CONTOSO\",\r\n \"DefaultValue\": \"\",\r\n \"Pattern\": \"^[A-Za-z0-9_-]+$\",\r\n \"MinLength\": 1,\r\n \"Required\": true\r\n }\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"ActiveDirectory\": {\r\n \"NetBIOSName\": \"[parameters(\\u0027DomainNetBIOS\\u0027)]\",\r\n \"DomainName\": \"[parameters(\\u0027DomainFQDN\\u0027)]\"\r\n }\r\n }\r\n }\r\n }\r\n}", JsonHash = "B265C4D542826423BAAF50BF939F026CC67FF631FEC19F708067516BCE4C7667", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000102"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000103"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Service\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Service\",\r\n \"Name\": \"SharePoint.Contoso\"\r\n },\r\n \"parameters\": {\r\n \"FarmCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ContentDatabaseSegment\": {\r\n \"DefaultValue\": \"Content\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Content-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint content databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"ServiceApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint service applications.\"\r\n }\r\n }\r\n },\r\n \"WebApplicationPoolDefault\": {\r\n \"DefaultValue\": \"SharePoint Web Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Standard-Application-Pools fuer SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Display name of the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"DatabaseServerName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"CL-SQL-01\"\r\n },\r\n \"WebApplicationPoolDefaultAccount\": {\r\n \"DefaultValue\": \"SVC_SHP_WAP\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Webanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint web applications.\"\r\n }\r\n }\r\n },\r\n \"ServiceDatabaseSegment\": {\r\n \"DefaultValue\": \"Services\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Namenssegment fuer SharePoint-Service-Datenbanken innerhalb des Datenbanknamens.\",\r\n \"en-US\": \"Name segment used for SharePoint service databases within the database name.\"\r\n }\r\n }\r\n },\r\n \"FarmPassphrase\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/FarmPassphrase\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabaseInstanceName\": {\r\n \"DefaultValue\": \"SQL_Server\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SQLServer\"\r\n },\r\n \"DatabaseTcpPort\": {\r\n \"DefaultValue\": 1433,\r\n \"Type\": \"int\",\r\n \"Value\": 1433\r\n },\r\n \"DefaultServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Standard-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the default application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/DefaultServiceAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"ProductKey\": {\r\n \"DefaultValue\": \"0000-0000-0000-0000-0000\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"SharePoint-Produktlizenzschluessel.\",\r\n \"en-US\": \"SharePoint product license key.\"\r\n }\r\n }\r\n },\r\n \"SetupCredential\": {\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SetupAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"DatabasePrefix\": {\r\n \"DefaultValue\": \"SharePoint\",\r\n \"Type\": \"string\",\r\n \"Value\": \"SharePoint\"\r\n },\r\n \"SearchServiceApplicationPoolAccount\": {\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Kontoname fuer den Search-Application-Pool der SharePoint-Serviceanwendungen.\",\r\n \"en-US\": \"Account name used by the search application pool for SharePoint service applications.\"\r\n }\r\n },\r\n \"Sensitive\": true,\r\n \"Value\": {\r\n \"Provider\": \"SecretManagement\",\r\n \"Vault\": \"Test\",\r\n \"Name\": \"Windows/SharePoint/SearchAccount\"\r\n },\r\n \"Type\": \"credential\",\r\n \"Required\": true\r\n },\r\n \"CentralAdminPort\": {\r\n \"DefaultValue\": 443,\r\n \"Type\": \"int\",\r\n \"Value\": 4000\r\n },\r\n \"ServiceApplicationPoolSearch\": {\r\n \"DefaultValue\": \"SharePoint Search Service Applications\",\r\n \"Type\": \"string\",\r\n \"Metadata\": {\r\n \"Description\": {\r\n \"de-DE\": \"Anzeigename des Application-Pools fuer SharePoint Search-Serviceanwendungen.\",\r\n \"en-US\": \"Display name of the application pool for SharePoint Search service applications.\"\r\n }\r\n }\r\n }\r\n },\r\n \"variables\": {\r\n \"AdminDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_AdminContent\\u0027)]\",\r\n \"ContentDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ContentDatabaseSegment\\u0027))]\",\r\n \"ServiceDbPrefix\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), parameters(\\u0027ServiceDatabaseSegment\\u0027))]\",\r\n \"DatabasePrefix\": \"[joinNotEmpty(\\u0027_\\u0027, parameters(\\u0027DatabasePrefix\\u0027), parameters(\\u0027DomainLabel\\u0027), if(equals(parameters(\\u0027Landscape\\u0027), \\u0027Test\\u0027), \\u0027Test\\u0027, \\u0027\\u0027))]\",\r\n \"ConfigDbName\": \"[joinNotEmpty(\\u0027_\\u0027, variables(\\u0027DatabasePrefix\\u0027), \\u0027Farm_Config\\u0027)]\"\r\n },\r\n \"resources\": {\r\n \"AllNodes\": [\r\n {\r\n \"PSDscAllowDomainUser\": true,\r\n \"PSDSCAllowPlainTextPassword\": true,\r\n \"NodeName\": \"*\",\r\n \"RunCentralAdministration\": false\r\n }\r\n ],\r\n \"NonNodeData\": {\r\n \"Services\": {\r\n \"SharePoint\": {\r\n \"Farm\": {\r\n \"ManagedAccounts\": {\r\n \"DefaultServiceApplicationPoolAccount\": \"[parameters(\\u0027DefaultServiceApplicationPoolAccount\\u0027)]\",\r\n \"FarmAccount\": \"[parameters(\\u0027FarmCredential\\u0027)]\",\r\n \"SearchServiceApplicationPoolAccount\": \"[parameters(\\u0027SearchServiceApplicationPoolAccount\\u0027)]\"\r\n },\r\n \"Passphrase\": \"[parameters(\\u0027FarmPassphrase\\u0027)]\",\r\n \"ServiceApplications\": {\r\n \"AppManagementService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027AppManagement\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"StateService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027StateService\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SubscriptionSettingsService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SubscriptionSettings\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"ManagedMetadataService\": {\r\n \"Name\": \"Managed Metadata Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027ManagedMetadata\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SearchService\": {\r\n \"Name\": \"Search Service Application\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027Search\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.SearchServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"UsageAndHealthService\": {\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027UsageAndHealth\\u0027)]\",\r\n \"Provision\": true\r\n },\r\n \"SecureStoreService\": {\r\n \"Name\": \"Secure Store Service\",\r\n \"DatabaseName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027),\\u0027SecureStore\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"AuditingEnabled\": true\r\n },\r\n \"UserProfileService\": {\r\n \"SyncDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Sync\\u0027)]\",\r\n \"ApplicationPool\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ServiceApplicationPools.DefaultServiceApplicationPool\\u0027, \\u0027Name\\u0027)]\",\r\n \"Provision\": true,\r\n \"Name\": \"User Profile Service\",\r\n \"SocialDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Social\\u0027)]\",\r\n \"ProfileDBName\": \"[concat(variables(\\u0027ServiceDbPrefix\\u0027), \\u0027UserProfile_Profile\\u0027)]\"\r\n }\r\n },\r\n \"CentralAdminAuth\": \"NTLM\",\r\n \"ConfigDatabaseName\": \"[variables(\\u0027ConfigDbName\\u0027)]\",\r\n \"Accounts\": {\r\n \"SetupAccount\": \"[parameters(\\u0027SetupCredential\\u0027)]\"\r\n },\r\n \"CentralAdminPort\": \"[parameters(\\u0027CentralAdminPort\\u0027)]\",\r\n \"AdminContentDatabase\": \"[variables(\\u0027AdminDbName\\u0027)]\",\r\n \"ServiceApplicationPools\": {\r\n \"SearchServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.SearchServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolSearch\\u0027)]\"\r\n },\r\n \"DefaultServiceApplicationPool\": {\r\n \"Account\": \"[reference(\\u0027Resources.NonNodeData.Services.SharePoint.Farm.ManagedAccounts.DefaultServiceApplicationPoolAccount\\u0027, \\u0027UserName\\u0027)]\",\r\n \"Name\": \"[parameters(\\u0027ServiceApplicationPoolDefault\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"Database\": {\r\n \"Targets\": {\r\n \"Farm\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Content\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n },\r\n \"Service\": {\r\n \"Server\": \"SQLServer\",\r\n \"DependsOnAlias\": \"SQLServer\"\r\n }\r\n },\r\n \"SQLAlias\": {\r\n \"SQLServer\": {\r\n \"InstanceName\": \"[parameters(\\u0027DatabaseInstanceName\\u0027)]\",\r\n \"ServerName\": \"[parameters(\\u0027DatabaseServerName\\u0027)]\",\r\n \"Protocol\": \"TCP\",\r\n \"TcpPort\": \"[parameters(\\u0027DatabaseTcpPort\\u0027)]\"\r\n }\r\n }\r\n },\r\n \"General\": {\r\n \"ProductKey\": \"[parameters(\\u0027ProductKey\\u0027)]\"\r\n },\r\n \"Windows\": {\r\n \"Registry\": {\r\n \"DisableLoopbackCheck\": {\r\n \"Path\": \"HKLM:\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\Lsa\",\r\n \"Name\": \"DisableLoopbackCheck\",\r\n \"Value\": 1,\r\n \"Type\": \"DWord\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}", JsonHash = "E3B0E2A8E0C85CCD92AEA521ECD243E61E34C61D7078D6715E6317F5669A1D69", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000103"), Version = "1.0.0" }, new { Id = new Guid("71000000-0000-0000-0000-000000000104"), Created = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), CreatedBy = "DemoSeed", IsPublished = true, JsonData = "{\r\n \"schemaVersion\": \"1.0\",\r\n \"templateType\": \"Stage\",\r\n \"metadata\": {\r\n \"TemplateType\": \"Stage\",\r\n \"Name\": \"Install\"\r\n },\r\n \"parameters\": {\r\n\r\n },\r\n \"variables\": {\r\n\r\n },\r\n \"resources\": {\r\n \"NonNodeData\": {\r\n \"LocalConfigurationManager\": {\r\n \"RefreshFrequencyMins\": \"30\",\r\n \"RefreshMode\": \"PUSH\",\r\n \"ConfigurationModeFrequencyMins\": \"120\",\r\n \"ConfigurationMode\": \"ApplyOnly\"\r\n }\r\n }\r\n }\r\n}", JsonHash = "ACA23E44C9F625F080D2653646555A9DE5546D8DE7BB2166324E775BCF47F3C1", Modified = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), ModifiedBy = "DemoSeed", PublishedAt = new DateTime(2026, 7, 7, 0, 0, 0, 0, DateTimeKind.Utc), PublishedBy = "DemoSeed", SchemaVersion = "1.0", TemplateId = new Guid("70000000-0000-0000-0000-000000000104"), Version = "1.0.0" }); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationDefinitionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", "TemplateRevision") .WithMany("ConfigurationDefinitions") .HasForeignKey("TemplateRevisionId") .OnDelete(DeleteBehavior.Cascade); b.Navigation("TemplateRevision"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationValueModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationDefinitionModel", "ConfigurationDefinition") .WithMany("Values") .HasForeignKey("ConfigurationDefinitionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ConfigurationDefinition"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentArtifactModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") .WithMany("Artifacts") .HasForeignKey("DeploymentGroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", "Target") .WithMany() .HasForeignKey("TargetId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", "Deployment") .WithMany("Artifacts") .HasForeignKey("TargetId", "DeploymentGroupId") .OnDelete(DeleteBehavior.NoAction); b.Navigation("Deployment"); b.Navigation("DeploymentGroup"); b.Navigation("Target"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") .WithMany() .HasForeignKey("DeploymentRuleId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") .WithMany("DeploymentGroups") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("DeploymentRule"); b.Navigation("Template"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentArtifactModel", "CurrentArtifact") .WithMany() .HasForeignKey("CurrentArtifactId") .OnDelete(DeleteBehavior.NoAction); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") .WithMany("Deployments") .HasForeignKey("DeploymentGroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", "Target") .WithMany("Deployments") .HasForeignKey("TargetId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", "TemplateRevision") .WithMany("Deployments") .HasForeignKey("TemplateRevisionId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("CurrentArtifact"); b.Navigation("DeploymentGroup"); b.Navigation("Target"); b.Navigation("TemplateRevision"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentParameterValueModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") .WithMany("ParameterValues") .HasForeignKey("DeploymentGroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentTemplateSelectionModel", "DeploymentTemplateSelection") .WithMany() .HasForeignKey("DeploymentTemplateSelectionId") .OnDelete(DeleteBehavior.NoAction); b.Navigation("DeploymentGroup"); b.Navigation("DeploymentTemplateSelection"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleStepModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") .WithMany("Steps") .HasForeignKey("DeploymentRuleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("DeploymentRule"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentTargetAssignmentModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") .WithMany("TargetAssignments") .HasForeignKey("DeploymentGroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", "Target") .WithMany() .HasForeignKey("TargetId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("DeploymentGroup"); b.Navigation("Target"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentTemplateSelectionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", "DeploymentGroup") .WithMany("TemplateSelections") .HasForeignKey("DeploymentGroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", "TemplateRevision") .WithMany("DeploymentTemplateSelections") .HasForeignKey("TemplateRevisionId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateVersionModel", "TemplateVersion") .WithMany() .HasForeignKey("TemplateVersionId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("DeploymentGroup"); b.Navigation("TemplateRevision"); b.Navigation("TemplateVersion"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentDomainsModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") .WithMany("EnvironmentDomains") .HasForeignKey("DomainId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", "Environment") .WithMany("EnvironmentDomains") .HasForeignKey("EnvironmentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Domain"); b.Navigation("Environment"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", "OptionCategory") .WithMany("Options") .HasForeignKey("OptionCategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("OptionCategory"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobStepModel", "DependsOnQueueJobStep") .WithMany() .HasForeignKey("DependsOnQueueJobStepId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") .WithMany("Steps") .HasForeignKey("QueueJobId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("DependsOnQueueJobStep"); b.Navigation("QueueJob"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobTargetModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", "QueueJob") .WithMany("Targets") .HasForeignKey("QueueJobId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("QueueJob"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceRoleDefinitionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") .WithMany("RoleDefinitions") .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", "Domain") .WithMany("Targets") .HasForeignKey("DomainID"); b.Navigation("Domain"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", "Service") .WithMany("TemplateCategories") .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", "DeploymentRule") .WithMany() .HasForeignKey("DeploymentRuleId"); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", "TemplateCategory") .WithMany("Templates") .HasForeignKey("TemplateCategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("DeploymentRule"); b.Navigation("TemplateCategory"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateOptionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", "Option") .WithMany("TemplateOptions") .HasForeignKey("OptionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") .WithMany("TemplateOptions") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Option"); b.Navigation("Template"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateVersionModel", "TemplateVersion") .WithMany("TemplateRevisions") .HasForeignKey("TemplateVersionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("TemplateVersion"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateVersionModel", b => { b.HasOne("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", "Template") .WithMany("TemplateVersions") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Template"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ConfigurationDefinitionModel", b => { b.Navigation("Values"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentGroupModel", b => { b.Navigation("Artifacts"); b.Navigation("Deployments"); b.Navigation("ParameterValues"); b.Navigation("TargetAssignments"); b.Navigation("TemplateSelections"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentModel", b => { b.Navigation("Artifacts"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DeploymentRuleModel", b => { b.Navigation("Steps"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.DomainModel", b => { b.Navigation("EnvironmentDomains"); b.Navigation("Targets"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.EnvironmentModel", b => { b.Navigation("EnvironmentDomains"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionCategoryModel", b => { b.Navigation("Options"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.OptionModel", b => { b.Navigation("TemplateOptions"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.QueueJobModel", b => { b.Navigation("Steps"); b.Navigation("Targets"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.ServiceModel", b => { b.Navigation("RoleDefinitions"); b.Navigation("TemplateCategories"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TargetModel", b => { b.Navigation("Deployments"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateCategoryModel", b => { b.Navigation("Templates"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateModel", b => { b.Navigation("DeploymentGroups"); b.Navigation("TemplateOptions"); b.Navigation("TemplateVersions"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateRevisionModel", b => { b.Navigation("ConfigurationDefinitions"); b.Navigation("DeploymentTemplateSelections"); b.Navigation("Deployments"); }); modelBuilder.Entity("Microsoft.SelfService.Portal.Core.API.Models.TemplateVersionModel", b => { b.Navigation("TemplateRevisions"); }); #pragma warning restore 612, 618 } } }