SIF/1003/Platform/XP0-SingleDeveloper.json

{
    "Parameters": {
        "XConnectCertificateName": {
            "Type": "String",
            "Description": "The name of the certificate to be created for the xconnect server.",
            "DefaultValue": ""
        },
        "IdentityServerCertificateName": {
            "Type": "String",
            "Description": "The name of the certificate to be created for the identity server.",
            "DefaultValue": ""
        },
        "IdentityServerSiteName": {
            "Type": "String",
            "Description": "The name of the identity server to be created.",
            "DefaultValue": "IdentityServer"
        },
        "LicenseFile": {
            "Type": "String",
            "Description": "The path to the Sitecore license file.",
            "DefaultValue": ".\\License.xml"
        },
        "Prefix": {
            "Type": "String",
            "DefaultValue": "SC910",
            "Description": "The prefix for uniquely identifying instances."
        },
        "SitecoreAdminPassword": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The admin password for the Sitecore instance."
        },
        "SiteRoot": {
            "Type": "String",
            "Description": "Root folder to install the site to. If left on the default [systemdrive]:\\inetpub\\wwwroot will be used.",
            "DefaultValue": ""
        },
        "SqlAdminUser": {
            "Type": "string",
            "DefaultValue": "sa",
            "Description": "The Sql admin user account to use when installing databases."
        },
        "SqlAdminPassword": {
            "Type": "string",
            "DefaultValue": "12345",
            "Description": "The Sql admin password to use when installing databases."
        },
        "SQLServer": {
            "Type": "String",
            "DefaultValue": "Localhost",
            "Description": "The Sql Server where databases will be installed."
        },
        "SqlCollectionPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql admin password to use when installing databases."
        },
        "SqlProcessingPoolsPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Processing Pools connection string in Sitecore."
        },
        "SqlReferenceDataPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Reference Data connection string in Sitecore."
        },
        "SqlMarketingAutomationPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Marketing Automation connection string in Sitecore."
        },
        "SqlMessagingPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Messaging connection string in Sitecore."
        },
        "SqlProcessingEnginePassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Processing Engine Tasks and Storage database connection strings in Sitecore."
        },
        "SqlReportingPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Reporting connection string in Sitecore."
        },
        "SqlCorePassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Core connection string in Sitecore."
        },
        "SqlSecurityPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Security connection string in Sitecore."
        },
        "SqlMasterPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Master connection string in Sitecore."
        },
        "SqlWebPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Web connection string in Sitecore."
        },
        "SqlProcessingTasksPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Processing Tasks connection string in Sitecore."
        },
        "SqlFormsPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the Experience Forms connection string in Sitecore."
        },
        "SqlExmMasterPassword": {
            "Type": "string",
            "DefaultValue": "SIF-Default",
            "Description": "The Sql password for the EXM Master connection string in Sitecore."
        },
        "SolrUrl": {
            "Type": "String",
            "DefaultValue": "https://localhost:8983/solr",
            "Description": "The Solr instance to use."
        },
        "SolrRoot": {
            "Type": "String",
            "DefaultValue": "C:\\solr-8.4.0",
            "Description": "The file path to the Solr instance."
        },
        "SolrService": {
            "Type": "String",
            "DefaultValue": "Solr-8.4.0",
            "Description": "The name of the Solr service."
        },
        "XConnectPackage": {
            "Type": "String",
            "DefaultValue": "",
            "Description": "The path to the XConnect package to deploy."
        },
        "XConnectSiteName": {
            "Type": "String",
            "DefaultValue": "XConnect",
            "Description": "The name of the XConnect site."
        },
        "SitecoreSiteName": {
            "Type": "String",
            "DefaultValue": "Sitecore",
            "Description": "The name of the Sitecore site."
        },
        "PasswordRecoveryUrl": {
            "Type": "string",
            "Description": "Password recovery Url (Host name of CM instance).",
            "DefaultValue": "http:\\"
        },
        "SitecorePackage": {
            "Type": "String",
            "DefaultValue": "",
            "Description": "The path to the Sitecore package to deploy."
        },
        "IdentityServerPackage": {
            "Type": "String",
            "DefaultValue": "",
            "Description": "The path to the Identity Server package to deploy."
        },
        "XConnectCollectionService": {
            "Type": "string",
            "DefaultValue": "https://XConnect",
            "Description": "The url for the XConnect Collection Service."
        },
        "ClientsConfiguration": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "Sitecore IdentityServer clients configuration"
        },
        "AllowedCorsOrigins": {
            "Type": "string",
            "Description": "Pipe-separated list of instances (URIs) that are allowed to login via Sitecore Identity.",
            "DefaultValue": ""
        },
        "SitecoreIdentityAuthority": {
            "Type": "string",
            "DefaultValue": "https://SitecoreIdentityServerHost",
            "Description": "IdentityServer provider URI."
        },
        "ClientSecret": {
            "Type": "string",
            "Description": "Client secret of PasswordClient section. It's a random string between 1 and 100 symbols long.",
            "DefaultValue": "SIF-Default"
        },
        "MachineLearningServerUrl": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The Microsoft Machine Learning Server instance to use."
        },
        "MachineLearningServerBlobEndpointCertificatePath": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The Machine Learning Server Blob Storage WebApi Endpoint Certificate Path."
        },
        "MachineLearningServerBlobEndpointCertificatePassword": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The Machine Learning Server Blob Storage WebApi Endpoint Certificate Password."
        },
        "MachineLearningServerTableEndpointCertificatePath": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The Machine Learning Server Table Storage WebApi Endpoint Certificate Path."
        },
        "MachineLearningServerTableEndpointCertificatePassword": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The Machine Learning Server Table Storage WebApi Endpoint Certificate Password."
        },
        "MachineLearningServerEndpointCertificationAuthorityCertificatePath": {
            "Type": "string",
            "DefaultValue": "",
            "Description": "The path to certificate of certification authority that issued certificates for Machine Learning Server Blob and Table storage endpoints."
        },
        "PackagesTempLocation": {
            "Type": "String",
            "Description": "Alternative location to save WDP packages. If left on the default $Env:Temp will be used.",
            "DefaultValue": ""
        },
        "DownloadLocations": {
            "Type": "String",
            "Description": "File with URI and SHA256 hashes of dynamically downloadable WDPs.",
            "DefaultValue": ".\\downloads.json"
        },
        "XConnectXP0:Package": {
            "Type": "String",
            "Reference": "XConnectPackage",
            "Description": "Override to pass XConnectPackage value to XConnectXP0 config."
        },
        "SitecoreXP0:Package": {
            "Type": "String",
            "Reference": "SitecorePackage",
            "Description": "Override to pass SitecorePackage value to SitecoreXP0 config."
        },
        "IdentityServer:Package": {
            "Type": "String",
            "Reference": "IdentityServerPackage",
            "Description": "Override to pass IdentityServerPackage value to IdentityServer config."
        },
        "XConnectXP0:Sitename": {
            "Type": "String",
            "Reference": "XConnectSiteName",
            "Description": "Override to pass XConnectSiteName value to XConnectXP0 config."
        },
        "SitecoreXP0:Sitename": {
            "Type": "String",
            "Reference": "SitecoreSiteName",
            "Description": "Override to pass SitecoreSiteName value to SitecoreXP0 config."
        },
        "IdentityServer:SiteRoot": {
            "Type": "String",
            "Reference": "SiteRoot",
            "Description": "Override to pass SiteRoot value to IdentityServer config."
        },
        "XConnectXP0:SiteRoot": {
            "Type": "String",
            "Reference": "SiteRoot",
            "Description": "Override to pass SiteRoot value to XConnectXP0 config."
        },
        "SitecoreXP0:SiteRoot": {
            "Type": "String",
            "Reference": "SiteRoot",
            "Description": "Override to pass SiteRoot value to SitecoreXP0 config."
        },
        "IdentityServer:PasswordRecoveryUrl": {
            "Type": "String",
            "Reference": "PasswordRecoveryUrl",
            "Description": "Override to pass PasswordRecoveryUrl value to IdentityServer config."
        },
        "SitecoreXP0:SitecoreIdentityAuthority": {
            "Type": "String",
            "Reference": "SitecoreIdentityAuthority",
            "Description": "Override to pass SitecoreIdentityAuthority value to SitecoreXP0 config."
        },
        "SitecoreXP0:XConnectCollectionService": {
            "Type": "String",
            "Reference": "XConnectCollectionService",
            "Description": "Override to pass XConnectCollectionService value to SitecoreXP0 config."
        },
        "IdentityServer:ClientsConfiguration": {
            "Type": "String",
            "Reference": "ClientsConfiguration",
            "Description": "Override to pass ClientsConfiguration value to IdentityServer config."
        },
        "XConnectXP0:SqlServer": {
            "Type": "String",
            "Reference": "SQLServer",
            "Description": "Override to pass SqlServer value to XConnectXP0 config."
        },
        "SitecoreXP0:SqlServer": {
            "Type": "String",
            "Reference": "SQLServer",
            "Description": "Override to pass SqlServer value to SitecoreXP0 config."
        },
        "IdentityServer:SqlServer": {
            "Type": "String",
            "Reference": "SQLServer",
            "Description": "Override to pass SqlServer value to IdentityServer config."
        },
        "XConnectSolr:SolrUrl": {
            "Type": "String",
            "Reference": "SolrUrl",
            "Description": "Override to pass SolrURL value to XConnectSolr config."
        },
        "XConnectXP0:SolrURL": {
            "Type": "String",
            "Reference": "SolrUrl",
            "Description": "Override to pass SolrURL value to XConnectXP0 config."
        },
        "SitecoreSolr:SolrUrl": {
            "Type": "String",
            "Reference": "SolrUrl",
            "Description": "Override to pass SolrURL value to SitecoreSolr config."
        },
        "SitecoreXP0:SolrUrl": {
            "Type": "String",
            "Reference": "SolrUrl",
            "Description": "Override to pass SolrURL value to SitecoreXP0 config."
        },
        "XConnectSolr:SolrRoot": {
            "Type": "String",
            "Reference": "SolrRoot",
            "Description": "Override to pass SolrRoot value to XConnectSolr config."
        },
        "SitecoreSolr:SolrRoot": {
            "Type": "String",
            "Reference": "SolrRoot",
            "Description": "Override to pass SolrRoot value to SitecoreSolr config."
        },
        "XConnectSolr:SolrService": {
            "Type": "String",
            "Reference": "SolrService",
            "Description": "Override to pass SolrService value to XConnectSolr config."
        },
        "SitecoreSolr:SolrService": {
            "Type": "String",
            "Reference": "SolrService",
            "Description": "Override to pass SolrService value to SitecoreSolr config."
        },
        "XConnectSolr:SolrCorePrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to XConnectSolr config."
        },
        "XConnectXP0:SqlDbPrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to XConnectXP0 config."
        },
        "XConnectXP0:SolrCorePrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to XConnectXP0 config."
        },
        "SitecoreSolr:SolrCorePrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to SitecoreSolr config."
        },
        "SitecoreXP0:SqlDbPrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to SitecoreXP0 config."
        },
        "IdentityServer:SqlDbPrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to IdentityServer config."
        },
        "SitecoreXP0:SolrCorePrefix": {
            "Type": "String",
            "Reference": "Prefix",
            "Description": "Override to pass Prefix value to SitecoreXP0 config."
        },
        "XConnectCertificates:CertificateName": {
            "Type": "String",
            "Reference": "XConnectCertificateName",
            "Description": "Override to pass XConnectCertificateName value to XConnectCertificates config."
        },
        "IdentityServerCertificates:CertificateName": {
            "Type": "String",
            "Reference": "IdentityServerCertificateName",
            "Description": "Override to pass IdentityServerCertificateName value to IdentityServerCertificates config."
        },
        "IdentityServer:SiteName": {
            "Type": "String",
            "Reference": "IdentityServerSiteName",
            "Description": "Override to pass IdentityServerSiteName value to IdentityServer config."
        },
        "IdentityServer:SitecoreIdentityCert": {
            "Type": "String",
            "Reference": "IdentityServerCertificateName",
            "Description": "Override to pass IdentityServerCertificateName value to IdentityServer config."
        },
        "XConnectXP0:XConnectCert": {
            "Type": "String",
            "Reference": "XConnectCertificateName",
            "Description": "Override to pass CertificateName value to XConnectXP0 config."
        },
        "SitecoreXP0:XConnectCert": {
            "Type": "String",
            "Reference": "XConnectCertificateName",
            "Description": "Override to pass CertificateName value to SitecoreXP0 config."
        },
        "XConnectXP0:LicenseFile": {
            "Type": "String",
            "Reference": "LicenseFile",
            "Description": "Override to pass LicenseFile value to XConnectXP0 config."
        },
        "SitecoreXP0:LicenseFile": {
            "Type": "String",
            "Reference": "LicenseFile",
            "Description": "Override to pass LicenseFile value to SitecoreXP0 config."
        },
        "IdentityServer:LicenseFile": {
            "Type": "String",
            "Reference": "LicenseFile",
            "Description": "Override to pass LicenseFile value to IdentityServer config."
        },
        "XConnectXP0:SqlAdminUser": {
            "Type": "String",
            "Reference": "SqlAdminUser",
            "Description": "Override to pass SqlAdminUser value to XConnectXP0 config."
        },
        "SitecoreXP0:SqlAdminUser": {
            "Type": "String",
            "Reference": "SqlAdminUser",
            "Description": "Override to pass SqlAdminUser value to SitecoreXP0 config."
        },
        "XConnectXP0:SqlAdminPassword": {
            "Type": "String",
            "Reference": "SqlAdminPassword",
            "Description": "Override to pass SqlAdminPassword value to XConnectXP0 config."
        },
        "SitecoreXP0:SqlAdminPassword": {
            "Type": "String",
            "Reference": "SqlAdminPassword",
            "Description": "Override to pass SqlAdminPassword value to SitecoreXP0 config."
        },
        "IdentityServer:AllowedCorsOrigins": {
            "Type": "String",
            "Reference": "AllowedCorsOrigins",
            "Description": "Override to pass AllowedCorsOrigins value to IdentityServer config."
        },
        "XConnectXP0:MachineLearningServerUrl": {
            "Type": "String",
            "Reference": "MachineLearningServerUrl",
            "Description": "Override to pass MachineLearningServerUrl value to XConnectXP0 config."
        },
        "XConnectXP0:MachineLearningServerBlobEndpointCertificatePath": {
            "Type": "String",
            "Reference": "MachineLearningServerBlobEndpointCertificatePath",
            "Description": "Override to pass MachineLearningServerBlobEndpointCertificatePath value to XConnectXP0 config."
        },
        "XConnectXP0:MachineLearningServerBlobEndpointCertificatePassword": {
            "Type": "String",
            "Reference": "MachineLearningServerBlobEndpointCertificatePassword",
            "Description": "Override to pass MachineLearningServerBlobEndpointCertificatePassword value to XConnectXP0 config."
        },
        "XConnectXP0:MachineLearningServerTableEndpointCertificatePath": {
            "Type": "String",
            "Reference": "MachineLearningServerTableEndpointCertificatePath",
            "Description": "Override to pass MachineLearningServerTableEndpointCertificatePath value to XConnectXP0 config."
        },
        "XConnectXP0:MachineLearningServerTableEndpointCertificatePassword": {
            "Type": "String",
            "Reference": "MachineLearningServerTableEndpointCertificatePassword",
            "Description": "Override to pass MachineLearningServerTableEndpointCertificatePassword value to XConnectXP0 config."
        },
        "XConnectXP0:MachineLearningServerEndpointCertificationAuthorityCertificatePath": {
            "Type": "String",
            "Reference": "MachineLearningServerEndpointCertificationAuthorityCertificatePath",
            "Description": "Override to pass MachineLearningServerEndpointCertificationAuthorityCertificatePath value to XConnectXP0 config."
        },
        "SitecoreXP0:SitecoreAdminPassword": {
            "Type": "String",
            "Reference": "SitecoreAdminPassword",
            "Description": "Override to pass SitecoreAdminPassword value to SitecoreXPO config."
        },
        "IdentityServer:PackagesTempLocation": {
            "Type": "String",
            "Reference": "PackagesTempLocation",
            "Description": "Override to pass PackagesTempLocation value to IdentityServer config."
        },
        "SitecoreXP0:PackagesTempLocation": {
            "Type": "String",
            "Reference": "PackagesTempLocation",
            "Description": "Override to pass PackagesTempLocation name value to SitecoreXP0 config."
        },
        "XConnectXP0:PackagesTempLocation": {
            "Type": "String",
            "Reference": "PackagesTempLocation",
            "Description": "Override to pass PackagesTempLocation name value to XConnectXP0 config."
        },
        "IdentityServer:DownloadLocations": {
            "Type": "String",
            "Reference": "DownloadLocations",
            "Description": "Override to pass DownloadLocations value to IdentityServer config."
        },
        "SitecoreXP0:DownloadLocations": {
            "Type": "String",
            "Reference": "DownloadLocations",
            "Description": "Override to pass DownloadLocations name value to SitecoreXP0 config."
        },
        "XConnectXP0:DownloadLocations": {
            "Type": "String",
            "Reference": "DownloadLocations",
            "Description": "Override to pass DownloadLocations name value to XConnectXP0 config."
        }
    },
    "Variables": {
        "Sql.Database.ProcessingPools.Password": "[if(variable('Sql.Database.ProcessingPools.Password.Test'),variable('Sql.Database.ProcessingPools.Password.Generate'),parameter('SqlProcessingPoolsPassword'))]",
        "Sql.Database.ProcessingPools.Password.Test": "[equal(parameter('SqlProcessingPoolsPassword'),'SIF-Default')]",
        "Sql.Database.ProcessingPools.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.ProcessingPools.Password": "[variable('Sql.Database.ProcessingPools.Password')]",
        "SitecoreXP0:Sql.Database.ProcessingPools.Password": "[variable('Sql.Database.ProcessingPools.Password')]",
 
        "Sql.Database.Collection.Password": "[if(variable('Sql.Database.Collection.Password.Test'),variable('Sql.Database.Collection.Password.Generate'),parameter('SqlCollectionPassword'))]",
        "Sql.Database.Collection.Password.Test": "[equal(parameter('SqlCollectionPassword'),'SIF-Default')]",
        "Sql.Database.Collection.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.Collection.Password": "[variable('Sql.Database.Collection.Password')]",
 
        "Sql.Database.ReferenceData.Password": "[if(variable('Sql.Database.ReferenceData.Password.Test'),variable('Sql.Database.ReferenceData.Password.Generate'),parameter('SqlReferenceDataPassword'))]",
        "Sql.Database.ReferenceData.Password.Test": "[equal(parameter('SqlReferenceDataPassword'),'SIF-Default')]",
        "Sql.Database.ReferenceData.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.ReferenceData.Password": "[variable('Sql.Database.ReferenceData.Password')]",
        "SitecoreXP0:Sql.Database.ReferenceData.Password": "[variable('Sql.Database.ReferenceData.Password')]",
 
        "Sql.Database.MarketingAutomation.Password": "[if(variable('Sql.Database.MarketingAutomation.Password.Test'),variable('Sql.Database.MarketingAutomation.Password.Generate'),parameter('SqlMarketingAutomationPassword'))]",
        "Sql.Database.MarketingAutomation.Password.Test": "[equal(parameter('SqlMarketingAutomationPassword'),'SIF-Default')]",
        "Sql.Database.MarketingAutomation.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.MarketingAutomation.Password": "[variable('Sql.Database.MarketingAutomation.Password')]",
        "SitecoreXP0:Sql.Database.MarketingAutomation.Password": "[variable('Sql.Database.MarketingAutomation.Password')]",
 
        "Sql.Database.Messaging.Password": "[if(variable('Sql.Database.Messaging.Password.Test'),variable('Sql.Database.Messaging.Password.Generate'),parameter('SqlMessagingPassword'))]",
        "Sql.Database.Messaging.Password.Test": "[equal(parameter('SqlMessagingPassword'),'SIF-Default')]",
        "Sql.Database.Messaging.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.Messaging.Password": "[variable('Sql.Database.Messaging.Password')]",
        "SitecoreXP0:Sql.Database.Messaging.Password": "[variable('Sql.Database.Messaging.Password')]",
 
        "Sql.Database.ProcessingEngine.Password": "[if(variable('Sql.Database.ProcessingEngine.Password.Test'),variable('Sql.Database.ProcessingEngine.Password.Generate'),parameter('SqlProcessingEnginePassword'))]",
        "Sql.Database.ProcessingEngine.Password.Test": "[equal(parameter('SqlProcessingEnginePassword'),'SIF-Default')]",
        "Sql.Database.ProcessingEngine.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.ProcessingEngine.Password": "[variable('Sql.Database.ProcessingEngine.Password')]",
 
        "Sql.Database.Reporting.Password": "[if(variable('Sql.Database.Reporting.Password.Test'),variable('Sql.Database.Reporting.Password.Generate'),parameter('SqlReportingPassword'))]",
        "Sql.Database.Reporting.Password.Test": "[equal(parameter('SqlReportingPassword'),'SIF-Default')]",
        "Sql.Database.Reporting.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "XConnectXP0:Sql.Database.Reporting.Password": "[variable('Sql.Database.Reporting.Password')]",
        "SitecoreXP0:Sql.Database.Reporting.Password": "[variable('Sql.Database.Reporting.Password')]",
 
        "Sql.Database.Core.Password": "[if(variable('Sql.Database.Core.Password.Test'),variable('Sql.Database.Core.Password.Generate'),parameter('SqlCorePassword'))]",
        "Sql.Database.Core.Password.Test": "[equal(parameter('SqlCorePassword'),'SIF-Default')]",
        "Sql.Database.Core.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.Core.Password": "[variable('Sql.Database.Core.Password')]",
 
        "Sql.Database.Security.Password": "[if(variable('Sql.Database.Security.Password.Test'),variable('Sql.Database.Security.Password.Generate'),parameter('SqlSecurityPassword'))]",
        "Sql.Database.Security.Password.Test": "[equal(parameter('SqlSecurityPassword'),'SIF-Default')]",
        "Sql.Database.Security.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.Security.Password": "[variable('Sql.Database.Security.Password')]",
        "IdentityServer:Sql.Database.Security.Password": "[variable('Sql.Database.Security.Password')]",
 
        "Sql.Database.Master.Password": "[if(variable('Sql.Database.Master.Password.Test'),variable('Sql.Database.Master.Password.Generate'),parameter('SqlMasterPassword'))]",
        "Sql.Database.Master.Password.Test": "[equal(parameter('SqlMasterPassword'),'SIF-Default')]",
        "Sql.Database.Master.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.Master.Password": "[variable('Sql.Database.Master.Password')]",
 
        "Sql.Database.Web.Password": "[if(variable('Sql.Database.Web.Password.Test'),variable('Sql.Database.Web.Password.Generate'),parameter('SqlWebPassword'))]",
        "Sql.Database.Web.Password.Test": "[equal(parameter('SqlWebPassword'),'SIF-Default')]",
        "Sql.Database.Web.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.Web.Password": "[variable('Sql.Database.Web.Password')]",
 
        "Sql.Database.ProcessingTasks.Password": "[if(variable('Sql.Database.ProcessingTasks.Password.Test'),variable('Sql.Database.ProcessingTasks.Password.Generate'),parameter('SqlProcessingTasksPassword'))]",
        "Sql.Database.ProcessingTasks.Password.Test": "[equal(parameter('SqlProcessingTasksPassword'),'SIF-Default')]",
        "Sql.Database.ProcessingTasks.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.ProcessingTasks.Password": "[variable('Sql.Database.ProcessingTasks.Password')]",
 
        "Sql.Database.Forms.Password": "[if(variable('Sql.Database.Forms.Password.Test'),variable('Sql.Database.Forms.Password.Generate'),parameter('SqlFormsPassword'))]",
        "Sql.Database.Forms.Password.Test": "[equal(parameter('SqlFormsPassword'),'SIF-Default')]",
        "Sql.Database.Forms.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.Forms.Password": "[variable('Sql.Database.Forms.Password')]",
 
        "Sql.Database.EXMMaster.Password": "[if(variable('Sql.Database.EXMMaster.Password.Test'),variable('Sql.Database.EXMMaster.Password.Generate'),parameter('SqlExmMasterPassword'))]",
        "Sql.Database.EXMMaster.Password.Test": "[equal(parameter('SqlExmMasterPassword'),'SIF-Default')]",
        "Sql.Database.EXMMaster.Password.Generate": "[randomstring(Length:20,DisAllowSpecial:True,EnforceComplexity:True)]",
 
        "SitecoreXP0:Sql.Database.EXMMaster.Password": "[variable('Sql.Database.EXMMaster.Password')]",
 
        "IdentityServer.Client.Secret": "[if(variable('IdentityServer.Client.Secret.Test'),variable('IdentityServer.Client.Secret.Generate'),parameter('ClientSecret'))]",
        "IdentityServer.Client.Secret.Test": "[equal(parameter('ClientSecret'),'SIF-Default')]",
        "IdentityServer.Client.Secret.Generate": "[randomstring(Length:100,DisAllowSpecial:True)]",
 
        "IdentityServer:IdentityServer.Client.Secret": "[variable('IdentityServer.Client.Secret')]",
        "SitecoreXP0:IdentityServer.Client.Secret": "[variable('IdentityServer.Client.Secret')]"
    },
    "Includes": {
        "IdentityServerCertificates": {
            "Source": ".\\..\\Certificates\\createcert.json"
        },
        "IdentityServer": {
            "Source": ".\\identityServer.json"
        },
        "XConnectCertificates": {
            "Source": ".\\..\\Certificates\\createcert.json"
        },
        "XConnectSolr": {
            "Source": ".\\xconnect-solr.json"
        },
        "XConnectXP0": {
            "Source": ".\\xconnect-xp0.json"
        },
        "SitecoreSolr": {
            "Source": ".\\Sitecore-solr.json"
        },
        "SitecoreXP0": {
            "Source": ".\\Sitecore-XP0.json"
        }
    },
    "Register": {
        "Tasks": {
            "SetVariable": "Set-Variable"
        }
    },
    "Tasks": {
        "GeneratePasswords": {
            "Description": "Generates all shared passwords and secrets.",
            "Type": "SetVariable",
            "Params": {
                "Name": "XP0Passwords",
                "Scope": "Global",
                "Value": [
                    {
                        "SqlProcessingPoolsPassword": "[variable('Sql.Database.ProcessingPools.Password')]"
                    },
                    {
                        "SqlCollectionPassword": "[variable('Sql.Database.Collection.Password')]"
                    },
                    {
                        "SqlReferenceDataPassword": "[variable('Sql.Database.ReferenceData.Password')]"
                    },
                    {
                        "SqlMarketingAutomationPassword": "[variable('Sql.Database.MarketingAutomation.Password')]"
                    },
                    {
                        "SqlMessagingPassword": "[variable('Sql.Database.Messaging.Password')]"
                    },
                    {
                        "SqlProcessingEnginePassword": "[variable('Sql.Database.ProcessingEngine.Password')]"
                    },
                    {
                        "SqlReportingPassword": "[variable('Sql.Database.Reporting.Password')]"
                    },
                    {
                        "SqlCorePassword": "[variable('Sql.Database.Core.Password')]"
                    },
                    {
                        "SqlSecurityPassword": "[variable('Sql.Database.Security.Password')]"
                    },
                    {
                        "SqlMasterPassword": "[variable('Sql.Database.Master.Password')]"
                    },
                    {
                        "SqlWebPassword": "[variable('Sql.Database.Web.Password')]"
                    },
                    {
                        "SqlProcessingTasksPassword": "[variable('Sql.Database.ProcessingTasks.Password')]"
                    },
                    {
                        "SqlFormsPassword": "[variable('Sql.Database.Forms.Password')]"
                    },
                    {
                        "SqlExmMasterPassword": "[variable('Sql.Database.EXMMaster.Password')]"
                    },
                    {
                        "ClientSecret": "[variable('IdentityServer.Client.Secret')]"
                    }
                ]
            }
        }
    }
}