/// <summary>
 /// Initializes a new instance of the DeploymentProperties class.
 /// </summary>
 /// <param name="mode">The mode that is used to deploy resources. This
 /// value can be either Incremental or Complete. In Incremental mode,
 /// resources are deployed without deleting existing resources that are
 /// not included in the template. In Complete mode, resources are
 /// deployed and existing resources in the resource group that are not
 /// included in the template are deleted. Be careful when using
 /// Complete mode as you may unintentionally delete resources. Possible
 /// values include: 'Incremental', 'Complete'</param>
 /// <param name="template">The template content. You use this element
 /// when you want to pass the template syntax directly in the request
 /// rather than link to an existing template. It can be a JObject or
 /// well-formed JSON string. Use either the templateLink property or
 /// the template property, but not both.</param>
 /// <param name="templateLink">The URI of the template. Use either the
 /// templateLink property or the template property, but not
 /// both.</param>
 /// <param name="parameters">Name and value pairs that define the
 /// deployment parameters for the template. You use this element when
 /// you want to provide the parameter values directly in the request
 /// rather than link to an existing parameter file. Use either the
 /// parametersLink property or the parameters property, but not both.
 /// It can be a JObject or a well formed JSON string.</param>
 /// <param name="parametersLink">The URI of parameters file. You use
 /// this element to link to an existing parameters file. Use either the
 /// parametersLink property or the parameters property, but not
 /// both.</param>
 /// <param name="debugSetting">The debug setting of the
 /// deployment.</param>
 /// <param name="onErrorDeployment">The deployment on error
 /// behavior.</param>
 /// <param name="expressionEvaluationOptions">Specifies whether
 /// template expressions are evaluated within the scope of the parent
 /// template or nested template. Only applicable to nested templates.
 /// If not specified, default value is outer.</param>
 public DeploymentProperties(DeploymentMode mode, object template = default(object), TemplateLink templateLink = default(TemplateLink), object parameters = default(object), ParametersLink parametersLink = default(ParametersLink), DebugSetting debugSetting = default(DebugSetting), OnErrorDeployment onErrorDeployment = default(OnErrorDeployment), ExpressionEvaluationOptions expressionEvaluationOptions = default(ExpressionEvaluationOptions))
 {
     Template                    = template;
     TemplateLink                = templateLink;
     Parameters                  = parameters;
     ParametersLink              = parametersLink;
     Mode                        = mode;
     DebugSetting                = debugSetting;
     OnErrorDeployment           = onErrorDeployment;
     ExpressionEvaluationOptions = expressionEvaluationOptions;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the DeploymentWhatIfProperties class.
 /// </summary>
 /// <param name="mode">The mode that is used to deploy resources. This
 /// value can be either Incremental or Complete. In Incremental mode,
 /// resources are deployed without deleting existing resources that are
 /// not included in the template. In Complete mode, resources are
 /// deployed and existing resources in the resource group that are not
 /// included in the template are deleted. Be careful when using
 /// Complete mode as you may unintentionally delete resources. Possible
 /// values include: 'Incremental', 'Complete'</param>
 /// <param name="template">The template content. You use this element
 /// when you want to pass the template syntax directly in the request
 /// rather than link to an existing template. It can be a JObject or
 /// well-formed JSON string. Use either the templateLink property or
 /// the template property, but not both.</param>
 /// <param name="templateLink">The URI of the template. Use either the
 /// templateLink property or the template property, but not
 /// both.</param>
 /// <param name="parameters">Name and value pairs that define the
 /// deployment parameters for the template. You use this element when
 /// you want to provide the parameter values directly in the request
 /// rather than link to an existing parameter file. Use either the
 /// parametersLink property or the parameters property, but not both.
 /// It can be a JObject or a well formed JSON string.</param>
 /// <param name="parametersLink">The URI of parameters file. You use
 /// this element to link to an existing parameters file. Use either the
 /// parametersLink property or the parameters property, but not
 /// both.</param>
 /// <param name="debugSetting">The debug setting of the
 /// deployment.</param>
 /// <param name="onErrorDeployment">The deployment on error
 /// behavior.</param>
 /// <param name="expressionEvaluationOptions">Specifies whether
 /// template expressions are evaluated within the scope of the parent
 /// template or nested template. Only applicable to nested templates.
 /// If not specified, default value is outer.</param>
 /// <param name="whatIfSettings">Optional What-If operation
 /// settings.</param>
 public DeploymentWhatIfProperties(DeploymentMode mode, object template = default(object), TemplateLink templateLink = default(TemplateLink), object parameters = default(object), ParametersLink parametersLink = default(ParametersLink), DebugSetting debugSetting = default(DebugSetting), OnErrorDeployment onErrorDeployment = default(OnErrorDeployment), ExpressionEvaluationOptions expressionEvaluationOptions = default(ExpressionEvaluationOptions), DeploymentWhatIfSettings whatIfSettings = default(DeploymentWhatIfSettings))
     : base(mode, template, templateLink, parameters, parametersLink, debugSetting, onErrorDeployment, expressionEvaluationOptions)
 {
     WhatIfSettings = whatIfSettings;
     CustomInit();
 }