## API Report File for "@azure/arm-policyinsights"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import * as coreAuth from '@azure/core-auth';
import * as coreClient from '@azure/core-client';
import { OperationState } from '@azure/core-lro';
import { PagedAsyncIterableIterator } from '@azure/core-paging';
import { SimplePollerLike } from '@azure/core-lro';

// @public
export interface Attestation extends Resource {
    assessmentDate?: Date;
    comments?: string;
    complianceState?: ComplianceState;
    evidence?: AttestationEvidence[];
    expiresOn?: Date;
    readonly lastComplianceStateChangeAt?: Date;
    metadata?: Record<string, unknown>;
    owner?: string;
    policyAssignmentId: string;
    policyDefinitionReferenceId?: string;
    readonly provisioningState?: string;
    readonly systemData?: SystemData;
}

// @public
export interface AttestationEvidence {
    description?: string;
    sourceUri?: string;
}

// @public
export interface AttestationListResult {
    readonly nextLink?: string;
    readonly value?: Attestation[];
}

// @public
export interface Attestations {
    beginCreateOrUpdateAtResource(resourceId: string, attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtResourceOptionalParams): Promise<SimplePollerLike<OperationState<AttestationsCreateOrUpdateAtResourceResponse>, AttestationsCreateOrUpdateAtResourceResponse>>;
    beginCreateOrUpdateAtResourceAndWait(resourceId: string, attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtResourceOptionalParams): Promise<AttestationsCreateOrUpdateAtResourceResponse>;
    beginCreateOrUpdateAtResourceGroup(resourceGroupName: string, attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtResourceGroupOptionalParams): Promise<SimplePollerLike<OperationState<AttestationsCreateOrUpdateAtResourceGroupResponse>, AttestationsCreateOrUpdateAtResourceGroupResponse>>;
    beginCreateOrUpdateAtResourceGroupAndWait(resourceGroupName: string, attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtResourceGroupOptionalParams): Promise<AttestationsCreateOrUpdateAtResourceGroupResponse>;
    beginCreateOrUpdateAtSubscription(attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtSubscriptionOptionalParams): Promise<SimplePollerLike<OperationState<AttestationsCreateOrUpdateAtSubscriptionResponse>, AttestationsCreateOrUpdateAtSubscriptionResponse>>;
    beginCreateOrUpdateAtSubscriptionAndWait(attestationName: string, parameters: Attestation, options?: AttestationsCreateOrUpdateAtSubscriptionOptionalParams): Promise<AttestationsCreateOrUpdateAtSubscriptionResponse>;
    deleteAtResource(resourceId: string, attestationName: string, options?: AttestationsDeleteAtResourceOptionalParams): Promise<void>;
    deleteAtResourceGroup(resourceGroupName: string, attestationName: string, options?: AttestationsDeleteAtResourceGroupOptionalParams): Promise<void>;
    deleteAtSubscription(attestationName: string, options?: AttestationsDeleteAtSubscriptionOptionalParams): Promise<void>;
    getAtResource(resourceId: string, attestationName: string, options?: AttestationsGetAtResourceOptionalParams): Promise<AttestationsGetAtResourceResponse>;
    getAtResourceGroup(resourceGroupName: string, attestationName: string, options?: AttestationsGetAtResourceGroupOptionalParams): Promise<AttestationsGetAtResourceGroupResponse>;
    getAtSubscription(attestationName: string, options?: AttestationsGetAtSubscriptionOptionalParams): Promise<AttestationsGetAtSubscriptionResponse>;
    listForResource(resourceId: string, options?: AttestationsListForResourceOptionalParams): PagedAsyncIterableIterator<Attestation>;
    listForResourceGroup(resourceGroupName: string, options?: AttestationsListForResourceGroupOptionalParams): PagedAsyncIterableIterator<Attestation>;
    listForSubscription(options?: AttestationsListForSubscriptionOptionalParams): PagedAsyncIterableIterator<Attestation>;
}

// @public
export interface AttestationsCreateOrUpdateAtResourceGroupOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type AttestationsCreateOrUpdateAtResourceGroupResponse = Attestation;

// @public
export interface AttestationsCreateOrUpdateAtResourceOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type AttestationsCreateOrUpdateAtResourceResponse = Attestation;

// @public
export interface AttestationsCreateOrUpdateAtSubscriptionOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type AttestationsCreateOrUpdateAtSubscriptionResponse = Attestation;

// @public
export interface AttestationsDeleteAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export interface AttestationsDeleteAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export interface AttestationsDeleteAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export interface AttestationsGetAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsGetAtResourceGroupResponse = Attestation;

// @public
export interface AttestationsGetAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsGetAtResourceResponse = Attestation;

// @public
export interface AttestationsGetAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsGetAtSubscriptionResponse = Attestation;

// @public
export interface AttestationsListForResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsListForResourceGroupNextResponse = AttestationListResult;

// @public
export interface AttestationsListForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type AttestationsListForResourceGroupResponse = AttestationListResult;

// @public
export interface AttestationsListForResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsListForResourceNextResponse = AttestationListResult;

// @public
export interface AttestationsListForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type AttestationsListForResourceResponse = AttestationListResult;

// @public
export interface AttestationsListForSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type AttestationsListForSubscriptionNextResponse = AttestationListResult;

// @public
export interface AttestationsListForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type AttestationsListForSubscriptionResponse = AttestationListResult;

// @public
export interface CheckManagementGroupRestrictionsRequest {
    pendingFields?: PendingField[];
    resourceDetails?: CheckRestrictionsResourceDetails;
}

// @public
export interface CheckRestrictionEvaluationDetails {
    evaluatedExpressions?: ExpressionEvaluationDetails[];
    ifNotExistsDetails?: IfNotExistsEvaluationDetails;
    readonly reason?: string;
}

// @public
export interface CheckRestrictionsRequest {
    includeAuditEffect?: boolean;
    pendingFields?: PendingField[];
    resourceDetails: CheckRestrictionsResourceDetails;
}

// @public
export interface CheckRestrictionsResourceDetails {
    apiVersion?: string;
    resourceContent: Record<string, unknown>;
    scope?: string;
}

// @public
export interface CheckRestrictionsResult {
    readonly contentEvaluationResult?: CheckRestrictionsResultContentEvaluationResult;
    readonly fieldRestrictions?: FieldRestrictions[];
}

// @public
export interface CheckRestrictionsResultContentEvaluationResult {
    policyEvaluations?: PolicyEvaluationResult[];
}

// @public
export interface ComplianceDetail {
    complianceState?: string;
    count?: number;
}

// @public
export type ComplianceState = string;

// @public
export interface ComponentEventDetails {
    [property: string]: any;
    id?: string;
    name?: string;
    policyDefinitionAction?: string;
    principalOid?: string;
    tenantId?: string;
    timestamp?: Date;
    type?: string;
}

// @public
export interface ComponentExpressionEvaluationDetails {
    readonly expression?: string;
    readonly expressionKind?: string;
    readonly expressionValue?: Record<string, unknown>;
    readonly operator?: string;
    readonly path?: string;
    result?: string;
    readonly targetValue?: Record<string, unknown>;
}

// @public
export interface ComponentPolicyEvaluationDetails {
    readonly evaluatedExpressions?: ComponentExpressionEvaluationDetails[];
    reason?: string;
}

// @public
export interface ComponentPolicyState {
    [property: string]: any;
    readonly complianceState?: string;
    readonly componentId?: string;
    readonly componentName?: string;
    readonly componentType?: string;
    readonly odataContext?: string;
    readonly odataId?: string;
    readonly policyAssignmentId?: string;
    readonly policyAssignmentName?: string;
    readonly policyAssignmentOwner?: string;
    readonly policyAssignmentParameters?: string;
    readonly policyAssignmentScope?: string;
    readonly policyAssignmentVersion?: string;
    readonly policyDefinitionAction?: string;
    readonly policyDefinitionCategory?: string;
    readonly policyDefinitionGroupNames?: string[];
    readonly policyDefinitionId?: string;
    readonly policyDefinitionName?: string;
    readonly policyDefinitionReferenceId?: string;
    readonly policyDefinitionVersion?: string;
    policyEvaluationDetails?: ComponentPolicyEvaluationDetails;
    readonly policySetDefinitionCategory?: string;
    readonly policySetDefinitionId?: string;
    readonly policySetDefinitionName?: string;
    readonly policySetDefinitionOwner?: string;
    readonly policySetDefinitionParameters?: string;
    readonly policySetDefinitionVersion?: string;
    readonly resourceGroup?: string;
    readonly resourceId?: string;
    readonly resourceLocation?: string;
    readonly resourceType?: string;
    readonly subscriptionId?: string;
    readonly timestamp?: Date;
}

// @public
export interface ComponentPolicyStates {
    listQueryResultsForPolicyDefinition(subscriptionId: string, policyDefinitionName: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForPolicyDefinitionOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForPolicyDefinitionResponse>;
    listQueryResultsForResource(resourceId: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForResourceOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForResourceResponse>;
    listQueryResultsForResourceGroup(subscriptionId: string, resourceGroupName: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForResourceGroupOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForResourceGroupResponse>;
    listQueryResultsForResourceGroupLevelPolicyAssignment(subscriptionId: string, resourceGroupName: string, policyAssignmentName: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentResponse>;
    listQueryResultsForSubscription(subscriptionId: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForSubscriptionOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForSubscriptionResponse>;
    listQueryResultsForSubscriptionLevelPolicyAssignment(subscriptionId: string, policyAssignmentName: string, componentPolicyStatesResource: ComponentPolicyStatesResource, options?: ComponentPolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams): Promise<ComponentPolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentResponse>;
}

// @public
export interface ComponentPolicyStatesListQueryResultsForPolicyDefinitionOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForPolicyDefinitionResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesListQueryResultsForResourceGroupOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForResourceGroupResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesListQueryResultsForResourceOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    expand?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForResourceResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesListQueryResultsForSubscriptionOptionalParams extends coreClient.OperationOptions {
    apply?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    to?: Date;
    top?: number;
}

// @public
export type ComponentPolicyStatesListQueryResultsForSubscriptionResponse = ComponentPolicyStatesQueryResults;

// @public
export interface ComponentPolicyStatesQueryResults {
    odataContext?: string;
    odataCount?: number;
    value?: ComponentPolicyState[];
}

// @public
export type ComponentPolicyStatesResource = string;

// @public
export interface ComponentStateDetails {
    [property: string]: any;
    complianceState?: string;
    id?: string;
    name?: string;
    timestamp?: Date;
    type?: string;
}

// @public
export type CreatedByType = string;

// @public
export interface ErrorDefinition {
    readonly additionalInfo?: TypedErrorInfo[];
    readonly code?: string;
    readonly details?: ErrorDefinition[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorDefinitionAutoGenerated {
    readonly additionalInfo?: TypedErrorInfo[];
    readonly code?: string;
    readonly details?: ErrorDefinitionAutoGenerated[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorDefinitionAutoGenerated2 {
    readonly additionalInfo?: TypedErrorInfo[];
    readonly code?: string;
    readonly details?: ErrorDefinitionAutoGenerated2[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorResponse {
    error?: ErrorDefinition;
}

// @public
export interface ErrorResponseAutoGenerated {
    error?: ErrorDefinitionAutoGenerated;
}

// @public
export interface ErrorResponseAutoGenerated2 {
    error?: ErrorDefinitionAutoGenerated2;
}

// @public
export interface ExpressionEvaluationDetails {
    expression?: string;
    readonly expressionKind?: string;
    expressionValue?: Record<string, unknown>;
    operator?: string;
    path?: string;
    result?: string;
    targetValue?: Record<string, unknown>;
}

// @public
export interface FieldRestriction {
    readonly defaultValue?: string;
    readonly policy?: PolicyReference;
    readonly policyEffect?: string;
    readonly reason?: string;
    readonly result?: FieldRestrictionResult;
    readonly values?: string[];
}

// @public
export type FieldRestrictionResult = string;

// @public
export interface FieldRestrictions {
    readonly field?: string;
    restrictions?: FieldRestriction[];
}

// @public
export function getContinuationToken(page: unknown): string | undefined;

// @public
export interface IfNotExistsEvaluationDetails {
    resourceId?: string;
    totalResources?: number;
}

// @public
export enum KnownComplianceState {
    Compliant = "Compliant",
    NonCompliant = "NonCompliant",
    Unknown = "Unknown"
}

// @public
export enum KnownComponentPolicyStatesResource {
    Latest = "latest"
}

// @public
export enum KnownCreatedByType {
    Application = "Application",
    Key = "Key",
    ManagedIdentity = "ManagedIdentity",
    User = "User"
}

// @public
export enum KnownFieldRestrictionResult {
    Audit = "Audit",
    Deny = "Deny",
    Removed = "Removed",
    Required = "Required"
}

// @public
export enum KnownPolicyEventsResourceType {
    Default = "default"
}

// @public
export enum KnownPolicyStatesResource {
    Default = "default",
    Latest = "latest"
}

// @public
export enum KnownPolicyStatesSummaryResourceType {
    Latest = "latest"
}

// @public
export enum KnownPolicyTrackedResourcesResourceType {
    Default = "default"
}

// @public
export enum KnownResourceDiscoveryMode {
    ExistingNonCompliant = "ExistingNonCompliant",
    ReEvaluateCompliance = "ReEvaluateCompliance"
}

// @public
export interface Operation {
    display?: OperationDisplay;
    isDataAction?: boolean;
    name?: string;
}

// @public
export interface OperationDisplay {
    description?: string;
    operation?: string;
    provider?: string;
    resource?: string;
}

// @public
export interface Operations {
    list(options?: OperationsListOptionalParams): Promise<OperationsListResponse>;
}

// @public
export interface OperationsListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type OperationsListResponse = OperationsListResults;

// @public
export interface OperationsListResults {
    odataCount?: number;
    value?: Operation[];
}

// @public
export interface PendingField {
    field: string;
    values?: string[];
}

// @public
export interface PolicyAssignmentSummary {
    policyAssignmentId?: string;
    policyDefinitions?: PolicyDefinitionSummary[];
    policyGroups?: PolicyGroupSummary[];
    policySetDefinitionId?: string;
    results?: SummaryResults;
}

// @public
export interface PolicyDefinitionSummary {
    effect?: string;
    policyDefinitionGroupNames?: string[];
    policyDefinitionId?: string;
    policyDefinitionReferenceId?: string;
    results?: SummaryResults;
}

// @public
export interface PolicyDetails {
    readonly policyAssignmentDisplayName?: string;
    readonly policyAssignmentId?: string;
    readonly policyAssignmentScope?: string;
    readonly policyDefinitionId?: string;
    readonly policyDefinitionReferenceId?: string;
    readonly policySetDefinitionId?: string;
}

// @public
export interface PolicyEffectDetails {
    readonly policyEffect?: string;
}

// @public
export interface PolicyEvaluationDetails {
    evaluatedExpressions?: ExpressionEvaluationDetails[];
    ifNotExistsDetails?: IfNotExistsEvaluationDetails;
}

// @public
export interface PolicyEvaluationResult {
    readonly effectDetails?: PolicyEffectDetails;
    readonly evaluationDetails?: CheckRestrictionEvaluationDetails;
    readonly evaluationResult?: string;
    readonly policyInfo?: PolicyReference;
}

// @public
export interface PolicyEvent {
    [property: string]: any;
    complianceState?: string;
    components?: ComponentEventDetails[];
    effectiveParameters?: string;
    isCompliant?: boolean;
    managementGroupIds?: string;
    odataContext?: string;
    odataId?: string;
    policyAssignmentId?: string;
    policyAssignmentName?: string;
    policyAssignmentOwner?: string;
    policyAssignmentParameters?: string;
    policyAssignmentScope?: string;
    policyDefinitionAction?: string;
    policyDefinitionCategory?: string;
    policyDefinitionId?: string;
    policyDefinitionName?: string;
    policyDefinitionReferenceId?: string;
    policySetDefinitionCategory?: string;
    policySetDefinitionId?: string;
    policySetDefinitionName?: string;
    policySetDefinitionOwner?: string;
    policySetDefinitionParameters?: string;
    principalOid?: string;
    resourceGroup?: string;
    resourceId?: string;
    resourceLocation?: string;
    resourceTags?: string;
    resourceType?: string;
    subscriptionId?: string;
    tenantId?: string;
    timestamp?: Date;
}

// @public
export interface PolicyEvents {
    listQueryResultsForManagementGroup(policyEventsResource: PolicyEventsResourceType, managementGroupName: string, options?: PolicyEventsListQueryResultsForManagementGroupOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForPolicyDefinition(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, policyDefinitionName: string, options?: PolicyEventsListQueryResultsForPolicyDefinitionOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForPolicySetDefinition(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, policySetDefinitionName: string, options?: PolicyEventsListQueryResultsForPolicySetDefinitionOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForResource(policyEventsResource: PolicyEventsResourceType, resourceId: string, options?: PolicyEventsListQueryResultsForResourceOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForResourceGroup(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, resourceGroupName: string, options?: PolicyEventsListQueryResultsForResourceGroupOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForResourceGroupLevelPolicyAssignment(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, resourceGroupName: string, policyAssignmentName: string, options?: PolicyEventsListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForSubscription(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, options?: PolicyEventsListQueryResultsForSubscriptionOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
    listQueryResultsForSubscriptionLevelPolicyAssignment(policyEventsResource: PolicyEventsResourceType, subscriptionId: string, policyAssignmentName: string, options?: PolicyEventsListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams): PagedAsyncIterableIterator<PolicyEvent>;
}

// @public
export interface PolicyEventsListQueryResultsForManagementGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForManagementGroupNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForManagementGroupResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForPolicyDefinitionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForPolicyDefinitionNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForPolicyDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForPolicyDefinitionResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForPolicySetDefinitionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForPolicySetDefinitionNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForPolicySetDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForPolicySetDefinitionResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceGroupLevelPolicyAssignmentNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForResourceGroupLevelPolicyAssignmentNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForResourceGroupLevelPolicyAssignmentResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForResourceGroupNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForResourceGroupResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForResourceNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForResourceResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForSubscriptionLevelPolicyAssignmentNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForSubscriptionLevelPolicyAssignmentNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForSubscriptionLevelPolicyAssignmentResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyEventsListQueryResultsForSubscriptionNextResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsListQueryResultsForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyEventsListQueryResultsForSubscriptionResponse = PolicyEventsQueryResults;

// @public
export interface PolicyEventsQueryResults {
    odataContext?: string;
    odataCount?: number;
    odataNextLink?: string;
    value?: PolicyEvent[];
}

// @public
export type PolicyEventsResourceType = string;

// @public
export interface PolicyGroupSummary {
    policyGroupName?: string;
    results?: SummaryResults;
}

// @public (undocumented)
export class PolicyInsightsClient extends coreClient.ServiceClient {
    // (undocumented)
    $host: string;
    constructor(credentials: coreAuth.TokenCredential, subscriptionId: string, options?: PolicyInsightsClientOptionalParams);
    constructor(credentials: coreAuth.TokenCredential, options?: PolicyInsightsClientOptionalParams);
    // (undocumented)
    attestations: Attestations;
    // (undocumented)
    componentPolicyStates: ComponentPolicyStates;
    // (undocumented)
    operations: Operations;
    // (undocumented)
    policyEvents: PolicyEvents;
    // (undocumented)
    policyMetadataOperations: PolicyMetadataOperations;
    // (undocumented)
    policyRestrictions: PolicyRestrictions;
    // (undocumented)
    policyStates: PolicyStates;
    // (undocumented)
    policyTrackedResources: PolicyTrackedResources;
    // (undocumented)
    remediations: Remediations;
    // (undocumented)
    subscriptionId?: string;
}

// @public
export interface PolicyInsightsClientOptionalParams extends coreClient.ServiceClientOptions {
    $host?: string;
    endpoint?: string;
}

// @public
export interface PolicyMetadata {
    readonly additionalContentUrl?: string;
    readonly category?: string;
    readonly description?: string;
    readonly id?: string;
    readonly metadata?: Record<string, unknown>;
    readonly metadataId?: string;
    readonly name?: string;
    readonly owner?: string;
    readonly requirements?: string;
    readonly title?: string;
    readonly type?: string;
}

// @public
export interface PolicyMetadataCollection {
    readonly nextLink?: string;
    readonly value?: SlimPolicyMetadata[];
}

// @public
export interface PolicyMetadataGetResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyMetadataGetResourceResponse = PolicyMetadata;

// @public
export interface PolicyMetadataListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyMetadataListNextResponse = PolicyMetadataCollection;

// @public
export interface PolicyMetadataListOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyMetadataListResponse = PolicyMetadataCollection;

// @public
export interface PolicyMetadataOperations {
    getResource(resourceName: string, options?: PolicyMetadataGetResourceOptionalParams): Promise<PolicyMetadataGetResourceResponse>;
    list(options?: PolicyMetadataListOptionalParams): PagedAsyncIterableIterator<SlimPolicyMetadata>;
}

// @public
export interface PolicyMetadataProperties extends PolicyMetadataSlimProperties {
    readonly description?: string;
    readonly requirements?: string;
}

// @public
export interface PolicyMetadataSlimProperties {
    readonly additionalContentUrl?: string;
    readonly category?: string;
    readonly metadata?: Record<string, unknown>;
    readonly metadataId?: string;
    readonly owner?: string;
    readonly title?: string;
}

// @public
export interface PolicyReference {
    readonly policyAssignmentId?: string;
    readonly policyDefinitionId?: string;
    readonly policyDefinitionReferenceId?: string;
    readonly policySetDefinitionId?: string;
}

// @public
export interface PolicyRestrictions {
    checkAtManagementGroupScope(managementGroupId: string, parameters: CheckManagementGroupRestrictionsRequest, options?: PolicyRestrictionsCheckAtManagementGroupScopeOptionalParams): Promise<PolicyRestrictionsCheckAtManagementGroupScopeResponse>;
    checkAtResourceGroupScope(resourceGroupName: string, parameters: CheckRestrictionsRequest, options?: PolicyRestrictionsCheckAtResourceGroupScopeOptionalParams): Promise<PolicyRestrictionsCheckAtResourceGroupScopeResponse>;
    checkAtSubscriptionScope(parameters: CheckRestrictionsRequest, options?: PolicyRestrictionsCheckAtSubscriptionScopeOptionalParams): Promise<PolicyRestrictionsCheckAtSubscriptionScopeResponse>;
}

// @public
export interface PolicyRestrictionsCheckAtManagementGroupScopeOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyRestrictionsCheckAtManagementGroupScopeResponse = CheckRestrictionsResult;

// @public
export interface PolicyRestrictionsCheckAtResourceGroupScopeOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyRestrictionsCheckAtResourceGroupScopeResponse = CheckRestrictionsResult;

// @public
export interface PolicyRestrictionsCheckAtSubscriptionScopeOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyRestrictionsCheckAtSubscriptionScopeResponse = CheckRestrictionsResult;

// @public
export interface PolicyState {
    [property: string]: any;
    complianceState?: string;
    components?: ComponentStateDetails[];
    effectiveParameters?: string;
    isCompliant?: boolean;
    managementGroupIds?: string;
    odataContext?: string;
    odataId?: string;
    policyAssignmentId?: string;
    policyAssignmentName?: string;
    policyAssignmentOwner?: string;
    policyAssignmentParameters?: string;
    policyAssignmentScope?: string;
    readonly policyAssignmentVersion?: string;
    policyDefinitionAction?: string;
    policyDefinitionCategory?: string;
    policyDefinitionGroupNames?: string[];
    policyDefinitionId?: string;
    policyDefinitionName?: string;
    policyDefinitionReferenceId?: string;
    readonly policyDefinitionVersion?: string;
    policyEvaluationDetails?: PolicyEvaluationDetails;
    policySetDefinitionCategory?: string;
    policySetDefinitionId?: string;
    policySetDefinitionName?: string;
    policySetDefinitionOwner?: string;
    policySetDefinitionParameters?: string;
    readonly policySetDefinitionVersion?: string;
    resourceGroup?: string;
    resourceId?: string;
    resourceLocation?: string;
    resourceTags?: string;
    resourceType?: string;
    subscriptionId?: string;
    timestamp?: Date;
}

// @public
export interface PolicyStates {
    beginTriggerResourceGroupEvaluation(subscriptionId: string, resourceGroupName: string, options?: PolicyStatesTriggerResourceGroupEvaluationOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    beginTriggerResourceGroupEvaluationAndWait(subscriptionId: string, resourceGroupName: string, options?: PolicyStatesTriggerResourceGroupEvaluationOptionalParams): Promise<void>;
    beginTriggerSubscriptionEvaluation(subscriptionId: string, options?: PolicyStatesTriggerSubscriptionEvaluationOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    beginTriggerSubscriptionEvaluationAndWait(subscriptionId: string, options?: PolicyStatesTriggerSubscriptionEvaluationOptionalParams): Promise<void>;
    listQueryResultsForManagementGroup(policyStatesResource: PolicyStatesResource, managementGroupName: string, options?: PolicyStatesListQueryResultsForManagementGroupOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForPolicyDefinition(policyStatesResource: PolicyStatesResource, subscriptionId: string, policyDefinitionName: string, options?: PolicyStatesListQueryResultsForPolicyDefinitionOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForPolicySetDefinition(policyStatesResource: PolicyStatesResource, subscriptionId: string, policySetDefinitionName: string, options?: PolicyStatesListQueryResultsForPolicySetDefinitionOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForResource(policyStatesResource: PolicyStatesResource, resourceId: string, options?: PolicyStatesListQueryResultsForResourceOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForResourceGroup(policyStatesResource: PolicyStatesResource, subscriptionId: string, resourceGroupName: string, options?: PolicyStatesListQueryResultsForResourceGroupOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForResourceGroupLevelPolicyAssignment(policyStatesResource: PolicyStatesResource, subscriptionId: string, resourceGroupName: string, policyAssignmentName: string, options?: PolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForSubscription(policyStatesResource: PolicyStatesResource, subscriptionId: string, options?: PolicyStatesListQueryResultsForSubscriptionOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    listQueryResultsForSubscriptionLevelPolicyAssignment(policyStatesResource: PolicyStatesResource, subscriptionId: string, policyAssignmentName: string, options?: PolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams): PagedAsyncIterableIterator<PolicyState>;
    summarizeForManagementGroup(policyStatesSummaryResource: PolicyStatesSummaryResourceType, managementGroupName: string, options?: PolicyStatesSummarizeForManagementGroupOptionalParams): Promise<PolicyStatesSummarizeForManagementGroupResponse>;
    summarizeForPolicyDefinition(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, policyDefinitionName: string, options?: PolicyStatesSummarizeForPolicyDefinitionOptionalParams): Promise<PolicyStatesSummarizeForPolicyDefinitionResponse>;
    summarizeForPolicySetDefinition(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, policySetDefinitionName: string, options?: PolicyStatesSummarizeForPolicySetDefinitionOptionalParams): Promise<PolicyStatesSummarizeForPolicySetDefinitionResponse>;
    summarizeForResource(policyStatesSummaryResource: PolicyStatesSummaryResourceType, resourceId: string, options?: PolicyStatesSummarizeForResourceOptionalParams): Promise<PolicyStatesSummarizeForResourceResponse>;
    summarizeForResourceGroup(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, resourceGroupName: string, options?: PolicyStatesSummarizeForResourceGroupOptionalParams): Promise<PolicyStatesSummarizeForResourceGroupResponse>;
    summarizeForResourceGroupLevelPolicyAssignment(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, resourceGroupName: string, policyAssignmentName: string, options?: PolicyStatesSummarizeForResourceGroupLevelPolicyAssignmentOptionalParams): Promise<PolicyStatesSummarizeForResourceGroupLevelPolicyAssignmentResponse>;
    summarizeForSubscription(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, options?: PolicyStatesSummarizeForSubscriptionOptionalParams): Promise<PolicyStatesSummarizeForSubscriptionResponse>;
    summarizeForSubscriptionLevelPolicyAssignment(policyStatesSummaryResource: PolicyStatesSummaryResourceType, subscriptionId: string, policyAssignmentName: string, options?: PolicyStatesSummarizeForSubscriptionLevelPolicyAssignmentOptionalParams): Promise<PolicyStatesSummarizeForSubscriptionLevelPolicyAssignmentResponse>;
}

// @public
export interface PolicyStatesListQueryResultsForManagementGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForManagementGroupNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForManagementGroupResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForPolicyDefinitionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForPolicyDefinitionNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForPolicyDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForPolicyDefinitionResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForPolicySetDefinitionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForPolicySetDefinitionNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForPolicySetDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForPolicySetDefinitionResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForResourceGroupLevelPolicyAssignmentResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForResourceGroupNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForResourceGroupResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForResourceNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForResourceResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForSubscriptionLevelPolicyAssignmentResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyStatesListQueryResultsForSubscriptionNextResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesListQueryResultsForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesListQueryResultsForSubscriptionResponse = PolicyStatesQueryResults;

// @public
export interface PolicyStatesQueryResults {
    odataContext?: string;
    odataCount?: number;
    odataNextLink?: string;
    value?: PolicyState[];
}

// @public
export type PolicyStatesResource = string;

// @public
export interface PolicyStatesSummarizeForManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForManagementGroupResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForPolicyDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForPolicyDefinitionResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForPolicySetDefinitionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForPolicySetDefinitionResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForResourceGroupLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForResourceGroupLevelPolicyAssignmentResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForResourceGroupResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForResourceResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForSubscriptionLevelPolicyAssignmentOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForSubscriptionLevelPolicyAssignmentResponse = SummarizeResults;

// @public
export interface PolicyStatesSummarizeForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyStatesSummarizeForSubscriptionResponse = SummarizeResults;

// @public
export type PolicyStatesSummaryResourceType = string;

// @public
export interface PolicyStatesTriggerResourceGroupEvaluationOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export interface PolicyStatesTriggerSubscriptionEvaluationOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export interface PolicyTrackedResource {
    readonly createdBy?: TrackedResourceModificationDetails;
    readonly lastModifiedBy?: TrackedResourceModificationDetails;
    readonly lastUpdateUtc?: Date;
    readonly policyDetails?: PolicyDetails;
    readonly trackedResourceId?: string;
}

// @public
export interface PolicyTrackedResources {
    listQueryResultsForManagementGroup(managementGroupName: string, policyTrackedResourcesResource: PolicyTrackedResourcesResourceType, options?: PolicyTrackedResourcesListQueryResultsForManagementGroupOptionalParams): PagedAsyncIterableIterator<PolicyTrackedResource>;
    listQueryResultsForResource(resourceId: string, policyTrackedResourcesResource: PolicyTrackedResourcesResourceType, options?: PolicyTrackedResourcesListQueryResultsForResourceOptionalParams): PagedAsyncIterableIterator<PolicyTrackedResource>;
    listQueryResultsForResourceGroup(resourceGroupName: string, policyTrackedResourcesResource: PolicyTrackedResourcesResourceType, options?: PolicyTrackedResourcesListQueryResultsForResourceGroupOptionalParams): PagedAsyncIterableIterator<PolicyTrackedResource>;
    listQueryResultsForSubscription(policyTrackedResourcesResource: PolicyTrackedResourcesResourceType, options?: PolicyTrackedResourcesListQueryResultsForSubscriptionOptionalParams): PagedAsyncIterableIterator<PolicyTrackedResource>;
}

// @public
export interface PolicyTrackedResourcesListQueryResultsForManagementGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyTrackedResourcesListQueryResultsForManagementGroupNextResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyTrackedResourcesListQueryResultsForManagementGroupResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyTrackedResourcesListQueryResultsForResourceGroupNextResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyTrackedResourcesListQueryResultsForResourceGroupResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyTrackedResourcesListQueryResultsForResourceNextResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyTrackedResourcesListQueryResultsForResourceResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type PolicyTrackedResourcesListQueryResultsForSubscriptionNextResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesListQueryResultsForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type PolicyTrackedResourcesListQueryResultsForSubscriptionResponse = PolicyTrackedResourcesQueryResults;

// @public
export interface PolicyTrackedResourcesQueryResults {
    readonly nextLink?: string;
    readonly value?: PolicyTrackedResource[];
}

// @public
export type PolicyTrackedResourcesResourceType = string;

// @public
export interface QueryFailure {
    error?: QueryFailureError;
}

// @public
export interface QueryFailureError {
    readonly code?: string;
    readonly message?: string;
}

// @public
export interface QueryOptions {
    apply?: string;
    expand?: string;
    filter?: string;
    from?: Date;
    orderBy?: string;
    select?: string;
    skipToken?: string;
    to?: Date;
    top?: number;
}

// @public
export interface Remediation {
    readonly correlationId?: string;
    readonly createdOn?: Date;
    readonly deploymentStatus?: RemediationDeploymentSummary;
    failureThreshold?: RemediationPropertiesFailureThreshold;
    filters?: RemediationFilters;
    readonly id?: string;
    readonly lastUpdatedOn?: Date;
    readonly name?: string;
    parallelDeployments?: number;
    policyAssignmentId?: string;
    policyDefinitionReferenceId?: string;
    readonly provisioningState?: string;
    resourceCount?: number;
    resourceDiscoveryMode?: ResourceDiscoveryMode;
    readonly statusMessage?: string;
    readonly systemData?: SystemData;
    readonly type?: string;
}

// @public
export interface RemediationDeployment {
    readonly createdOn?: Date;
    readonly deploymentId?: string;
    readonly error?: ErrorDefinition;
    readonly lastUpdatedOn?: Date;
    readonly remediatedResourceId?: string;
    readonly resourceLocation?: string;
    readonly status?: string;
}

// @public
export interface RemediationDeploymentsListResult {
    readonly nextLink?: string;
    readonly value?: RemediationDeployment[];
}

// @public
export interface RemediationDeploymentSummary {
    readonly failedDeployments?: number;
    readonly successfulDeployments?: number;
    readonly totalDeployments?: number;
}

// @public
export interface RemediationFilters {
    locations?: string[];
    resourceIds?: string[];
}

// @public
export interface RemediationListResult {
    readonly nextLink?: string;
    readonly value?: Remediation[];
}

// @public
export interface RemediationPropertiesFailureThreshold {
    percentage?: number;
}

// @public
export interface Remediations {
    cancelAtManagementGroup(managementGroupId: string, remediationName: string, options?: RemediationsCancelAtManagementGroupOptionalParams): Promise<RemediationsCancelAtManagementGroupResponse>;
    cancelAtResource(resourceId: string, remediationName: string, options?: RemediationsCancelAtResourceOptionalParams): Promise<RemediationsCancelAtResourceResponse>;
    cancelAtResourceGroup(resourceGroupName: string, remediationName: string, options?: RemediationsCancelAtResourceGroupOptionalParams): Promise<RemediationsCancelAtResourceGroupResponse>;
    cancelAtSubscription(remediationName: string, options?: RemediationsCancelAtSubscriptionOptionalParams): Promise<RemediationsCancelAtSubscriptionResponse>;
    createOrUpdateAtManagementGroup(managementGroupId: string, remediationName: string, parameters: Remediation, options?: RemediationsCreateOrUpdateAtManagementGroupOptionalParams): Promise<RemediationsCreateOrUpdateAtManagementGroupResponse>;
    createOrUpdateAtResource(resourceId: string, remediationName: string, parameters: Remediation, options?: RemediationsCreateOrUpdateAtResourceOptionalParams): Promise<RemediationsCreateOrUpdateAtResourceResponse>;
    createOrUpdateAtResourceGroup(resourceGroupName: string, remediationName: string, parameters: Remediation, options?: RemediationsCreateOrUpdateAtResourceGroupOptionalParams): Promise<RemediationsCreateOrUpdateAtResourceGroupResponse>;
    createOrUpdateAtSubscription(remediationName: string, parameters: Remediation, options?: RemediationsCreateOrUpdateAtSubscriptionOptionalParams): Promise<RemediationsCreateOrUpdateAtSubscriptionResponse>;
    deleteAtManagementGroup(managementGroupId: string, remediationName: string, options?: RemediationsDeleteAtManagementGroupOptionalParams): Promise<RemediationsDeleteAtManagementGroupResponse>;
    deleteAtResource(resourceId: string, remediationName: string, options?: RemediationsDeleteAtResourceOptionalParams): Promise<RemediationsDeleteAtResourceResponse>;
    deleteAtResourceGroup(resourceGroupName: string, remediationName: string, options?: RemediationsDeleteAtResourceGroupOptionalParams): Promise<RemediationsDeleteAtResourceGroupResponse>;
    deleteAtSubscription(remediationName: string, options?: RemediationsDeleteAtSubscriptionOptionalParams): Promise<RemediationsDeleteAtSubscriptionResponse>;
    getAtManagementGroup(managementGroupId: string, remediationName: string, options?: RemediationsGetAtManagementGroupOptionalParams): Promise<RemediationsGetAtManagementGroupResponse>;
    getAtResource(resourceId: string, remediationName: string, options?: RemediationsGetAtResourceOptionalParams): Promise<RemediationsGetAtResourceResponse>;
    getAtResourceGroup(resourceGroupName: string, remediationName: string, options?: RemediationsGetAtResourceGroupOptionalParams): Promise<RemediationsGetAtResourceGroupResponse>;
    getAtSubscription(remediationName: string, options?: RemediationsGetAtSubscriptionOptionalParams): Promise<RemediationsGetAtSubscriptionResponse>;
    listDeploymentsAtManagementGroup(managementGroupId: string, remediationName: string, options?: RemediationsListDeploymentsAtManagementGroupOptionalParams): PagedAsyncIterableIterator<RemediationDeployment>;
    listDeploymentsAtResource(resourceId: string, remediationName: string, options?: RemediationsListDeploymentsAtResourceOptionalParams): PagedAsyncIterableIterator<RemediationDeployment>;
    listDeploymentsAtResourceGroup(resourceGroupName: string, remediationName: string, options?: RemediationsListDeploymentsAtResourceGroupOptionalParams): PagedAsyncIterableIterator<RemediationDeployment>;
    listDeploymentsAtSubscription(remediationName: string, options?: RemediationsListDeploymentsAtSubscriptionOptionalParams): PagedAsyncIterableIterator<RemediationDeployment>;
    listForManagementGroup(managementGroupId: string, options?: RemediationsListForManagementGroupOptionalParams): PagedAsyncIterableIterator<Remediation>;
    listForResource(resourceId: string, options?: RemediationsListForResourceOptionalParams): PagedAsyncIterableIterator<Remediation>;
    listForResourceGroup(resourceGroupName: string, options?: RemediationsListForResourceGroupOptionalParams): PagedAsyncIterableIterator<Remediation>;
    listForSubscription(options?: RemediationsListForSubscriptionOptionalParams): PagedAsyncIterableIterator<Remediation>;
}

// @public
export interface RemediationsCancelAtManagementGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCancelAtManagementGroupResponse = Remediation;

// @public
export interface RemediationsCancelAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCancelAtResourceGroupResponse = Remediation;

// @public
export interface RemediationsCancelAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCancelAtResourceResponse = Remediation;

// @public
export interface RemediationsCancelAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCancelAtSubscriptionResponse = Remediation;

// @public
export interface RemediationsCreateOrUpdateAtManagementGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCreateOrUpdateAtManagementGroupResponse = Remediation;

// @public
export interface RemediationsCreateOrUpdateAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCreateOrUpdateAtResourceGroupResponse = Remediation;

// @public
export interface RemediationsCreateOrUpdateAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCreateOrUpdateAtResourceResponse = Remediation;

// @public
export interface RemediationsCreateOrUpdateAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsCreateOrUpdateAtSubscriptionResponse = Remediation;

// @public
export interface RemediationsDeleteAtManagementGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsDeleteAtManagementGroupResponse = Remediation;

// @public
export interface RemediationsDeleteAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsDeleteAtResourceGroupResponse = Remediation;

// @public
export interface RemediationsDeleteAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsDeleteAtResourceResponse = Remediation;

// @public
export interface RemediationsDeleteAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsDeleteAtSubscriptionResponse = Remediation;

// @public
export interface RemediationsGetAtManagementGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsGetAtManagementGroupResponse = Remediation;

// @public
export interface RemediationsGetAtResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsGetAtResourceGroupResponse = Remediation;

// @public
export interface RemediationsGetAtResourceOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsGetAtResourceResponse = Remediation;

// @public
export interface RemediationsGetAtSubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsGetAtSubscriptionResponse = Remediation;

// @public
export interface RemediationsListDeploymentsAtManagementGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListDeploymentsAtManagementGroupNextResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListDeploymentsAtManagementGroupResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListDeploymentsAtResourceGroupNextResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListDeploymentsAtResourceGroupResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListDeploymentsAtResourceNextResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListDeploymentsAtResourceResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListDeploymentsAtSubscriptionNextResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListDeploymentsAtSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListDeploymentsAtSubscriptionResponse = RemediationDeploymentsListResult;

// @public
export interface RemediationsListForManagementGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListForManagementGroupNextResponse = RemediationListResult;

// @public
export interface RemediationsListForManagementGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListForManagementGroupResponse = RemediationListResult;

// @public
export interface RemediationsListForResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListForResourceGroupNextResponse = RemediationListResult;

// @public
export interface RemediationsListForResourceGroupOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListForResourceGroupResponse = RemediationListResult;

// @public
export interface RemediationsListForResourceNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListForResourceNextResponse = RemediationListResult;

// @public
export interface RemediationsListForResourceOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListForResourceResponse = RemediationListResult;

// @public
export interface RemediationsListForSubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RemediationsListForSubscriptionNextResponse = RemediationListResult;

// @public
export interface RemediationsListForSubscriptionOptionalParams extends coreClient.OperationOptions {
    queryOptions?: QueryOptions;
}

// @public
export type RemediationsListForSubscriptionResponse = RemediationListResult;

// @public
export interface Resource {
    readonly id?: string;
    readonly name?: string;
    readonly type?: string;
}

// @public
export type ResourceDiscoveryMode = string;

// @public
export interface SlimPolicyMetadata {
    readonly additionalContentUrl?: string;
    readonly category?: string;
    readonly id?: string;
    readonly metadata?: Record<string, unknown>;
    readonly metadataId?: string;
    readonly name?: string;
    readonly owner?: string;
    readonly title?: string;
    readonly type?: string;
}

// @public
export interface SummarizeResults {
    odataContext?: string;
    odataCount?: number;
    value?: Summary[];
}

// @public
export interface Summary {
    odataContext?: string;
    odataId?: string;
    policyAssignments?: PolicyAssignmentSummary[];
    results?: SummaryResults;
}

// @public
export interface SummaryResults {
    nonCompliantPolicies?: number;
    nonCompliantResources?: number;
    policyDetails?: ComplianceDetail[];
    policyGroupDetails?: ComplianceDetail[];
    queryResultsUri?: string;
    resourceDetails?: ComplianceDetail[];
}

// @public
export interface SystemData {
    createdAt?: Date;
    createdBy?: string;
    createdByType?: CreatedByType;
    lastModifiedAt?: Date;
    lastModifiedBy?: string;
    lastModifiedByType?: CreatedByType;
}

// @public
export interface TrackedResourceModificationDetails {
    readonly deploymentId?: string;
    readonly deploymentTime?: Date;
    readonly policyDetails?: PolicyDetails;
}

// @public
export interface TypedErrorInfo {
    readonly info?: any;
    readonly type?: string;
}

// (No @packageDocumentation comment for this package)

```
