import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Management Agents in Oracle Cloud Infrastructure Management Agent service.
 *
 * Returns a list of Management Agents.
 * If no explicit page size limit is specified, it will default to 1000.
 * The response is limited to maximum 1000 records when compartmentIdInSubtree is true.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testManagementAgents = oci.managementagent.getManagementAgents({
 *     compartmentId: compartmentId,
 *     accessLevel: managementAgentAccessLevel,
 *     availabilityStatus: managementAgentAvailabilityStatus,
 *     compartmentIdInSubtree: managementAgentCompartmentIdInSubtree === "true",
 *     dataSourceNames: testManagementAgentDataSource.name,
 *     dataSourceType: managementAgentDataSourceType,
 *     displayName: managementAgentDisplayName,
 *     gatewayIds: testGateway.id,
 *     hostId: testHost.id,
 *     waitForHostId: 10,
 *     installType: managementAgentInstallType,
 *     isCustomerDeployed: managementAgentIsCustomerDeployed === "true",
 *     platformTypes: managementAgentPlatformType,
 *     pluginNames: managementAgentPluginName,
 *     state: managementAgentState,
 *     versions: managementAgentVersion,
 * });
 * ```
 */
export declare function getManagementAgents(args: GetManagementAgentsArgs, opts?: pulumi.InvokeOptions): Promise<GetManagementAgentsResult>;
/**
 * A collection of arguments for invoking getManagementAgents.
 */
export interface GetManagementAgentsArgs {
    /**
     * When the value is "ACCESSIBLE", insufficient permissions for a compartment will filter out resources in that compartment without rejecting the request.
     */
    accessLevel?: string;
    /**
     * Filter to return only Management Agents in the particular availability status.
     */
    availabilityStatus?: string;
    /**
     * The OCID of the compartment to which a request will be scoped.
     */
    compartmentId: string;
    /**
     * if set to true then it fetches resources for all compartments where user has access to else only on the compartment specified.
     */
    compartmentIdInSubtree?: boolean;
    /**
     * Unique name of the dataSource.
     */
    dataSourceNames?: string[];
    /**
     * The type of the dataSource.
     */
    dataSourceType?: string;
    /**
     * Filter to return only Management Agents having the particular display name.
     */
    displayName?: string;
    filters?: inputs.ManagementAgent.GetManagementAgentsFilter[];
    /**
     * Filter to return only results having the particular gatewayId.
     */
    gatewayIds?: string[];
    /**
     * Filter to return only Management Agents having the particular agent host id.
     */
    hostId?: string;
    /**
     * A filter to return either agents or gateway types depending upon install type selected by user. By default both install type will be returned.
     */
    installType?: string;
    /**
     * true, if the agent image is manually downloaded and installed. false, if the agent is deployed as a plugin in Oracle Cloud Agent.
     */
    isCustomerDeployed?: boolean;
    /**
     * Array of PlatformTypes to return only results having the particular platform types. Example: ["LINUX"]
     */
    platformTypes?: string[];
    /**
     * Array of pluginName to return only Management Agents having the particular Plugins installed. A special pluginName of 'None' can be provided and this will return only Management Agents having no plugin installed. Example: ["PluginA"]
     */
    pluginNames?: string[];
    /**
     * Filter to return only Management Agents in the particular lifecycle state.
     */
    state?: string;
    /**
     * Array of versions to return only Management Agents having the particular agent versions. Example: ["202020.0101","210201.0513"]
     */
    versions?: string[];
    /**
     * When hostId argument is set, the data source will wait for the given period of time (in minutes) for this hostId to become available. This can be used when compute instance with Management Agent has been recently created.
     */
    waitForHostId?: number;
}
/**
 * A collection of values returned by getManagementAgents.
 */
export interface GetManagementAgentsResult {
    readonly accessLevel?: string;
    /**
     * The current availability status of managementAgent
     */
    readonly availabilityStatus?: string;
    /**
     * Compartment Identifier
     */
    readonly compartmentId: string;
    readonly compartmentIdInSubtree?: boolean;
    readonly dataSourceNames?: string[];
    readonly dataSourceType?: string;
    /**
     * Management Agent Name
     */
    readonly displayName?: string;
    readonly filters?: outputs.ManagementAgent.GetManagementAgentsFilter[];
    readonly gatewayIds?: string[];
    /**
     * Host resource ocid
     */
    readonly hostId?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The install type, either AGENT or GATEWAY
     */
    readonly installType?: string;
    /**
     * true, if the agent image is manually downloaded and installed. false, if the agent is deployed as a plugin in Oracle Cloud Agent.
     */
    readonly isCustomerDeployed?: boolean;
    /**
     * The list of management_agents.
     */
    readonly managementAgents: outputs.ManagementAgent.GetManagementAgentsManagementAgent[];
    /**
     * Platform Type
     */
    readonly platformTypes?: string[];
    /**
     * Management Agent Plugin Name
     */
    readonly pluginNames?: string[];
    /**
     * The current state of managementAgent
     */
    readonly state?: string;
    /**
     * Management Agent Version
     */
    readonly versions?: string[];
    readonly waitForHostId?: number;
}
/**
 * This data source provides the list of Management Agents in Oracle Cloud Infrastructure Management Agent service.
 *
 * Returns a list of Management Agents.
 * If no explicit page size limit is specified, it will default to 1000.
 * The response is limited to maximum 1000 records when compartmentIdInSubtree is true.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testManagementAgents = oci.managementagent.getManagementAgents({
 *     compartmentId: compartmentId,
 *     accessLevel: managementAgentAccessLevel,
 *     availabilityStatus: managementAgentAvailabilityStatus,
 *     compartmentIdInSubtree: managementAgentCompartmentIdInSubtree === "true",
 *     dataSourceNames: testManagementAgentDataSource.name,
 *     dataSourceType: managementAgentDataSourceType,
 *     displayName: managementAgentDisplayName,
 *     gatewayIds: testGateway.id,
 *     hostId: testHost.id,
 *     waitForHostId: 10,
 *     installType: managementAgentInstallType,
 *     isCustomerDeployed: managementAgentIsCustomerDeployed === "true",
 *     platformTypes: managementAgentPlatformType,
 *     pluginNames: managementAgentPluginName,
 *     state: managementAgentState,
 *     versions: managementAgentVersion,
 * });
 * ```
 */
export declare function getManagementAgentsOutput(args: GetManagementAgentsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetManagementAgentsResult>;
/**
 * A collection of arguments for invoking getManagementAgents.
 */
export interface GetManagementAgentsOutputArgs {
    /**
     * When the value is "ACCESSIBLE", insufficient permissions for a compartment will filter out resources in that compartment without rejecting the request.
     */
    accessLevel?: pulumi.Input<string | undefined>;
    /**
     * Filter to return only Management Agents in the particular availability status.
     */
    availabilityStatus?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the compartment to which a request will be scoped.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * if set to true then it fetches resources for all compartments where user has access to else only on the compartment specified.
     */
    compartmentIdInSubtree?: pulumi.Input<boolean | undefined>;
    /**
     * Unique name of the dataSource.
     */
    dataSourceNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The type of the dataSource.
     */
    dataSourceType?: pulumi.Input<string | undefined>;
    /**
     * Filter to return only Management Agents having the particular display name.
     */
    displayName?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.ManagementAgent.GetManagementAgentsFilterArgs>[] | undefined>;
    /**
     * Filter to return only results having the particular gatewayId.
     */
    gatewayIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Filter to return only Management Agents having the particular agent host id.
     */
    hostId?: pulumi.Input<string | undefined>;
    /**
     * A filter to return either agents or gateway types depending upon install type selected by user. By default both install type will be returned.
     */
    installType?: pulumi.Input<string | undefined>;
    /**
     * true, if the agent image is manually downloaded and installed. false, if the agent is deployed as a plugin in Oracle Cloud Agent.
     */
    isCustomerDeployed?: pulumi.Input<boolean | undefined>;
    /**
     * Array of PlatformTypes to return only results having the particular platform types. Example: ["LINUX"]
     */
    platformTypes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Array of pluginName to return only Management Agents having the particular Plugins installed. A special pluginName of 'None' can be provided and this will return only Management Agents having no plugin installed. Example: ["PluginA"]
     */
    pluginNames?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Filter to return only Management Agents in the particular lifecycle state.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Array of versions to return only Management Agents having the particular agent versions. Example: ["202020.0101","210201.0513"]
     */
    versions?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * When hostId argument is set, the data source will wait for the given period of time (in minutes) for this hostId to become available. This can be used when compute instance with Management Agent has been recently created.
     */
    waitForHostId?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=getManagementAgents.d.ts.map