Skip to content

Commit c945c2a

Browse files
jaypatrickwarp-agentCopilot
authored
Add PowerShell API Client for AdGuard DNS (#177)
* Add PowerShell API client generator for AdGuard DNS - Generated PowerShell module (PSAdGuardDNS) using OpenAPI Generator - Includes comprehensive cmdlets for all AdGuard DNS API endpoints - Added generation script with Docker and npm support - Created detailed usage guide with examples - Module includes 9 API classes and 60+ model classes Co-Authored-By: Warp <agent@warp.dev> * Initial plan (#178) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --------- Co-authored-by: Warp <agent@warp.dev> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
1 parent 3c134a6 commit c945c2a

274 files changed

Lines changed: 21714 additions & 369 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# OpenAPI Generator Ignore
2+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
3+
4+
# Use this file to prevent files from being overwritten by the generator.
5+
# The patterns follow closely to .gitignore or .dockerignore.
6+
7+
# As an example, the C# client generator defines ApiClient.cs.
8+
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
9+
#ApiClient.cs
10+
11+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
12+
#foo/*/qux
13+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14+
15+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16+
#foo/**/qux
17+
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18+
19+
# You can also negate patterns with an exclamation (!).
20+
# For example, you can ignore all files in a docs folder with the file extension .md:
21+
#docs/*.md
22+
# Then explicitly reverse the ignore rule for a single file:
23+
#!docs/README.md
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
.openapi-generator-ignore
2+
Build.ps1
3+
README.md
4+
appveyor.yml
5+
docs/AccessTokenErrorResponse.md
6+
docs/AccessTokenResponse.md
7+
docs/AccountApi.md
8+
docs/AccountLimits.md
9+
docs/AuthenticationApi.md
10+
docs/BlockedWebService.md
11+
docs/BlockedWebServiceUpdate.md
12+
docs/BlockingMode.md
13+
docs/BlockingModeSettings.md
14+
docs/BlockingModeSettingsUpdate.md
15+
docs/CategoryQueriesStats.md
16+
docs/CategoryQueriesStatsList.md
17+
docs/CategoryType.md
18+
docs/CompanyDetailedQueriesStats.md
19+
docs/CompanyDetailedQueriesStatsList.md
20+
docs/CompanyQueriesStats.md
21+
docs/CompanyQueriesStatsList.md
22+
docs/ConnectDeviceType.md
23+
docs/CountryQueriesStats.md
24+
docs/CountryQueriesStatsList.md
25+
docs/DNSAddresses.md
26+
docs/DNSServer.md
27+
docs/DNSServerAccessSettings.md
28+
docs/DNSServerAccessSettingsUpdate.md
29+
docs/DNSServerCreate.md
30+
docs/DNSServerSettings.md
31+
docs/DNSServerSettingsUpdate.md
32+
docs/DNSServerUpdate.md
33+
docs/DNSServersApi.md
34+
docs/DayOfWeek.md
35+
docs/DedicatedIPAddressesApi.md
36+
docs/DedicatedIPv4Address.md
37+
docs/DedicatedIps.md
38+
docs/Device.md
39+
docs/DeviceCreate.md
40+
docs/DeviceQueriesStats.md
41+
docs/DeviceQueriesStatsList.md
42+
docs/DeviceSettings.md
43+
docs/DeviceSettingsUpdate.md
44+
docs/DeviceUpdate.md
45+
docs/DevicesApi.md
46+
docs/DnsProtoResponseType.md
47+
docs/DnsProtoType.md
48+
docs/DomainQueriesStats.md
49+
docs/DomainQueriesStatsList.md
50+
docs/ErrorCodes.md
51+
docs/ErrorResponse.md
52+
docs/FieldError.md
53+
docs/FilterList.md
54+
docs/FilterListCategory.md
55+
docs/FilterListCategoryType.md
56+
docs/FilterListItem.md
57+
docs/FilterListItemUpdate.md
58+
docs/FilterListsApi.md
59+
docs/FilterListsSettings.md
60+
docs/FilterListsSettingsUpdate.md
61+
docs/FilteringActionSource.md
62+
docs/FilteringActionStatus.md
63+
docs/FilteringInfo.md
64+
docs/IpAddress.md
65+
docs/IpType.md
66+
docs/Limit.md
67+
docs/LinkDedicatedIPv4.md
68+
docs/Page.md
69+
docs/ParentalControlSettings.md
70+
docs/ParentalControlSettingsUpdate.md
71+
docs/QueriesStats.md
72+
docs/QueryLogApi.md
73+
docs/QueryLogItem.md
74+
docs/QueryLogResponse.md
75+
docs/RegularDnsProtoType.md
76+
docs/SafebrowsingSettings.md
77+
docs/SafebrowsingSettingsUpdate.md
78+
docs/ScheduleDay.md
79+
docs/ScheduleDayUpdate.md
80+
docs/ScheduleTime.md
81+
docs/ScheduleWeek.md
82+
docs/ScheduleWeekUpdate.md
83+
docs/SecureDnsProtoType.md
84+
docs/StatisticsApi.md
85+
docs/TimeQueriesStats.md
86+
docs/TimeQueriesStatsList.md
87+
docs/UserRulesSettings.md
88+
docs/UserRulesSettingsUpdate.md
89+
docs/WebService.md
90+
docs/WebServicesApi.md
91+
src/PSAdGuardDNS/Api/AccountApi.ps1
92+
src/PSAdGuardDNS/Api/AuthenticationApi.ps1
93+
src/PSAdGuardDNS/Api/DNSServersApi.ps1
94+
src/PSAdGuardDNS/Api/DedicatedIPAddressesApi.ps1
95+
src/PSAdGuardDNS/Api/DevicesApi.ps1
96+
src/PSAdGuardDNS/Api/FilterListsApi.ps1
97+
src/PSAdGuardDNS/Api/QueryLogApi.ps1
98+
src/PSAdGuardDNS/Api/StatisticsApi.ps1
99+
src/PSAdGuardDNS/Api/WebServicesApi.ps1
100+
src/PSAdGuardDNS/Client/Configuration.ps1
101+
src/PSAdGuardDNS/Model/AccessTokenErrorResponse.ps1
102+
src/PSAdGuardDNS/Model/AccessTokenResponse.ps1
103+
src/PSAdGuardDNS/Model/AccountLimits.ps1
104+
src/PSAdGuardDNS/Model/BlockedWebService.ps1
105+
src/PSAdGuardDNS/Model/BlockedWebServiceUpdate.ps1
106+
src/PSAdGuardDNS/Model/BlockingMode.ps1
107+
src/PSAdGuardDNS/Model/BlockingModeSettings.ps1
108+
src/PSAdGuardDNS/Model/BlockingModeSettingsUpdate.ps1
109+
src/PSAdGuardDNS/Model/CategoryQueriesStats.ps1
110+
src/PSAdGuardDNS/Model/CategoryQueriesStatsList.ps1
111+
src/PSAdGuardDNS/Model/CategoryType.ps1
112+
src/PSAdGuardDNS/Model/CompanyDetailedQueriesStats.ps1
113+
src/PSAdGuardDNS/Model/CompanyDetailedQueriesStatsList.ps1
114+
src/PSAdGuardDNS/Model/CompanyQueriesStats.ps1
115+
src/PSAdGuardDNS/Model/CompanyQueriesStatsList.ps1
116+
src/PSAdGuardDNS/Model/ConnectDeviceType.ps1
117+
src/PSAdGuardDNS/Model/CountryQueriesStats.ps1
118+
src/PSAdGuardDNS/Model/CountryQueriesStatsList.ps1
119+
src/PSAdGuardDNS/Model/DNSAddresses.ps1
120+
src/PSAdGuardDNS/Model/DNSServer.ps1
121+
src/PSAdGuardDNS/Model/DNSServerAccessSettings.ps1
122+
src/PSAdGuardDNS/Model/DNSServerAccessSettingsUpdate.ps1
123+
src/PSAdGuardDNS/Model/DNSServerCreate.ps1
124+
src/PSAdGuardDNS/Model/DNSServerSettings.ps1
125+
src/PSAdGuardDNS/Model/DNSServerSettingsUpdate.ps1
126+
src/PSAdGuardDNS/Model/DNSServerUpdate.ps1
127+
src/PSAdGuardDNS/Model/DayOfWeek.ps1
128+
src/PSAdGuardDNS/Model/DedicatedIPv4Address.ps1
129+
src/PSAdGuardDNS/Model/DedicatedIps.ps1
130+
src/PSAdGuardDNS/Model/Device.ps1
131+
src/PSAdGuardDNS/Model/DeviceCreate.ps1
132+
src/PSAdGuardDNS/Model/DeviceQueriesStats.ps1
133+
src/PSAdGuardDNS/Model/DeviceQueriesStatsList.ps1
134+
src/PSAdGuardDNS/Model/DeviceSettings.ps1
135+
src/PSAdGuardDNS/Model/DeviceSettingsUpdate.ps1
136+
src/PSAdGuardDNS/Model/DeviceUpdate.ps1
137+
src/PSAdGuardDNS/Model/DnsProtoResponseType.ps1
138+
src/PSAdGuardDNS/Model/DnsProtoType.ps1
139+
src/PSAdGuardDNS/Model/DomainQueriesStats.ps1
140+
src/PSAdGuardDNS/Model/DomainQueriesStatsList.ps1
141+
src/PSAdGuardDNS/Model/ErrorCodes.ps1
142+
src/PSAdGuardDNS/Model/ErrorResponse.ps1
143+
src/PSAdGuardDNS/Model/FieldError.ps1
144+
src/PSAdGuardDNS/Model/FilterList.ps1
145+
src/PSAdGuardDNS/Model/FilterListCategory.ps1
146+
src/PSAdGuardDNS/Model/FilterListCategoryType.ps1
147+
src/PSAdGuardDNS/Model/FilterListItem.ps1
148+
src/PSAdGuardDNS/Model/FilterListItemUpdate.ps1
149+
src/PSAdGuardDNS/Model/FilterListsSettings.ps1
150+
src/PSAdGuardDNS/Model/FilterListsSettingsUpdate.ps1
151+
src/PSAdGuardDNS/Model/FilteringActionSource.ps1
152+
src/PSAdGuardDNS/Model/FilteringActionStatus.ps1
153+
src/PSAdGuardDNS/Model/FilteringInfo.ps1
154+
src/PSAdGuardDNS/Model/IpAddress.ps1
155+
src/PSAdGuardDNS/Model/IpType.ps1
156+
src/PSAdGuardDNS/Model/Limit.ps1
157+
src/PSAdGuardDNS/Model/LinkDedicatedIPv4.ps1
158+
src/PSAdGuardDNS/Model/Page.ps1
159+
src/PSAdGuardDNS/Model/ParentalControlSettings.ps1
160+
src/PSAdGuardDNS/Model/ParentalControlSettingsUpdate.ps1
161+
src/PSAdGuardDNS/Model/QueriesStats.ps1
162+
src/PSAdGuardDNS/Model/QueryLogItem.ps1
163+
src/PSAdGuardDNS/Model/QueryLogResponse.ps1
164+
src/PSAdGuardDNS/Model/RegularDnsProtoType.ps1
165+
src/PSAdGuardDNS/Model/SafebrowsingSettings.ps1
166+
src/PSAdGuardDNS/Model/SafebrowsingSettingsUpdate.ps1
167+
src/PSAdGuardDNS/Model/ScheduleDay.ps1
168+
src/PSAdGuardDNS/Model/ScheduleDayUpdate.ps1
169+
src/PSAdGuardDNS/Model/ScheduleTime.ps1
170+
src/PSAdGuardDNS/Model/ScheduleWeek.ps1
171+
src/PSAdGuardDNS/Model/ScheduleWeekUpdate.ps1
172+
src/PSAdGuardDNS/Model/SecureDnsProtoType.ps1
173+
src/PSAdGuardDNS/Model/TimeQueriesStats.ps1
174+
src/PSAdGuardDNS/Model/TimeQueriesStatsList.ps1
175+
src/PSAdGuardDNS/Model/UserRulesSettings.ps1
176+
src/PSAdGuardDNS/Model/UserRulesSettingsUpdate.ps1
177+
src/PSAdGuardDNS/Model/WebService.ps1
178+
src/PSAdGuardDNS/PSAdGuardDNS.psm1
179+
src/PSAdGuardDNS/Private/ApiClient.ps1
180+
src/PSAdGuardDNS/Private/Get-CommonParameters.ps1
181+
src/PSAdGuardDNS/Private/HttpSignatureAuth.ps1
182+
src/PSAdGuardDNS/Private/Out-DebugParameter.ps1
183+
src/PSAdGuardDNS/Private/RSAEncryptionProvider.cs
184+
src/PSAdGuardDNS/en-US/about_PSAdGuardDNS.help.txt
185+
tests/Api/AccountApi.Tests.ps1
186+
tests/Api/AuthenticationApi.Tests.ps1
187+
tests/Api/DNSServersApi.Tests.ps1
188+
tests/Api/DedicatedIPAddressesApi.Tests.ps1
189+
tests/Api/DevicesApi.Tests.ps1
190+
tests/Api/FilterListsApi.Tests.ps1
191+
tests/Api/QueryLogApi.Tests.ps1
192+
tests/Api/StatisticsApi.Tests.ps1
193+
tests/Api/WebServicesApi.Tests.ps1
194+
tests/Model/AccessTokenErrorResponse.Tests.ps1
195+
tests/Model/AccessTokenResponse.Tests.ps1
196+
tests/Model/AccountLimits.Tests.ps1
197+
tests/Model/BlockedWebService.Tests.ps1
198+
tests/Model/BlockedWebServiceUpdate.Tests.ps1
199+
tests/Model/BlockingMode.Tests.ps1
200+
tests/Model/BlockingModeSettings.Tests.ps1
201+
tests/Model/BlockingModeSettingsUpdate.Tests.ps1
202+
tests/Model/CategoryQueriesStats.Tests.ps1
203+
tests/Model/CategoryQueriesStatsList.Tests.ps1
204+
tests/Model/CategoryType.Tests.ps1
205+
tests/Model/CompanyDetailedQueriesStats.Tests.ps1
206+
tests/Model/CompanyDetailedQueriesStatsList.Tests.ps1
207+
tests/Model/CompanyQueriesStats.Tests.ps1
208+
tests/Model/CompanyQueriesStatsList.Tests.ps1
209+
tests/Model/ConnectDeviceType.Tests.ps1
210+
tests/Model/CountryQueriesStats.Tests.ps1
211+
tests/Model/CountryQueriesStatsList.Tests.ps1
212+
tests/Model/DNSAddresses.Tests.ps1
213+
tests/Model/DNSServer.Tests.ps1
214+
tests/Model/DNSServerAccessSettings.Tests.ps1
215+
tests/Model/DNSServerAccessSettingsUpdate.Tests.ps1
216+
tests/Model/DNSServerCreate.Tests.ps1
217+
tests/Model/DNSServerSettings.Tests.ps1
218+
tests/Model/DNSServerSettingsUpdate.Tests.ps1
219+
tests/Model/DNSServerUpdate.Tests.ps1
220+
tests/Model/DayOfWeek.Tests.ps1
221+
tests/Model/DedicatedIPv4Address.Tests.ps1
222+
tests/Model/DedicatedIps.Tests.ps1
223+
tests/Model/Device.Tests.ps1
224+
tests/Model/DeviceCreate.Tests.ps1
225+
tests/Model/DeviceQueriesStats.Tests.ps1
226+
tests/Model/DeviceQueriesStatsList.Tests.ps1
227+
tests/Model/DeviceSettings.Tests.ps1
228+
tests/Model/DeviceSettingsUpdate.Tests.ps1
229+
tests/Model/DeviceUpdate.Tests.ps1
230+
tests/Model/DnsProtoResponseType.Tests.ps1
231+
tests/Model/DnsProtoType.Tests.ps1
232+
tests/Model/DomainQueriesStats.Tests.ps1
233+
tests/Model/DomainQueriesStatsList.Tests.ps1
234+
tests/Model/ErrorCodes.Tests.ps1
235+
tests/Model/ErrorResponse.Tests.ps1
236+
tests/Model/FieldError.Tests.ps1
237+
tests/Model/FilterList.Tests.ps1
238+
tests/Model/FilterListCategory.Tests.ps1
239+
tests/Model/FilterListCategoryType.Tests.ps1
240+
tests/Model/FilterListItem.Tests.ps1
241+
tests/Model/FilterListItemUpdate.Tests.ps1
242+
tests/Model/FilterListsSettings.Tests.ps1
243+
tests/Model/FilterListsSettingsUpdate.Tests.ps1
244+
tests/Model/FilteringActionSource.Tests.ps1
245+
tests/Model/FilteringActionStatus.Tests.ps1
246+
tests/Model/FilteringInfo.Tests.ps1
247+
tests/Model/IpAddress.Tests.ps1
248+
tests/Model/IpType.Tests.ps1
249+
tests/Model/Limit.Tests.ps1
250+
tests/Model/LinkDedicatedIPv4.Tests.ps1
251+
tests/Model/Page.Tests.ps1
252+
tests/Model/ParentalControlSettings.Tests.ps1
253+
tests/Model/ParentalControlSettingsUpdate.Tests.ps1
254+
tests/Model/QueriesStats.Tests.ps1
255+
tests/Model/QueryLogItem.Tests.ps1
256+
tests/Model/QueryLogResponse.Tests.ps1
257+
tests/Model/RegularDnsProtoType.Tests.ps1
258+
tests/Model/SafebrowsingSettings.Tests.ps1
259+
tests/Model/SafebrowsingSettingsUpdate.Tests.ps1
260+
tests/Model/ScheduleDay.Tests.ps1
261+
tests/Model/ScheduleDayUpdate.Tests.ps1
262+
tests/Model/ScheduleTime.Tests.ps1
263+
tests/Model/ScheduleWeek.Tests.ps1
264+
tests/Model/ScheduleWeekUpdate.Tests.ps1
265+
tests/Model/SecureDnsProtoType.Tests.ps1
266+
tests/Model/TimeQueriesStats.Tests.ps1
267+
tests/Model/TimeQueriesStatsList.Tests.ps1
268+
tests/Model/UserRulesSettings.Tests.ps1
269+
tests/Model/UserRulesSettingsUpdate.Tests.ps1
270+
tests/Model/WebService.Tests.ps1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
7.16.0
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#
2+
# AdGuard DNS API
3+
# DNS API documentation
4+
# Version: 1.11
5+
# Generated by OpenAPI Generator: https://openapi-generator.tech
6+
#
7+
8+
function Get-FunctionsToExport {
9+
[CmdletBinding()]
10+
Param (
11+
[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)]
12+
[ValidateNotNullOrEmpty()]
13+
[Alias('FullName')]
14+
$Path
15+
)
16+
17+
Process {
18+
$Token = $null
19+
$ParserErr = $null
20+
21+
$Ast = [System.Management.Automation.Language.Parser]::ParseFile(
22+
$Path,
23+
[ref]$Token,
24+
[ref]$ParserErr
25+
)
26+
27+
if ($ParserErr) {
28+
throw $ParserErr
29+
} else {
30+
foreach ($name in 'Begin', 'Process', 'End') {
31+
foreach ($Statement in $Ast."${name}Block".Statements) {
32+
if (
33+
[String]::IsNullOrWhiteSpace($Statement.Name) -or
34+
$Statement.Extent.ToString() -notmatch
35+
('function\W+{0}' -f $Statement.Name)
36+
) {
37+
continue
38+
}
39+
40+
$Statement.Name
41+
}
42+
}
43+
}
44+
}
45+
}
46+
47+
$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path
48+
$FunctionPath = 'Api', 'Model', 'Client' | Where-Object {
49+
Join-Path "$ScriptDir\src\PSAdGuardDNS\" $_ | Test-Path
50+
} | ForEach-Object { Join-Path "$ScriptDir\src\PSAdGuardDNS\" $_ }
51+
52+
$Manifest = @{
53+
Path = "$ScriptDir\src\PSAdGuardDNS\PSAdGuardDNS.psd1"
54+
55+
Author = 'OpenAPI Generator Team'
56+
CompanyName = 'openapitools.org'
57+
Description = 'PSAdGuardDNS - the PowerShell module for AdGuard DNS API'
58+
59+
ModuleVersion = '1.0.0'
60+
61+
RootModule = 'PSAdGuardDNS.psm1'
62+
Guid = '{C993EA83-F8FC-446F-9B72-D59DE5256773}' # Has to be static, otherwise each new build will be considered different module
63+
64+
PowerShellVersion = '6.2'
65+
66+
FunctionsToExport = $FunctionPath | Get-ChildItem -Filter *.ps1 | Get-FunctionsToExport
67+
68+
VariablesToExport = @()
69+
AliasesToExport = @()
70+
CmdletsToExport = @()
71+
72+
}
73+
74+
New-ModuleManifest @Manifest

0 commit comments

Comments
 (0)