{"id":17710522,"url":"https://github.com/tragiccode/tragiccode-wsusserver","last_synced_at":"2025-10-04T09:44:27.762Z","repository":{"id":44633198,"uuid":"113454344","full_name":"TraGicCode/tragiccode-wsusserver","owner":"TraGicCode","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-24T14:56:48.000Z","size":141,"stargazers_count":1,"open_issues_count":0,"forks_count":12,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T22:46:04.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TraGicCode.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-07T13:30:07.000Z","updated_at":"2022-08-24T14:23:31.000Z","dependencies_parsed_at":"2022-09-20T04:54:37.095Z","dependency_job_id":null,"html_url":"https://github.com/TraGicCode/tragiccode-wsusserver","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraGicCode%2Ftragiccode-wsusserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraGicCode%2Ftragiccode-wsusserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraGicCode%2Ftragiccode-wsusserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraGicCode%2Ftragiccode-wsusserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TraGicCode","download_url":"https://codeload.github.com/TraGicCode/tragiccode-wsusserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251795389,"owners_count":21645019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-25T07:06:26.343Z","updated_at":"2025-10-04T09:44:22.726Z","avatar_url":"https://github.com/TraGicCode.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **DEPRECATED** - no longer actively maintained\n\nThis module was created a long time ago before there was a good option available in puppet for automating the installation and configuration of a WSUS Server. Since puppet now has support for leveraging Powershell DSC Resources, this module no longer makes sense. Therefore, This project has been deprecated and should no longer be used.  Please work on migrating to the solution provided by puppet https://forge.puppet.com/modules/dsc/updateservicesdsc .  \n\nNServiceBus.NewRelic.Anal\n\n# WSUSServer\n\n[![Puppet Forge](http://img.shields.io/puppetforge/v/tragiccode/wsusserver.svg)](https://forge.puppetlabs.com/tragiccode/wsusserver)\n\n#### Table of Contents\n\n1. [Description](#description)\n1. [Setup - The basics of getting started with wsusserver](#setup)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with wsusserver](#beginning-with-wsusserver)\n1. [Usage - Configuration options and additional functionality](#usage)\n    * [Host binaries at microsoft](#host-binaries-at-microsoft)\n    * [Configuring Server-Side Targeting](#configuring-server-side-targeting)\n    * [Configuring Client-Side Targeting](#configuring-client-side-targeting)\n    * [Customizing the Synchronization Schedule](#customizing-the-synchronization-schedule)\n    * [Creating computer target groups](#creating-computer-target-groups)\n    * [Removing computer target groups](#removing-computer-target-groups)\n    * [Creating automatic approval rules](#creating-automatic-approval-rules)\n    * [Removing automatic approval rules](#removing-automatic-approval-rules)\n1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n1. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThe wsusserver module installs, configures, and manages Windows Server Update Services (WSUS) on Windows systems.\n\nWindows Server Update Services (WSUS) allows for administrators to manage the deployment of updates for products (SQL Server, Window Server 2016..etc) released by Microsoft.\n\n## Setup\n\n### Setup Requirements\n\nThe wsusserver module requires the following:\n\n* Puppet Agent 4.7.1 or later.\n* Windows Server 2016.\n\n*Note - The module also works on Windows Server 2012 \u0026 2012 R2 with WMF(PowerShell) 5.1 installed, but only limited testing has been performed.*\n\n### Beginning with wsusserver\n\nTo get started with the wsusserver module simply include the following in your manifest:\n\n```puppet\nclass { 'wsusserver':\n    package_ensure =\u003e 'present',\n    update_languages                   =\u003e ['en'],\n    products                           =\u003e [\n      'Active Directory Rights Management Services Client 2.0',\n      'ASP.NET Web Frameworks',\n      'Microsoft SQL Server 2012',\n      'SQL Server Feature Pack',\n      'SQL Server 2012 Product Updates for Setup',\n      'Windows Server 2016',\n    ],\n    update_classifications             =\u003e [\n        'Critical Updates',\n        'Security Updates',\n        'Updates',\n    ],\n}\n```\n\nThis example installs, configures, and manages the wsusserver service.  After running this you should be able to access the WSUS Console to begin you enterprise management of updates.\n\nA more advanced configuration including most attributes available for the base/main class:\n\n```puppet\nclass { 'wsusserver':\n    package_ensure                     =\u003e 'present',\n    include_management_console         =\u003e true,\n    service_manage                     =\u003e true,\n    service_ensure                     =\u003e 'running',\n    service_enable                     =\u003e true,\n    wsus_directory                     =\u003e 'C:\\\\WSUS',\n    join_improvement_program           =\u003e false,\n    sync_from_microsoft_update         =\u003e true,\n    update_languages                   =\u003e ['en'],\n    products                           =\u003e [\n      'Active Directory Rights Management Services Client 2.0',\n      'ASP.NET Web Frameworks',\n      'Microsoft SQL Server 2012',\n      'SQL Server Feature Pack',\n      'SQL Server 2012 Product Updates for Setup',\n      'Windows Server 2016',\n    ],\n    product_families                   =\u003e [\n      'SQL Server',\n      'System Center',\n    ],\n    update_classifications             =\u003e [\n        'Critical Updates',\n        'Security Updates',\n        'Updates',\n    ],\n    targeting_mode                     =\u003e 'Client',\n    host_binaries_on_microsoft_update  =\u003e false,\n    synchronize_automatically          =\u003e true,\n    synchronize_time_of_day            =\u003e '03:00:00', # 3AM ( UTC ) 24H Clock\n    number_of_synchronizations_per_day =\u003e 1,\n}\n```\n\nThe above is just an example of the flexibility you have with this module.  You will generally never need to specify every or even so many parameters as shown.\n\n## Usage\n\n### Host binaries at microsoft\n\nUpdates can be downloaded locally on the wsusserver and machines can pull approved and appropriate updates for installation straight from the wsusserver.  Since updates from microsoft are very large in size this requires a good amount of disk space to be available.  One option is to use the wsus server for approval and checking of updates and inform the clients they should pull updates directly from microsoft's updates servers relieving your server of the load and disk space.  This can be configured like so.\n\n```puppet\nclass { 'wsusserver':\n    package_ensure                     =\u003e 'present',\n    host_binaries_on_microsoft_update  =\u003e true,\n}\n```\n\n**NOTE: In order to use this option each machine needs someway to get out to the public internet to pull their updates directly from microsoft.**\n\n### Configuring Server-Side Targeting\n\nUpdates can be targeted in 2 ways.  Client-side or Server-side.  Server-side targeting indicates some administrator must move computers in the appropriate computer groups in order for them to get their desired updates.  By default all computers that need to be manually classified will be found in the UnAssigned Computers group.  Server-side target is rarely used since it requires manual intervention.  While not recommended this can be done like so:\n\n```puppet\nclass { 'wsusserver':\n    package_ensure =\u003e 'present',\n    targeting_mode =\u003e 'Server',\n}\n```\n\n### Configuring Client-Side Targeting\n\nTypically Client-Side targeting is used which is why it's ths default in this module if not specified.  Below is an example of setting client-side targeting explicitly.\n\n```puppet\nclass { 'wsusserver':\n    package_ensure =\u003e 'present',\n    targeting_mode =\u003e 'Client',\n}\n```\n\nThis is typically done through 1 of 2 ways.\n\n1. Group-Policy\n1. Registry\n\nIt's recommended to avoid group policy all together and simply utilize the [puppetlabs/wsus_client](https://github.com/puppetlabs/puppetlabs-wsus_client) module ( which is a supported module by puppetlabs ) which handles configuring clients for client-side targeting.\n\n### Customizing the Synchronization Schedule\n\nThe process of wsus server checking for new categories, products, and updates is called synchronization. While this can be done manually, it's typically done automatically on a configured scheduled.  Below is an example of how to configure automatic synchronization every day at around 3:00AM UTC ( which is the default configured by this module ).\n\n```puppet\nclass { 'wsusserver':\n    package_ensure                     =\u003e 'present',\n    synchronize_automatically          =\u003e true,\n    synchronize_time_of_day            =\u003e '03:00:00', # 3AM ( UTC ) 24H Clock\n    number_of_synchronizations_per_day =\u003e 1,\n}\n```\n\nIf you want four synchronizations a day starting at 3:00AM UTC your schedule would look like below and be configured as such.\n\nNumber | Time To Sync\n-------|-------------\n1      | 3:00AM UTC\n2      | 9:00AM UTC\n3      | 3:00PM UTC\n4      | 9:00PM UTC\n\n```puppet\nclass { 'wsusserver':\n    package_ensure                     =\u003e 'present',\n    synchronize_automatically          =\u003e true,\n    synchronize_time_of_day            =\u003e '03:00:00', # 3AM ( UTC ) 24H Clock\n    number_of_synchronizations_per_day =\u003e 4,\n}\n```\n\n**NOTE: The synchronization time of day has a random offset up to 30 minutes from the what you specify.  This is done automatically by microsoft in order to prevent a stampeeding herd on their servers.**\n\n### Customizing Languages and Products\n\nYou typically don't want WSUS to manage updates in all languages or even for all products, there is just too many and this would require a huge server just to pull this load.  Therefore, you typically specify a subset of the full list of languages and products you would like wsus server to manage updates for.  Below is an example of this.\n\n```puppet\nclass { 'wsusserver':\n    package_ensure                     =\u003e 'present',\n    update_languages                   =\u003e ['en'],\n    products                           =\u003e [\n      'Active Directory Rights Management Services Client 2.0',\n      'ASP.NET Web Frameworks',\n      'Microsoft SQL Server 2012',\n      'SQL Server Feature Pack',\n      'SQL Server 2012 Product Updates for Setup',\n      'Windows Server 2016',\n    ],\n    product_families                   =\u003e [\n      'SQL Server',\n      'System Center',\n    ],\n    update_classifications             =\u003e [\n        'Critical Updates',\n        'Security Updates',\n        'Updates',\n    ],\n}\n```\n\n**NOTE: The list of products, classifications, and languages for microsoft is constantly changing and currently i'm unable to find an updated list of where these can be found.  The best solution at the moment is to open wsusserver, Go to Options =\u003e Products and Classifications and picking a name of the product based on the tree view shown.**\n\n### Configuring email notifications\n\nTo configure sync and/or status report email notifications the `smtp_hostname` and `smtp_sender_emailaddress` must be configured\n\n```puppet\nclass { 'wsusserver':\n    ....\n    # Update synchronized email notification settings\n    send_sync_notification         =\u003e true,  \n    sync_notification_recipients   =\u003e ['notifications@mydomain.com', 'another@mydomain.com'],\n\n    #Status report email notification settings\n    send_status_notification       =\u003e true,  \n    status_notification_recipients =\u003e ['notifications@mydomain.com'],\n    notification_frequency         =\u003e 'Weekly',   # 'Weekly' or 'Daily'\n    notification_time_of_day       =\u003e '03:00:00', # 3AM ( UTC ) 24H Clock\n\n    #SMTP Server Settings\n    smtp_hostname                  =\u003e 'smtp.mydomain.com',\n    smtp_sender_displayname        =\u003e 'WSUS Server Notifications',\n    smtp_sender_emailaddress       =\u003e 'wsusserver@mydomain.com',\n    ##Optional settings\n    smtp_port                      =\u003e 25,\n    ##Not yet implemented settings\n    smtp_requires_authentication   =\u003e false,\n    smtp_username                  =\u003e '',\n    smtp_password                  =\u003e '',\n  }\n```\n\n### Creating computer target groups\n\nTypically you group servers into groups so that you can role out changes in a controlled fashion or in a certain way.  Below shows how to create computer target groups in order to do this.\n\n```puppet\nwsusserver_computer_target_group { ['Development', 'Staging', 'Production']:\n    ensure =\u003e 'present',\n}\n```\n\n### Removing computer target groups\n\nRemoving is just as simple as creating is.\n\n```puppet\nwsusserver_computer_target_group { ['Development', 'Staging', 'Production']:\n    ensure =\u003e 'absent',\n}\n```\n\n**NOTE: By Default, wsuserver has 2 built-in computer groups created.  They are named 'All Computers' and 'Unassigned Computers'.  The wsusserver base/main class declares these for you and therefore you don't need to create these in order to have these resources show up in your puppet reports as being present.  Also because these built-in groups cannot be deleted, since wsusserver will not allow it, if you plan on doing any sort of purging of unmanaged computer target groups just make sure the main class is in the catalog so the purging will not fail trying to delete the above 2 built-in computer target groups.**\n\n### Removing automatic approval rules\n\nWhen you initially install wsus ( and possibly in the future ) you might want to remove certain approval rules.  Below shows how to remove the built in approval rule.\n\n```puppet\nwsusserver::approvalrule { 'Default Automatic Approval Rule':\n    ensure =\u003e 'absent'\n}\n```\n\n### Creating automatic approval rules\n\nApproving updates that you will always want/need can be a waste of time.  Automatic approval rules can be created in order to help remove this burden.  Below we automatically approval all Windows Server 2016 Security and Critical updates that apply to our servers in our production environment.\n\n```puppet\nwsusserver::approvalrule { 'Automatic Approval for Security and Critical Updates Rule':\n    ensure          =\u003e 'present',\n    enabled         =\u003e true,\n    classifications =\u003e ['Security Updates', 'Critical Updates'],\n    products        =\u003e ['Windows Server 2016'],\n    computer_groups =\u003e ['Production'],\n}\n```\n\n### Removing automatic approval rules\n\nWhen you initially install wsus ( and possibly in the future ) you might want to remove certain approval rules.  Below shows how to remove the built in approval rule.\n\n```puppet\nwsusserver::approvalrule { 'Default Automatic Approval Rule':\n    ensure =\u003e 'absent'\n  }\n```\n\n## Reference\n\n### Classes\n\nParameters are optional unless otherwise noted.\n\n### `wsusserver`\n\nInstalls Windows Server Update Services (WSUS) and manages the configuration, service, and management tools.\n\n#### `package_ensure`\n\nSpecifies whether the Windows Server Update Services (WSUS) role should be present. Valid options: 'present' and 'absent'.\n\nDefault: 'present'.\n\n#### `include_management_console`\n\nSpecified if the management console should be installed.  This is the GUI used to manage wsus.\n\nDefault: true.\n\n#### `service_manage`\n\nSpecifies whether or not to manage the desired state of the WSUS windows service.\n\nDefault: true.\n\n#### `service_ensure`\n\nSpecifies whether the WSUS windows service should be running or stopped. Valid options: 'stopped' and 'running'.\n\nDefault: 'running'.\n\n#### `service_enable`\n\nWhether or not the WSUS windows service should be enabled at boot, disabled, or must be manually started. Valid options: true, false, and 'manual'\n\nDefault: true.\n\n#### `wsus_directory`\n\nSpecifies the absolute path on the target system to store downloaded updates.\n\nDefault: 'C:\\WSUS'.\n\n#### `join_improvement_program`\n\nAllows microsoft to collect statistics about your system configuration, events, and configuration of wsus to help microsoft improve the quality, reliability and performance of the product. Valid options: true, false\n\nDefault: true.\n\n#### `sync_from_microsoft_update`\n\nSpecifices that this server should perform synchronizations against microsoft upate servers.  This assumes this wsus server is an upstream wsus server in your environment. Valid options: true, false\n\nDefault: true.\n\n#### `upstream_wsus_server_name`\n\nThe name of the upstream wsus server in your environment in which to synchronize this wsus server against.\n\nDefault: undef.\n\n#### `upstream_wsus_server_port`\n\nThe port of the upstream wsus server in your environment in which to synchronize this wsus server against.\n\nDefault: 80.\n\n#### `upstream_wsus_server_use_ssl`\n\nSpecifies if the upstream wsus server in your environment in which to synchronize this wsus server against is using SSL.  Valid options: true, false\n\nDefault: false.\n\n#### `update_languages`\n\n*Required.*\n\nThe languages in which you want updates for.\n\n**NOTE: This is required because this is specific to your organization's requirements.**\n\n#### `products`\n\n*Must supply either products or product_families*\n\nThe specific products (e.g. Windows Server 2008 R2, Windows Server 2016), that you want WSUS to sync updates for.\n\nProduct families contain one or many products and are shown as groups in the product selection dialgue of the WSUS UI. Products are the individual products in these lists.\n\nSpecify ```'*'``` (i.e. a single string, rather than an array of strings) to synchronize all products in the WSUS inventory.\n\nOne way to get a complete list of products and product families is to run the following PowerShell command on a WSUS server:\n\n```powershell\n(Get-WsusServer).GetUpdateCategories() | Sort-Object -Property Title, Type | Format-Table -Property Title, Type\n```\nBoth products and product_families may be supplied, as long as products does not equal '*' (all products).\n\n**NOTE: products or product_families are required because this is specific to your organization's requirements.**\n\n#### `product_families`\n\n*Must supply either products or product_families*\n\nThe specific products families (e.g. Windows, SQL Server), that you want WSUS to sync updates for.\n\nProduct families contain one or many products and are shown as groups in the product selection dialgue of the WSUS UI. Products are the individual products in these lists.\n\nYou cannot provide this parameter if products is set to ```'*'``` (all products).\n\nOne way to get a complete list of products and product families is to run the following PowerShell command on a WSUS server:\n\n```powershell\n(Get-WsusServer).GetUpdateCategories() | Sort-Object -Property Title, Type | Format-Table -Property Title, Type\n```\n\nBoth products and product_families may be supplied, as long as products does not equal '*' (all products).\n\n**NOTE: products or product_families are required because this is specific to your organization's requirements.**\n\n#### `update_classifications`\n\n*Required.*\n\nThe classifications in which you want updates for.\n\n**NOTE: This is required because this is specific to your organization's requirements.**\n\n#### `targeting_mode`\n\nSpecifies wether or not server-side or client-side targeting is to be utilized. Valid options: 'Server' and 'Client'.\n\nDefault: 'Client'.\n\n#### `host_binaries_on_microsoft_update`\n\nWhether or not computers should download updates directly from Microsoft. Valid options: true, false\n\nDefault: true.\n\n#### `synchronize_automatically`\n\nWhether or not to perform synchronizations automatically. Valid options: true, false\n\nDefault: true.\n\n#### `synchronize_time_of_day`\n\nAt what time synchronizations should happen in UTC time.\n\nDefault: 03:00:00. (Midnight UTC)\n\n#### `number_of_synchronizations_per_day`\n\nThe number of times to perform synchronizations spreadout throughout the day starting at the [synchronize_time_of_day](#synchronize_time_of_day) parameter.\n\nDefault: 1.\n\n#### `trigger_full_synchronization_post_install`\n\nSpecifies that an intial synchronization of wsus should happen immediately after installation. Valid options: true, false\n\nDefault: true.\n\n**NOTE: Be aware that this step could take hours to finish!  This will not cause any issues with puppet but it might look like it's stalled.  It's not so just wait patiently!  If you are testing this module out for the first time you probably want to set this value to false.**\n\n**NOTE: The time it takes to finish the initial synchronization depends on the languages, products, and update classifications that were selected.  It also depends on your internete connection as well.**\n\n**NOTE: When you perform post-installation configuration tasks in the wsus wizard, this is the part at the end that has a check box asking if you want to begin initial synchronization.**\n\n#### `send_sync_notification`\n\nSpecifies that notifications should be sent when new updates are synchronized. Valid options: true, false\n\nDefault: false\n\n**NOTE: if set to `true` you must also specify sync_notification_recipient(s) and smtp server details**\n\n#### `sync_notification_recipients`\n\nSpecifies the recipients of sync notification emails. Accepts an arrays of addresses, e.g. ['notifications@mydomain.com', 'another@mydomain.com']\n\nDefault: ['']\n\n#### `send_status_notification`\n\nSpecifies that status reports. should be sent. Valid options: true, false\n\nDefault: false\n\n**NOTE: if set to `true` you must also specify status_notification_recipient(s) and smtp server details**\n\n#### `status_notification_recipients`\n\nSpecifies the recipients of status notification (reports) emails. Accepts an arrays of addresses, e.g. ['notifications@mydomain.com', 'another@mydomain.com']\n\nDefault: ['']\n\n#### `notification_frequency`\n\nSpecifies frequency of status report notifications. Valid options: Weekly, Daily (note case)\n\nDefault: Weekly\n\n#### `notification_time_of_day`\n\nSpecifies time of day of status report notifications. In UTC time.\n\nDefault: '03:00:00', # 3AM ( UTC ) 24H Clock\n\n#### `smtp_hostname`\n\nSpecifies the hostname of the smtp server. Example: 'smtp.mydomain.com'\n\nDefault: ''\n**Required if notifications enabled**\n\n#### `smtp_sender_displayname`\n\nSpecifies the display name of the sender of the notification email. Valid options: text string\n\nDefault: ''\n\n#### `smtp_sender_emailaddress`\n\nSpecifies the email address of the sender of the notification email. Valid options: Email Address. Example: 'wsusserver@mydomain.com'\n**Required if notifications enabled**\n\n#### `smtp_port`\n\nSpecifies the port the smtp server accepts SMTP messages on. Valid options: integer number\n\nDefault: 25\n\n#### `smtp_requires_authentication`\n\n***Functionality not yet implemented***\n\nSpecifies that the SMTP server requires anthenticiation to send messages. Valid options: true, false\n\nDefault: false\n\n#### `smtp_username`\n\n***Functionality not yet implemented***\n\nSpecifies username to use for SMTP server authentication\n\nDefault: ''\n\n**Required if `smtp_requires_authentication` is true**\n\n#### `smtp_password`\n\n***Functionality not yet implemented***\n\nSpecifies password to use for SMTP server authentication\n\nDefault: ''\n\n**Required if `smtp_requires_authentication` is true**\n\n### Types\n\nParameters are optional unless otherwise noted.\n\n#### `wsusserver_computer_target_group`\n\nInstalls, configures, and manages WSUS computer target groups.\n\n##### `name`\n\nSpecifies a computer target group to manage. Valid options: a string containing the name of your computer target group.\n\nDefault: the title of your declared resource.\n\n##### `ensure`\n\nSpecifies whether the computer target group should be present. Valid options: 'present' and 'absent'.\n\nDefault: 'present'.\n\n### Defined Types\n\nParameters are optional unless otherwise noted.\n\n#### `wsusserver::approvalrule`\n\nInstalls, configures, and manages WSUS Approval Rules.\n\n##### `rule_name`\n\nSpecifies a approval rule to manage. Valid options: a string containing the name of your approval rule.\n\nDefault: the title of your declared resource.\n\n##### `ensure`\n\nSpecifies whether the approval rule should be present. Valid options: 'present' and 'absent'.\n\nDefault: 'present'.\n\n##### `enabled`\n\nSpecifies whether the approval rule should be enabled. Valid options: true and false.\n\nDefault: true.\n\n##### `computer_groups`\n\n*Required.*\n\nSpecifies which computer groups this approval rule should apply to.\n\n##### `products`\n\n*Required.*\n\nSpecifies which products this approval rule should apply to.\n\n##### `classifications`\n\n*Required.*\n\nSpecifies which classifications this approval rule should apply to.\n\n## Development\n\n## Contributing\n\n1. Fork it ( \u003chttps://github.com/tragiccode/tragiccode-wsusserver/fork\u003e )\n1. Create your feature branch (`git checkout -b my-new-feature`)\n1. Commit your changes (`git commit -am 'Add some feature'`)\n1. Push to the branch (`git push origin my-new-feature`)\n1. Create a new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftragiccode%2Ftragiccode-wsusserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftragiccode%2Ftragiccode-wsusserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftragiccode%2Ftragiccode-wsusserver/lists"}