Dependencies/Assemblies/Microsoft365DSC.Intune.xml
|
<?xml version="1.0"?>
<doc> <assembly> <name>Microsoft365DSC.Intune</name> </assembly> <members> <member name="T:Microsoft365DSC.Intune.SettingInstanceInfo"> <summary> Lightweight representation of a setting instance coming from the Graph API response. The PowerShell version works with raw PSObjects or Hashtables; this C# model normalizes the data to avoid repeated reflection or dictionary lookups during recursive traversal. <para><b>AdditionalProperties handling:</b></para> Graph SDK objects store most of the interesting data in <c>AdditionalProperties</c>, which is only accessible via reflection (NonPublic | Instance). Rather than doing reflection on every recursive call, this model flattens the data at construction time. The <see cref="T:Microsoft365DSC.Intune.SettingInstanceMapper"/> handles the extraction from both Graph objects and Hashtables (the latter from already-converted data). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.SettingDefinitionId"> <summary>The settingDefinitionId of this instance.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.ODataType"> <summary>The @odata.type of this instance.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.SimpleSettingValue"> <summary>For SimpleSettingInstance: the value object containing @odata.type and value.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.ChoiceSettingValue"> <summary>For ChoiceSettingInstance: the choice setting value (value + children).</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.ChoiceSettingCollectionValues"> <summary>For ChoiceSettingCollectionInstance: the collection of choice values.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.GroupSettingCollectionValue"> <summary>For GroupSettingCollectionInstance: the array of group values, each containing children.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceInfo.SimpleSettingCollectionValue"> <summary>For SimpleSettingCollectionInstance: the array of simple values.</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingSimpleValue"> <summary>Represents a simple setting value (string or int).</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingChoiceValue"> <summary>Represents a choice setting value with a selected value and children.</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingGroupValue"> <summary>Represents one group in a GroupSettingCollection, containing child instances.</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingInstanceMapper"> <summary> Maps raw Graph API response objects (PSObject, Hashtable, or Graph SDK types) to <see cref="T:Microsoft365DSC.Intune.SettingInstanceInfo"/> for use in the exporter. The "IsRoot" distinction from the PowerShell code is handled here: root instances store their data in <c>AdditionalProperties</c>, while child instances have the data at the top level. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingInstanceMapper.FromObject(System.Object,System.Boolean)"> <summary> Maps a raw setting instance to <see cref="T:Microsoft365DSC.Intune.SettingInstanceInfo"/>. </summary> <param name="instance">The setting instance (Graph SDK object or Hashtable).</param> <param name="isRoot">True if this is a root-level instance (data in AdditionalProperties).</param> </member> <member name="M:Microsoft365DSC.Intune.SettingInstanceMapper.GetAdditionalProperty(System.Object,System.String)"> <summary> Gets a property from AdditionalProperties on Graph SDK objects. For Graph SDK objects, AdditionalProperties is a non-public IDictionary<string, object> accessed via reflection. For Hashtables, falls back to nested "AdditionalProperties" key. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingCatalogPolicyExporter"> <summary> C# port of Export-IntuneSettingCatalogPolicySettings. Converts Graph API setting response data into flat DSC parameter hashtables. <para><b>Design notes:</b></para> <list type="bullet"> <item>The PowerShell version operates on raw PSObjects/Hashtables and accesses <c>AdditionalProperties</c> directly on Graph SDK objects. This C# version pre-maps all data to <see cref="T:Microsoft365DSC.Intune.SettingInstanceInfo"/> and <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/> at the boundary, then works purely with C# models internally.</item> <item>Parts that require Graph API calls (e.g., fetching setting templates) remain in PowerShell. This class only handles the data transformation.</item> <item>The recursive export logic is preserved exactly as in PowerShell, including the GroupSettingCollection flattening heuristics.</item> </list> </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicyExporter.Export(System.Collections.Generic.IList{System.Object},System.Collections.Hashtable,System.Collections.Generic.IList{System.Object},System.Boolean)"> <summary> Exports settings from Graph API response into a flat hashtable of DSC parameters. Entry point corresponding to the 'Start' parameter set in PowerShell. </summary> <param name="settings"> Array of setting objects from the Graph API, each with SettingInstance and SettingDefinitions. These are the raw Graph SDK objects or Hashtables. </param> <param name="returnHashtable"> Hashtable to store the exported DSC parameters. </param> <param name="allSettingDefinitions"> All setting definitions for the policy (pre-mapped). If empty, definitions are extracted from settings. </param> <param name="containsDeviceAndUserSettings"> True if the policy has separate device_ and user_ prefixed settings. </param> <returns>A hashtable with the exported DSC parameters.</returns> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicyExporter.ExportSettingInstance(Microsoft365DSC.Intune.SettingInstanceInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Hashtable)"> <summary> Recursively exports a setting instance into the return hashtable. Corresponds to the 'Setting' parameter set in the PowerShell version. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicyExporter.ResolveChoiceOptionValue(Microsoft365DSC.Intune.SettingDefinitionInfo,System.String)"> <summary> Resolves a choice option value from its itemId. Mirrors the PowerShell logic: look up optionValue.value, fall back to stripping prefix if it contains '=' or '{}'. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingExportItem"> <summary> A pre-mapped setting export item containing a setting instance and its definitions. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingExportItem.SettingInstance"> <summary>The setting instance (pre-mapped from Graph response).</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingExportItem.SettingDefinitions"> <summary>The setting definitions for this particular setting (pre-mapped).</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder"> <summary> C# port of <c>Get-IntuneSettingCatalogPolicySetting</c> and <c>Get-IntuneSettingCatalogPolicySettingInstanceValue</c>. Builds the Settings Catalog policy body (array of setting instances) from DSC parameters and setting templates. <para><b>Architecture:</b></para> <list type="bullet"> <item>The Graph API call to fetch setting templates remains in PowerShell.</item> <item>This class receives the raw Graph SDK template objects and the DSC parameter hashtable.</item> <item>All template/definition objects are mapped to C# models at the boundary via <see cref="T:Microsoft365DSC.Intune.SettingTemplateMapper"/> and <see cref="T:Microsoft365DSC.Intune.SettingDefinitionMapper"/>, then the builder works purely with C# models.</item> <item>Value resolution delegates to <see cref="M:Microsoft365DSC.Intune.SettingValueResolver.Resolve(System.String,Microsoft365DSC.Intune.SettingDefinitionInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Hashtable)"/> (already ported).</item> <item>CIM instances from DSC parameters are handled via direct <c>CimInstance</c> access.</item> </list> </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.Build(System.Collections.Generic.IList{System.Object},System.Collections.Hashtable,System.Boolean)"> <summary> Builds the Settings Catalog policy body from DSC parameters and setting templates. Entry point called from PowerShell after template fetching. </summary> <param name="settingTemplatesFromGraph"> Raw Graph SDK objects from <c>Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate</c>. </param> <param name="dscParams">The DSC parameters hashtable (Identity/DisplayName/Description already removed).</param> <param name="containsDeviceAndUserSettings">True if the policy has separate device_ and user_ prefixed settings.</param> <returns>Array of Hashtables, each representing a <c>deviceManagementConfigurationSetting</c>.</returns> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.BuildCore(System.Collections.Generic.List{Microsoft365DSC.Intune.SettingTemplateInfo},System.Collections.Hashtable)"> <summary> Core build logic that processes setting templates and produces setting instance Hashtables. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.BuildDeviceAndUserSettings(System.Collections.Generic.List{Microsoft365DSC.Intune.SettingTemplateInfo},System.Collections.Hashtable)"> <summary> Handles policies with separate device and user settings. Splits templates by prefix, extracts CIM-based DSC params for each scope, builds separately. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.BuildSettingInstanceValue(System.Collections.Hashtable,Microsoft365DSC.Intune.SettingDefinitionInfo,Microsoft365DSC.Intune.SettingInstanceTemplateInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.String,System.String,System.String,System.String,System.String,System.Int32)"> <summary> Recursive method that builds a setting instance value subtree. Mirrors <c>Get-IntuneSettingCatalogPolicySettingInstanceValue</c> exactly. Handles 5 setting types: 1. GroupSettingCollectionInstance / SettingGroupCollectionDefinition 2. ChoiceSettingInstance / ChoiceSettingDefinition 3. ChoiceSettingCollectionInstance / ChoiceSettingCollectionDefinition 4. SimpleSettingCollectionInstance / SimpleSettingCollectionDefinition 5. Default (Simple settings: Integer/String) </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.FindChildDefinitions(System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.String)"> <summary> Finds child setting definitions that depend on the given parent setting ID. Checks both <c>dependentOn.parentSettingId</c> and <c>options.dependentOn.parentSettingId</c>. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.ResolveCurrentDscParams(System.Collections.Hashtable,System.String,System.Int32,System.Int32)"> <summary> Resolves the current DSC params for the current iteration of a multi-instance group. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.FindCimInstancesByClassName(System.Collections.Hashtable,System.String)"> <summary> Scans DSCParams values for CimInstance objects matching the expected CIM class name. Matches exact class name or alternate <c>{name}_Intune*</c> pattern. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.ExtractCimPropertiesModifiedOnly(Microsoft.Management.Infrastructure.CimInstance)"> <summary> Extracts properties from a CimInstance, keeping only modified values. Property names are PascalCase. Nested CimInstances are preserved as-is for recursive processing. Mirrors the PS logic: <c>foreach ($property in $instance.CimInstanceProperties) { if ($property.IsValueModified) ... }</c> </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingCatalogPolicySettingBuilder.ExtractCimPropertiesCamelCase(System.Object)"> <summary> Extracts properties from a CimInstance (or PSObject wrapping one) with camelCase property names. Filters only modified values and excludes PSComputerName. Mirrors <c>Convert-M365DSCDRGComplexTypeToHashtable -SingleLevel -ExcludeUnchangedProperties</c>. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingDefinitionOption"> <summary> Represents a single option in a ChoiceSetting definition. Maps from AdditionalProperties.options[] on Graph SettingDefinition objects. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionOption.ItemId"> <summary> The unique identifier for this option (e.g., "device_vendor_msft_policy_config_..._enabled"). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionOption.OptionValue"> <summary> The option value object containing the actual value and its OData type. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionOption.DependentOnParentSettingIds"> <summary> DependentOn entries specific to this option. Maps from AdditionalProperties.options[].dependentOn[].parentSettingId. </summary> </member> <member name="T:Microsoft365DSC.Intune.OptionValue"> <summary> Represents the value portion of a setting definition option. Maps from AdditionalProperties.options[].optionValue. </summary> </member> <member name="P:Microsoft365DSC.Intune.OptionValue.ODataType"> <summary> The OData type of the option value (e.g., "#microsoft.graph.deviceManagementConfigurationStringSettingValue"). </summary> </member> <member name="P:Microsoft365DSC.Intune.OptionValue.Value"> <summary> The actual value of the option (e.g., "0", "1", "enabled"). </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingValueDefinition"> <summary> Represents the valueDefinition portion of a setting definition. Maps from AdditionalProperties.valueDefinition on Graph SettingDefinition objects. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingValueDefinition.ODataType"> <summary> The OData type of the value definition (e.g., "#microsoft.graph.deviceManagementConfigurationStringSettingValueDefinition"). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingValueDefinition.IsSecret"> <summary> Whether this value definition represents a secret value. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingInstanceTemplateInfo"> <summary> Internal representation of a Setting Instance Template from the Microsoft Graph API. These templates define the schema/structure for setting instances in Settings Catalog policies. The PowerShell code accesses these as <c>$settingTemplate.SettingInstanceTemplate</c> objects returned by <c>Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate</c>. Key properties live in <c>AdditionalProperties</c> on Graph SDK objects, requiring reflection to access. This model normalizes the data at the boundary layer. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.SettingDefinitionId"> <summary>The setting definition ID this template targets.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.SettingInstanceTemplateId"> <summary>The unique template ID for this setting instance.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.ODataType"> <summary> The OData type of the instance template (e.g., <c>#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstanceTemplate</c>). Extracted from <c>AdditionalProperties['@odata.type']</c>. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.ValueTemplateODataType"> <summary> The OData type of the value template, already transformed from <c>ValueTemplate</c> to <c>Value</c>. For example: <c>#microsoft.graph.deviceManagementConfigurationChoiceSettingValue</c>. Null if no value template exists (e.g., GroupSettingCollection without explicit value template). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.ValueTemplateId"> <summary> The <c>settingValueTemplateId</c> from the value template. Null if the value template has no ID or if the ID is an array (edge case: ThreatTypeSettings in IntuneAntivirusPolicyLinux). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.Children"> <summary> Child instance templates from the value template's <c>children</c> array. Used for GroupSettingCollection and ChoiceSetting children. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingInstanceTemplateInfo.SettingValueName"> <summary> The computed value name derived from the OData type. For GroupSettingCollectionInstance -> <c>groupSettingCollectionValue</c>. Stored to avoid recomputing during recursive traversal. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingTemplateInfo"> <summary> Wraps a setting template from the Graph API, containing both the instance template and its definitions. Corresponds to the objects returned by <c>Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate</c>. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingTemplateInfo.SettingInstanceTemplate"> <summary>The setting instance template with schema information.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingTemplateInfo.SettingDefinitions"> <summary>The setting definitions associated with this template.</summary> </member> <member name="T:Microsoft365DSC.Intune.SettingInstanceTemplateMapper"> <summary> Maps raw Graph API SettingInstanceTemplate objects to <see cref="T:Microsoft365DSC.Intune.SettingInstanceTemplateInfo"/>. The template objects have a dual nature: <list type="bullet"> <item>Root templates (from <c>$settingTemplate.SettingInstanceTemplate</c>): most data in <c>AdditionalProperties</c></item> <item>Child templates (from value template's <c>children</c>): data at top level (plain dictionaries)</item> </list> </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingInstanceTemplateMapper.FromGraphObject(System.Object,System.Boolean)"> <summary> Maps a Graph SettingInstanceTemplate object to <see cref="T:Microsoft365DSC.Intune.SettingInstanceTemplateInfo"/>. </summary> <param name="template">The raw Graph SDK object, PSObject, or Hashtable.</param> <param name="isRoot"> True for root-level templates where OData type and value templates are in AdditionalProperties. False for child templates where data is at the top level. </param> </member> <member name="T:Microsoft365DSC.Intune.SettingTemplateMapper"> <summary> Maps raw Graph API setting template objects to <see cref="T:Microsoft365DSC.Intune.SettingTemplateInfo"/>. These are the objects returned by <c>Get-MgBetaDeviceManagementConfigurationPolicyTemplateSettingTemplate</c>. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingTemplateMapper.FromGraphObject(System.Object)"> <summary> Maps a single setting template from the Graph API. Extracts <c>SettingInstanceTemplate</c> and <c>SettingDefinitions</c> properties. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingTemplateMapper.FromGraphObjects(System.Collections.Generic.IEnumerable{System.Object})"> <summary> Maps a collection of setting template objects. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingDefinitionInfo"> <summary> Internal representation of a Microsoft Graph DeviceManagementConfigurationSettingDefinition. Avoids a direct dependency on the Microsoft.Graph SDK types. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.DependentOnParentSettingIds"> <summary> Flattened list of unique parentSettingId values from AdditionalProperties.dependentOn[].parentSettingId. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.OptionsDependentOnParentSettingIds"> <summary> Flattened list of unique parentSettingId values from AdditionalProperties.options[].dependentOn[].parentSettingId. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.ODataType"> <summary> The OData type from AdditionalProperties['@odata.type']. Used to determine the setting type (e.g., ChoiceSettingDefinition, GroupSettingCollectionDefinition). </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.MaximumCount"> <summary> Maximum number of instances allowed for this setting (from AdditionalProperties.maximumCount). Used in GroupSettingCollection logic to determine single vs. multi-instance handling. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.ChildIds"> <summary> Child setting definition IDs (from AdditionalProperties.childIds). Used in Export to find child definitions of a GroupSettingCollection. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.Options"> <summary> Options for ChoiceSetting definitions (from AdditionalProperties.options[]). Each option has an itemId and an optionValue with a value and OData type. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDefinitionInfo.ValueDefinition"> <summary> Value definition metadata (from AdditionalProperties.valueDefinition). Contains the OData type and isSecret flag. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingDefinitionMapper"> <summary> Maps Microsoft Graph DeviceManagementConfigurationSettingDefinition objects (passed as PSObject or Hashtable) to the internal <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/> representation. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingDefinitionMapper.FromGraphObject(System.Object)"> <summary> Maps a single Graph SettingDefinition (typically a PSObject or Hashtable) to <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/>. Extracts Id, Name, OffsetUri, and the parentSettingId collections from AdditionalProperties. Uses reflection to access properties, avoiding a compile-time dependency on the Graph SDK or Microsoft.CSharp. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingDefinitionMapper.FromGraphObjects(System.Collections.Generic.IEnumerable{System.Object})"> <summary> Maps a collection of Graph SettingDefinition objects to a list of <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/>. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingDefinitionMapper.ExtractParentSettingIds(System.Collections.Generic.IDictionary{System.String,System.Object},System.String)"> <summary> Extracts parentSettingId values from additionalProperties["dependentOn"][].parentSettingId. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingDefinitionMapper.ExtractOptionsParentSettingIds(System.Collections.Generic.IDictionary{System.String,System.Object})"> <summary> Extracts parentSettingId values from additionalProperties["options"][].dependentOn[].parentSettingId. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingDefinitionMapper.ExtractOptions(System.Collections.Generic.IDictionary{System.String,System.Object})"> <summary> Extracts the options array from AdditionalProperties. Each option has an itemId, optionValue (with @odata.type and value), and dependentOn parent setting IDs. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingsCatalogHelper"> <summary> C# port of the PowerShell module M365DSCIntuneSettingsCatalogUtil. Provides deterministic setting name resolution for Intune Settings Catalog definitions. Each method maps 1:1 to its PowerShell counterpart. Deviations are documented inline. </summary> </member> <member name="F:Microsoft365DSC.Intune.SettingsCatalogHelper.NameSimplificationRules"> <summary> Name simplification rules applied when the setting name was disambiguated (settingsWithSameName.Count > 1). Each entry is (wildcardPrefix, wildcardSuffix, searchString, replacementString). Corresponds to the "switch -wildcard" block in the PowerShell Get-SettingsCatalogSettingName. Optimization note: The PowerShell version uses a switch with -Wildcard patterns that are evaluated sequentially. Here we use a data-driven approach with a list of tuples, which is equivalent but more maintainable - adding a new simplification rule requires only one line instead of a new switch case block. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.GetSettingName(System.Object,System.Collections.Generic.List{System.Object})"> <summary> Port of Get-SettingsCatalogSettingName. Resolves a unique, human-readable setting name for a given setting definition. Accepts raw Graph SDK objects and maps them internally. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.GetSettingName(Microsoft365DSC.Intune.SettingDefinitionInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo})"> <summary> Port of Get-SettingsCatalogSettingName. Resolves a unique, human-readable setting name for a given setting definition. Accepts pre-mapped <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/> objects to avoid repeated reflection. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.GetParentSettingDefinition(Microsoft365DSC.Intune.SettingDefinitionInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo})"> <summary> Port of Get-ParentSettingDefinition. Finds the parent setting by looking up the first unique parentSettingId from either dependentOn or options.dependentOn. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.GetUniqueNameFromMultipleMatches(Microsoft365DSC.Intune.SettingDefinitionInfo,System.String,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo})"> <summary> Port of Get-UniqueSettingDefinitionNameFromMultipleMatches. Iteratively traverses up the OffsetUri to find a unique prefix for the setting name. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.GetSettingDefinitionNameFromOffsetUri(System.String,System.String,System.Int32)"> <summary> Port of Get-SettingDefinitionNameFromOffsetUri. Traverses up the OffsetUri segments to find a distinguishing prefix for the setting name. Optimization note: Instead of PowerShell array slicing ($arr[0..($arr.Length - 1 - $Skip)]) which creates new arrays at each step, we use a List and track the effective length via an integer index. The algorithm is otherwise identical. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingsCatalogHelper.ApplyNameSimplification(System.String)"> <summary> Applies the name simplification rules that correspond to the PowerShell switch -wildcard block. Important behavioral note: The PowerShell switch -Wildcard does NOT break after the first match - all matching cases are executed sequentially. This C# implementation replicates that behavior by iterating through ALL rules and applying every match. This matters for names that could match multiple rules (e.g., a name containing both a prefix pattern and a contains pattern like '~SmartScreen_'). </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingDSCValueResult"> <summary> Result of resolving a DSC parameter value for a setting definition. Corresponds to the hashtable returned by the PowerShell Get-IntuneSettingCatalogPolicySettingDSCValue. </summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDSCValueResult.SettingDefinition"> <summary>The setting definition that was resolved.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDSCValueResult.SettingValueType"> <summary>The resolved OData type for the setting value.</summary> </member> <member name="P:Microsoft365DSC.Intune.SettingDSCValueResult.Value"> <summary> The resolved value. Can be a single string/int or an array (string[]/int[]). For ChoiceSetting, this is the itemId. For Simple settings, it is the raw DSC value. </summary> </member> <member name="T:Microsoft365DSC.Intune.SettingValueResolver"> <summary> C# port of Get-IntuneSettingCatalogPolicySettingDSCValue. Resolves the value for a given setting definition from the DSC parameters hashtable. This function does NOT call any Graph API. It operates purely on the pre-fetched setting definitions and the DSC parameters provided by the caller. <para><b>AdditionalProperties handling:</b></para> The PowerShell version accesses <c>$SettingDefinition.AdditionalProperties.options</c> directly on Graph SDK objects. In this C# port, the setting definitions are pre-mapped to <see cref="T:Microsoft365DSC.Intune.SettingDefinitionInfo"/> which extracts all AdditionalProperties during construction (using reflection for Graph SDK objects). This avoids repeated reflection access at runtime, which would be prohibitively expensive in tight loops. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.Resolve(System.String,Microsoft365DSC.Intune.SettingDefinitionInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Hashtable)"> <summary> Resolves the DSC parameter value for a setting definition. </summary> <param name="settingValueType">The OData type hint for the setting value (e.g., contains "Simple", "ChoiceSetting").</param> <param name="settingDefinition">The pre-mapped setting definition.</param> <param name="allSettingDefinitions">All setting definitions for name resolution.</param> <param name="dscParams">The DSC parameters hashtable (case-insensitive).</param> <returns>A <see cref="T:Microsoft365DSC.Intune.SettingDSCValueResult"/> or null if the key is not found in DSC params.</returns> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.ResolveFromGraph(System.String,System.Object,System.Collections.Generic.List{System.Object},System.Collections.Hashtable)"> <summary> Overload that accepts Graph objects directly (for callers that haven't pre-mapped). Maps the objects internally using <see cref="T:Microsoft365DSC.Intune.SettingDefinitionMapper"/>. This overload incurs the cost of reflection-based mapping. For bulk operations, prefer pre-mapping via <see cref="M:Microsoft365DSC.Intune.SettingDefinitionMapper.FromGraphObjects(System.Collections.Generic.IEnumerable{System.Object})"/> and calling the <see cref="M:Microsoft365DSC.Intune.SettingValueResolver.Resolve(System.String,Microsoft365DSC.Intune.SettingDefinitionInfo,System.Collections.Generic.List{Microsoft365DSC.Intune.SettingDefinitionInfo},System.Collections.Hashtable)"/> overload. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.ResolveSimpleSettingValue(System.String,Microsoft365DSC.Intune.SettingDefinitionInfo,System.Object)"> <summary> Resolves Simple setting values (string, int, or arrays thereof). </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.ResolveChoiceSettingValue(Microsoft365DSC.Intune.SettingDefinitionInfo,System.Object)"> <summary> Resolves a ChoiceSetting value by looking up the itemId from the options. Mirrors the PowerShell logic: 1. Match by optionValue.value == DSC value 2. Fallback: match by itemId == "{definitionId}_{dscValue}" </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.ResolveChoiceSettingCollectionValue(Microsoft365DSC.Intune.SettingDefinitionInfo,System.Object)"> <summary> Resolves a ChoiceSettingCollection value by looking up each value's itemId. </summary> </member> <member name="M:Microsoft365DSC.Intune.SettingValueResolver.FindKeyIgnoreCase(System.Collections.Hashtable,System.String)"> <summary> Case-insensitive key lookup in a Hashtable. </summary> </member> </members> </doc> |