in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentVisitor.cs [131:167]
internal PolicyAssignmentContext(PipelineContext context, bool keepDuplicates = false)
{
_KeepDuplicates = keepDuplicates;
_ExpressionFactory = new ExpressionFactory(policy: true);
_ExpressionBuilder = new ExpressionBuilder(_ExpressionFactory);
_PolicyAliasProviderHelper = new PolicyAliasProviderHelper();
_Definitions = [];
DefinitionParameterMap = new Dictionary<string, IDictionary<string, IParameterValue>>(StringComparer.OrdinalIgnoreCase);
_Validator = new TemplateValidator();
_ParameterAssignments = new Dictionary<string, JToken>();
Pipeline = context;
_FieldPrefix = new Stack<string>();
ResourceGroup = context?.Option?.Configuration?.ResourceGroup ?? ResourceGroupOption.Default;
Subscription = context?.Option?.Configuration?.Subscription ?? SubscriptionOption.Default;
Tenant = context?.Option?.Configuration?.Tenant ?? TenantOption.Default;
ManagementGroup = context?.Option?.Configuration?.ManagementGroup ?? ManagementGroupOption.Default;
Deployer = context?.Option?.Configuration?.Deployer ?? DeployerOption.Default;
PolicyRulePrefix = ConfigurationOption.Default.PolicyRulePrefix;
if (context?.Option?.Configuration?.PolicyRulePrefix != null)
PolicyRulePrefix = context?.Option?.Configuration?.PolicyRulePrefix;
_PolicyIgnore = new PolicyIgnoreData().GetIndex();
if (context?.Option?.Configuration?.PolicyIgnoreList != null &&
context.Option.Configuration.PolicyIgnoreList.Length > 0)
{
foreach (var id in context.Option.Configuration.PolicyIgnoreList)
{
_PolicyIgnore[id] = new PolicyIgnoreResult
{
Reason = PolicyIgnoreReason.Configured
};
}
}
_ReplacementRules = [];
}