Lib/Core/VirusTotalAnalyzer.PowerShell.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>VirusTotalAnalyzer.PowerShell</name>
    </assembly>
    <members>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment">
            <summary>Retrieves comments for a specified resource.</summary>
            <para>Fetches community comments associated with files, URLs, IP addresses or domains.</para>
            <example>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusComment -ApiKey $ApiKey -ResourceType File -Id 'abc'</para>
              </code>
              <para>Displays community feedback for the file with the given hash.</para>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment.ResourceType">
            <summary>Resource type to retrieve comments for.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment.Id">
            <summary>Identifier of the resource.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment.Limit">
            <summary>Maximum number of comments to return.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment.Cursor">
            <summary>Pagination cursor.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusComment.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship">
            <summary>Retrieves useful typed relationships for VirusTotal network objects.</summary>
            <para>Returns typed historical WHOIS, DNS resolution, certificate, and related-file objects instead of generic relationship descriptors.</para>
            <example>
              <summary>Get historical WHOIS snapshots for a domain.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusRelationship -DomainName 'example.com' -Relationship HistoricalWhois</para>
              </code>
            </example>
            <example>
              <summary>Find files that communicated with an IP address.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusRelationship -IPAddress '1.1.1.1' -Relationship CommunicatingFiles -Limit 10</para>
              </code>
            </example>
            <example>
              <summary>Request one relationship page and retain its continuation cursor.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>$page = Get-VirusRelationship -DomainName 'example.com' -Relationship HistoricalWhois -Limit 10 -Page</para>
                <para><prefix>PS&gt; </prefix>Get-VirusRelationship -DomainName 'example.com' -Relationship HistoricalWhois -Limit 10 -Cursor $page.NextCursor -Page</para>
              </code>
            </example>
            <seealso href="https://docs.virustotal.com/reference/domain-object-historical-whois" />
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.DomainName">
            <summary>Domain whose relationships should be retrieved.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.IPAddress">
            <summary>IP address whose relationships should be retrieved.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.Relationship">
            <summary>Typed relationship to retrieve.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.Limit">
            <summary>Maximum number of relationship objects to request.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.Cursor">
            <summary>Cursor returned by a previous relationship request.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.Page">
            <summary>Returns the page envelope, including Data, Meta, Links, and NextCursor, instead of enumerating Data.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusRelationship.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport">
            <summary>Retrieves analysis reports from VirusTotal.</summary>
            <para>Buffers report selectors for one invocation, removes duplicate requests, caches results, retries rate limits, and spaces requests for public API quotas.</para>
            <para>Provide an API key or an existing <see cref="T:VirusTotalAnalyzer.IVirusTotalClient"/> to authenticate requests, or set VIRUSTOTAL_API_KEY.</para>
            <example>
              <summary>Get concise verdicts for several hashes with free-key defaults.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusReport -Hash $hashes -Client $Client -Summary</para>
              </code>
              <para>Deduplicates the array, spaces network requests by 20 seconds, and returns pipeline-friendly verdict objects that retain the full report.</para>
            </example>
            <example>
              <summary>Use a faster interval for a key with a higher quota.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusReport -DomainName 'example.com','example.net' -MinimumIntervalSeconds 1 -ApiKey $ApiKey</para>
              </code>
            </example>
            <seealso href="https://docs.virustotal.com/reference/public-vs-premium-api" />
            <seealso href="https://github.com/EvotecIT/VirusTotalAnalyzer" />
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.AnalysisId">
            <summary>Analysis identifiers returned from previous scans.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.Hash">
            <summary>SHA256 or other supported hashes to look up.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.File">
            <summary>Paths to local files whose SHA256 hashes should be looked up.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.Url">
            <summary>URLs to check against VirusTotal.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.IPAddress">
            <summary>IP addresses to inspect.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.DomainName">
            <summary>Domain names to inspect.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.Search">
            <summary>Public search query for an exact IOC or a comment tag.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.MinimumIntervalSeconds">
            <summary>Minimum seconds between report request starts. The public-key default is 20; use 0 only when your quota permits it.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.CacheSeconds">
            <summary>Seconds to reuse successful reports within the client. Use 0 to disable cross-batch caching.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.MaxRetries">
            <summary>Maximum retries after VirusTotal responds with a rate limit.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.Summary">
            <summary>Returns a concise verdict object while retaining the complete report in its Report property.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusReport.EndProcessingAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent">
            <summary>Gets historical VirusTotal Monitor events.</summary>
            <example>
              <summary>Read one event page and retain its continuation metadata.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>$page = Get-VirusTotalMonitorEvent -ApiKey $ApiKey; $next = Get-VirusTotalMonitorEvent -ApiKey $ApiKey -Cursor $page.Meta.Cursor -JobId $page.Meta.JobId</para>
              </code>
              <para>The default mode returns the full page so both cursor and job identifier remain available.</para>
            </example>
            <example>
              <summary>Stream every available Monitor event.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusTotalMonitorEvent -ApiKey $ApiKey -All</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent.Filter">
            <summary>Optional VirusTotal Monitor filter expression.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent.Cursor">
            <summary>Cursor at which to begin reading events.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent.JobId">
            <summary>Event job identifier returned by a previous page.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent.All">
            <summary>Reads every page until VirusTotal returns no cursor.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorEvent.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem">
            <summary>Gets one Monitor item or lists publisher Monitor items.</summary>
            <example>
              <summary>Get one Monitor item by identifier.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusTotalMonitorItem -ApiKey $ApiKey -Id 'monitor-item-id'</para>
              </code>
            </example>
            <example>
              <summary>List items below an absolute Monitor path.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>$page = Get-VirusTotalMonitorItem -ApiKey $ApiKey -List -Path '/releases/'</para>
              </code>
              <para>List mode returns the full page unless All is specified, preserving its continuation cursor.</para>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Id">
            <summary>Monitor item identifier.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.List">
            <summary>Selects list mode instead of retrieving one item.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Filter">
            <summary>Optional VirusTotal Monitor item filter expression.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Path">
            <summary>Lists items below this absolute Monitor path.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.ParentItemId">
            <summary>Lists children of this Monitor folder item.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Tag">
            <summary>Lists items matching one or more Monitor tags.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Limit">
            <summary>Maximum number of items requested per page.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.Cursor">
            <summary>Cursor at which to begin listing.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.All">
            <summary>Reads every page until VirusTotal returns no cursor.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorItem.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorStatistics">
            <summary>Gets VirusTotal Monitor publisher statistics.</summary>
            <example>
              <summary>Get current and historical publisher statistics.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusTotalMonitorStatistics -ApiKey $ApiKey</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorStatistics.Limit">
            <summary>Maximum number of ranked entries requested.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorStatistics.Cursor">
            <summary>Pagination cursor.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusTotalMonitorStatistics.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletGetVirusUser">
            <summary>Retrieves VirusTotal account information or visible quota usage.</summary>
            <para>Uses an explicit user identifier or VIRUSTOTAL_USER_ID. The API key is never substituted into the URL path.</para>
            <example>
              <summary>Get the configured account.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>$env:VIRUSTOTAL_USER_ID = 'user1'; Get-VirusAccount</para>
              </code>
            </example>
            <example>
              <summary>Return pipeline-friendly quota rows.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Get-VirusUser -Id 'user1' -Quota</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusUser.Id">
            <summary>User identifier. Defaults to VIRUSTOTAL_USER_ID; it never defaults to the API key.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletGetVirusUser.Quota">
            <summary>Returns one concise row for each visible quota instead of the complete user object.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletGetVirusUser.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan">
            <summary>Submits resources to VirusTotal for scanning.</summary>
            <para>Uploads files, hashes, or URLs to the VirusTotal API and returns the resulting analysis object.</para>
            <para>You can rescan existing files by providing a known hash.</para>
            <list type="alertSet">
              <item>
                <description>Submitted data is shared with the VirusTotal community.</description>
              </item>
            </list>
            <example>
              <summary>Upload a file to VirusTotal.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>New-VirusScan -ApiKey $ApiKey -File 'C:\\samples\\app.exe'</para>
              </code>
              <para>Starts a new analysis for the specified file.</para>
            </example>
            <example>
              <summary>Submit a URL for scanning.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>New-VirusScan -ApiKey $ApiKey -Url 'https://example.com'</para>
              </code>
              <para>Queues the URL for analysis and returns its identifier.</para>
            </example>
            <example>
              <summary>Submit a file and wait for the completed analysis.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>$env:VIRUSTOTAL_API_KEY = 'your-api-key'; New-VirusScan -File 'C:\samples\app.exe' -Wait</para>
              </code>
              <para>Uses the environment API key and polls at a free-API-friendly interval.</para>
            </example>
            <seealso href="https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/invoke-webrequest" />
            <seealso href="https://github.com/EvotecIT/VirusTotalAnalyzer" />
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.Hash">
            <summary>Hash of an already submitted file to reanalyse.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.FileHash">
            <summary>Path to a file whose hash should be recalculated and reanalysed.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.File">
            <summary>Path to a local file to upload for scanning.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.Url">
            <summary>URL to submit for scanning.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.Password">
            <summary>Password to use when submitting a protected archive.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.Wait">
            <summary>Wait for VirusTotal to finish the submitted analysis.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.TimeoutSeconds">
            <summary>Maximum number of seconds to wait for analysis completion.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.PollingIntervalSeconds">
            <summary>Seconds between status requests. The default is suitable for the public API rate limit.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletNewVirusScan.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletNewVirusTotalMonitorFolder">
            <summary>Creates a folder in VirusTotal Monitor.</summary>
            <example>
              <summary>Create an absolute Monitor folder.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>New-VirusTotalMonitorFolder -ApiKey $ApiKey -Path '/Product/1.0/'</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusTotalMonitorFolder.Path">
            <summary>Absolute Monitor folder path, including the trailing slash.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletNewVirusTotalMonitorFolder.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletNewVirusVote">
            <summary>Casts a vote for a resource.</summary>
            <para>Submits a harmless or malicious verdict for the specified resource.</para>
            <example>
              <code>
                <para><prefix>PS&gt; </prefix>New-VirusVote -ApiKey $ApiKey -ResourceType File -Id 'abc' -Verdict Malicious</para>
              </code>
              <para>Marks the file identified by the given hash as malicious.</para>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusVote.ResourceType">
            <summary>Resource type to vote on.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusVote.Id">
            <summary>Identifier of the resource.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletNewVirusVote.Verdict">
            <summary>Verdict to cast.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletNewVirusVote.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletRemoveVirusTotalMonitorItem">
            <summary>Removes a VirusTotal Monitor item.</summary>
            <example>
              <summary>Remove one Monitor item after confirmation.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Remove-VirusTotalMonitorItem -ApiKey $ApiKey -Id 'monitor-item-id'</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletRemoveVirusTotalMonitorItem.Id">
            <summary>Identifier of the Monitor item to delete.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletRemoveVirusTotalMonitorItem.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile">
            <summary>Uploads a publisher file to VirusTotal Monitor.</summary>
            <example>
              <summary>Upload a new publisher file and verify its SHA-256.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Send-VirusTotalMonitorFile -ApiKey $ApiKey -File 'C:\releases\app.exe' -Path '/Product/1.0/app.exe'</para>
              </code>
            </example>
            <example>
              <summary>Replace the contents of an existing Monitor item.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Send-VirusTotalMonitorFile -ApiKey $ApiKey -File 'C:\releases\app.exe' -ExistingItemId 'monitor-item-id'</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.File">
            <summary>Local file to upload.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.Path">
            <summary>Absolute destination path in Monitor.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.ExistingItemId">
            <summary>Existing Monitor item identifier whose contents will be replaced.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.Details">
            <summary>Optional publisher details assigned after upload.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.SkipHashVerification">
            <summary>Returns after upload without polling for the remote SHA-256.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.VerificationTimeoutSeconds">
            <summary>Maximum seconds to wait for a remote SHA-256.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.PollingIntervalSeconds">
            <summary>Seconds between Monitor item verification requests.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletSendVirusTotalMonitorFile.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.CmdletSetVirusTotalMonitorItem">
            <summary>Sets publisher details on a VirusTotal Monitor item.</summary>
            <example>
              <summary>Update publisher details for an uploaded item.</summary>
              <code>
                <para><prefix>PS&gt; </prefix>Set-VirusTotalMonitorItem -ApiKey $ApiKey -Id 'monitor-item-id' -Details 'Signed release build'</para>
              </code>
            </example>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSetVirusTotalMonitorItem.Id">
            <summary>Identifier of the Monitor item to configure.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.CmdletSetVirusTotalMonitorItem.Details">
            <summary>Publisher details stored with the item.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.CmdletSetVirusTotalMonitorItem.ProcessRecordAsync">
            <inheritdoc/>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet">
            <summary>
            Base class for cmdlets that await asynchronous engine work while routing PowerShell pipeline writes
            back through the synchronous cmdlet pipeline thread.
            </summary>
            <remarks>
            Invoke asynchronous hooks on the PowerShell pipeline thread until their first incomplete await.
            The base temporarily replaces the host synchronization context with an internal thread-pool
            context while invoking each hook. This prevents continuations from capturing either the host
            context or a custom task scheduler that may be running the PowerShell pipeline thread.
            Keep hook implementations asynchronous all the way through and pass <see cref="P:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CancelToken"/> to
            cancellable engine operations. Do not block with Task.Wait, Task.Result, or Task.WaitAll.
            </remarks>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams">
            <summary>
            Lifecycle-bound stream writers for callbacks that do not flow the hook execution context.
            </summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteObject(System.Object,System.Boolean)">
            <summary>Queues an output record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteError(System.Management.Automation.ErrorRecord)">
            <summary>Queues an error record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteWarning(System.String)">
            <summary>Queues a warning record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteVerbose(System.String)">
            <summary>Queues a verbose record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteDebug(System.String)">
            <summary>Queues a debug record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteInformation(System.Management.Automation.InformationRecord)">
            <summary>Queues an information record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteInformation(System.Object,System.String[])">
            <summary>Queues tagged information for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteProgress(System.Management.Automation.ProgressRecord)">
            <summary>Queues a progress record for the originating hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturedPipelineStreams.WriteCommandDetail(System.String)">
            <summary>Queues command-detail text for the originating hook.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CancelToken">
            <summary>Cancellation token triggered when PowerShell stops the cmdlet.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.BeginProcessing">
            <inheritdoc />
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.BeginProcessingAsync">
            <summary>Asynchronous begin hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ProcessRecord">
            <inheritdoc />
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ProcessRecordAsync">
            <summary>Asynchronous process-record hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.EndProcessing">
            <inheritdoc />
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.EndProcessingAsync">
            <summary>Asynchronous end hook.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.StopProcessing">
            <inheritdoc />
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldProcess(System.String)">
            <summary>Thread-safe ShouldProcess bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldProcess(System.String,System.String)">
            <summary>Thread-safe ShouldProcess bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldProcess(System.String,System.String,System.String)">
            <summary>Thread-safe ShouldProcess bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldProcess(System.String,System.String,System.String,System.Management.Automation.ShouldProcessReason@)">
            <summary>Thread-safe ShouldProcess bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldContinue(System.String,System.String)">
            <summary>Thread-safe ShouldContinue bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldContinue(System.String,System.String,System.Boolean@,System.Boolean@)">
            <summary>Thread-safe ShouldContinue bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ShouldContinue(System.String,System.String,System.Boolean,System.Boolean@,System.Boolean@)">
            <summary>Thread-safe ShouldContinue bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.PromptForCredential(System.String,System.String,System.String,System.String)">
            <summary>Thread-safe credential prompt bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.PromptForCredential(System.String,System.String,System.String,System.String,System.Management.Automation.PSCredentialTypes,System.Management.Automation.PSCredentialUIOptions)">
            <summary>Thread-safe credential prompt bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteObject(System.Object)">
            <summary>Thread-safe output bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteObject(System.Object,System.Boolean)">
            <summary>Thread-safe output bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteError(System.Management.Automation.ErrorRecord)">
            <summary>Thread-safe error bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ThrowTerminatingError(System.Management.Automation.ErrorRecord)">
            <summary>Thread-safe terminating-error bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteWarning(System.String)">
            <summary>Thread-safe warning bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteVerbose(System.String)">
            <summary>Thread-safe verbose bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteDebug(System.String)">
            <summary>Thread-safe debug bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteCommandDetail(System.String)">
            <summary>Thread-safe command-detail bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteInformation(System.Management.Automation.InformationRecord)">
            <summary>Thread-safe information bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteInformation(System.Object,System.String[])">
            <summary>Thread-safe information bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteProgress(System.Management.Automation.ProgressRecord)">
            <summary>Thread-safe progress bridge for asynchronous cmdlet code.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ThrowIfStopped">
            <summary>Throws when PowerShell has requested cancellation.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.Dispose">
            <inheritdoc />
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturePipelineWriter(System.Boolean)">
            <summary>
            Captures an output writer for callbacks whose producer does not flow the hook execution context.
            </summary>
            <remarks>
            Capture the writer inside an asynchronous PowerShell hook. Calls made after that hook ends are
            rejected rather than being rebound to a later record lifecycle.
            </remarks>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.CapturePipelineStreams">
            <summary>
            Captures lifecycle-bound typed stream writers for callbacks that do not flow execution context.
            </summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.GetErrorActionPreference">
            <summary>Returns the effective error action preference.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.EnsureFileExists(System.String,System.Management.Automation.ActionPreference)">
            <summary>Verifies that the specified file exists.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.WriteApiError(VirusTotalAnalyzer.Models.ApiException,System.Object)">
            <summary>Writes a standardized VirusTotal API error.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.AsyncPSCmdlet.ThrowApiError(VirusTotalAnalyzer.Models.ApiException,System.Object)">
            <summary>Throws a standardized terminating VirusTotal API error.</summary>
        </member>
        <member name="T:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet">
            <summary>Provides one authenticated VirusTotal client for a cmdlet invocation.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.ApiKey">
            <summary>VirusTotal API key used when <see cref="P:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.Client"/> is not supplied. Defaults to the VIRUSTOTAL_API_KEY environment variable.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.Client">
            <summary>Existing client to reuse. The cmdlet never disposes caller-owned clients.</summary>
        </member>
        <member name="P:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.ActiveClient">
            <summary>The validated client for the current invocation.</summary>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.BeginProcessingAsync">
            <inheritdoc/>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.EndProcessingAsync">
            <inheritdoc/>
        </member>
        <member name="M:VirusTotalAnalyzer.PowerShell.VirusTotalCmdlet.Dispose">
            <inheritdoc/>
        </member>
        <member name="T:OnModuleImportAndRemove">
            <summary>
            OnModuleImportAndRemove is a class that implements the IModuleAssemblyInitializer and IModuleAssemblyCleanup interfaces.
            This class is used to handle the assembly resolve event when the module is imported and removed.
            </summary>
        </member>
        <member name="M:OnModuleImportAndRemove.OnImport">
            <summary>
            OnImport is called when the module is imported.
            </summary>
        </member>
        <member name="M:OnModuleImportAndRemove.OnRemove(System.Management.Automation.PSModuleInfo)">
            <summary>
            OnRemove is called when the module is removed.
            </summary>
            <param name="module"></param>
        </member>
        <member name="M:OnModuleImportAndRemove.MyResolveEventHandler(System.Object,System.ResolveEventArgs)">
            <summary>
            MyResolveEventHandler is a method that handles the AssemblyResolve event.
            </summary>
            <param name="sender"></param>
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="M:OnModuleImportAndRemove.IsNetFramework">
            <summary>
            Determine if the current runtime is .NET Framework
            </summary>
            <returns></returns>
        </member>
    </members>
</doc>