winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }