IDSCv3.cs (3671B)
1 // ----------------------------------------------------------------------------- 2 // <copyright file="IDSCv3.cs" company="Microsoft Corporation"> 3 // Copyright (c) Microsoft Corporation. Licensed under the MIT License. 4 // </copyright> 5 // ----------------------------------------------------------------------------- 6 7 namespace Microsoft.Management.Configuration.Processor.DSCv3.Model 8 { 9 using System.Collections.Generic; 10 using Microsoft.Management.Configuration.Processor.DSCv3.Helpers; 11 using Microsoft.Management.Configuration.Processor.Helpers; 12 13 /// <summary> 14 /// Interface for interacting with DSC v3. 15 /// </summary> 16 internal interface IDSCv3 17 { 18 /// <summary> 19 /// Creates the appropriate instance of the DSCv3 interface for the given executable. 20 /// </summary> 21 /// <param name="processorSettings">The processor settings.</param> 22 /// <returns>An object that properly interacts with the specific version of DSC v3.</returns> 23 public static IDSCv3 Create(ProcessorSettings processorSettings) 24 { 25 // Expand as needed to detect the version of dsc.exe and/or its schemas in use. 26 return new Schema_2024_04.DSCv3(processorSettings); 27 } 28 29 /// <summary> 30 /// Gets a single resource by its type name. 31 /// </summary> 32 /// <param name="resourceType">The type name of the resource.</param> 33 /// <param name="runSettings">The processor run settings.</param> 34 /// <returns>A single resource item.</returns> 35 public IResourceListItem? GetResourceByType(string resourceType, ProcessorRunSettings? runSettings); 36 37 /// <summary> 38 /// Gets all resource items. 39 /// </summary> 40 /// <param name="runSettings">The processor run settings.</param> 41 /// <returns>A list of resource items.</returns> 42 public List<IResourceListItem> GetAllResources(ProcessorRunSettings? runSettings); 43 44 /// <summary> 45 /// Tests a configuration unit. 46 /// </summary> 47 /// <param name="unitInternal">The unit to test.</param> 48 /// <param name="runSettings">The processor run settings.</param> 49 /// <returns>A test result.</returns> 50 public IResourceTestItem TestResource(ConfigurationUnitInternal unitInternal, ProcessorRunSettings? runSettings); 51 52 /// <summary> 53 /// Gets a configuration unit settings. 54 /// </summary> 55 /// <param name="unitInternal">The unit to get.</param> 56 /// <param name="runSettings">The processor run settings.</param> 57 /// <returns>A get result.</returns> 58 public IResourceGetItem GetResourceSettings(ConfigurationUnitInternal unitInternal, ProcessorRunSettings? runSettings); 59 60 /// <summary> 61 /// Sets a configuration unit settings. 62 /// </summary> 63 /// <param name="unitInternal">The unit to set.</param> 64 /// <param name="runSettings">The processor run settings.</param> 65 /// <returns>A set result.</returns> 66 public IResourceSetItem SetResourceSettings(ConfigurationUnitInternal unitInternal, ProcessorRunSettings? runSettings); 67 68 /// <summary> 69 /// Exports configuration unit. 70 /// </summary> 71 /// <param name="unitInternal">The unit to export.</param> 72 /// <param name="runSettings">The processor run settings.</param> 73 /// <returns>A list of export results.</returns> 74 public IList<IResourceExportItem> ExportResource(ConfigurationUnitInternal unitInternal, ProcessorRunSettings? runSettings); 75 } 76 }