import * as pulumi from "@pulumi/pulumi";
/**
 * This data source provides details about a specific Resource Availability resource in Oracle Cloud Infrastructure Limits service.
 *
 * For a given compartmentId, resource limit name, and scope, returns the following:
 *   * The number of available resources associated with the given limit.
 *   * The usage in the selected compartment for the given limit.
 *     If the subscription ID is provided, then usage for resource created in that subscription will be returned.
 *     Note that not all resource limits support this API. If the value is not available, the API returns a 404 response.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testResourceAvailability = oci.limits.getResourceAvailability({
 *     compartmentId: tenancyOcid,
 *     limitName: resourceAvailabilityLimitName,
 *     serviceName: testService.name,
 *     availabilityDomain: resourceAvailabilityAvailabilityDomain,
 *     externalLocation: resourceAvailabilityExternalLocation,
 *     subscriptionId: testSubscription.id,
 * });
 * ```
 */
export declare function getResourceAvailability(args: GetResourceAvailabilityArgs, opts?: pulumi.InvokeOptions): Promise<GetResourceAvailabilityResult>;
/**
 * A collection of arguments for invoking getResourceAvailability.
 */
export interface GetResourceAvailabilityArgs {
    /**
     * This field is mandatory if the scopeType of the target resource limit is AD. Otherwise, this field should be omitted. If the above requirements are not met, the API returns a 400 - InvalidParameter response.
     */
    availabilityDomain?: string;
    /**
     * The OCID of the compartment for which data is being fetched.
     */
    compartmentId: string;
    /**
     * External cloud provider location
     */
    externalLocation?: string;
    /**
     * The limit name for which to fetch the data.
     */
    limitName: string;
    /**
     * The service name of the target quota.
     */
    serviceName: string;
    /**
     * The subscription OCID assigned to the tenant.
     */
    subscriptionId?: string;
}
/**
 * A collection of values returned by getResourceAvailability.
 */
export interface GetResourceAvailabilityResult {
    readonly availabilityDomain?: string;
    /**
     * The count of available resources. To support resources with fractional counts, the field rounds down to the nearest integer.
     */
    readonly available: string;
    readonly compartmentId: string;
    /**
     * The effective quota value for the given compartment. This field is only present if there is a current quota policy affecting the current resource in the target region or availability domain.
     */
    readonly effectiveQuotaValue: number;
    readonly externalLocation?: string;
    /**
     * The most accurate count of available resources.
     */
    readonly fractionalAvailability: number;
    /**
     * The current most accurate usage in the given compartment.
     */
    readonly fractionalUsage: number;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly limitName: string;
    readonly serviceName: string;
    readonly subscriptionId?: string;
    /**
     * The current usage in the given compartment. To support resources with fractional counts, the field rounds up to the nearest integer.
     */
    readonly used: string;
}
/**
 * This data source provides details about a specific Resource Availability resource in Oracle Cloud Infrastructure Limits service.
 *
 * For a given compartmentId, resource limit name, and scope, returns the following:
 *   * The number of available resources associated with the given limit.
 *   * The usage in the selected compartment for the given limit.
 *     If the subscription ID is provided, then usage for resource created in that subscription will be returned.
 *     Note that not all resource limits support this API. If the value is not available, the API returns a 404 response.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testResourceAvailability = oci.limits.getResourceAvailability({
 *     compartmentId: tenancyOcid,
 *     limitName: resourceAvailabilityLimitName,
 *     serviceName: testService.name,
 *     availabilityDomain: resourceAvailabilityAvailabilityDomain,
 *     externalLocation: resourceAvailabilityExternalLocation,
 *     subscriptionId: testSubscription.id,
 * });
 * ```
 */
export declare function getResourceAvailabilityOutput(args: GetResourceAvailabilityOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetResourceAvailabilityResult>;
/**
 * A collection of arguments for invoking getResourceAvailability.
 */
export interface GetResourceAvailabilityOutputArgs {
    /**
     * This field is mandatory if the scopeType of the target resource limit is AD. Otherwise, this field should be omitted. If the above requirements are not met, the API returns a 400 - InvalidParameter response.
     */
    availabilityDomain?: pulumi.Input<string | undefined>;
    /**
     * The OCID of the compartment for which data is being fetched.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * External cloud provider location
     */
    externalLocation?: pulumi.Input<string | undefined>;
    /**
     * The limit name for which to fetch the data.
     */
    limitName: pulumi.Input<string>;
    /**
     * The service name of the target quota.
     */
    serviceName: pulumi.Input<string>;
    /**
     * The subscription OCID assigned to the tenant.
     */
    subscriptionId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getResourceAvailability.d.ts.map