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 Listings in Oracle Cloud Infrastructure Marketplace service.
 *
 * Gets a list of listings from Oracle Cloud Infrastructure Marketplace by searching keywords and
 * filtering according to listing attributes.
 *
 * If you plan to launch an instance from an image listing, you must first subscribe to the listing. When
 * you launch the instance, you also need to provide the image ID of the listing resource version that you want.
 *
 * Subscribing to the listing requires you to first get a signature from the terms of use agreement for the
 * listing resource version. To get the signature, issue a [GetAppCatalogListingAgreements](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersionAgreements/GetAppCatalogListingAgreements) API call.
 * The [AppCatalogListingResourceVersionAgreements](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersionAgreements) object, including
 * its signature, is returned in the response. With the signature for the terms of use agreement for the desired
 * listing resource version, create a subscription by issuing a
 * [CreateAppCatalogSubscription](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogSubscription/CreateAppCatalogSubscription) API call.
 *
 * To get the image ID to launch an instance, issue a [GetAppCatalogListingResourceVersion](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersion/GetAppCatalogListingResourceVersion) API call.
 * Lastly, to launch the instance, use the image ID of the listing resource version to issue a [LaunchInstance](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Instance/LaunchInstance) API call.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testListings = oci.marketplace.getListings({
 *     categories: listingCategory,
 *     compartmentId: compartmentId,
 *     imageId: testImage.id,
 *     isFeatured: listingIsFeatured === "true",
 *     listingId: testListing.id,
 *     listingTypes: listingListingTypes,
 *     names: listingName,
 *     operatingSystems: listingOperatingSystems,
 *     packageType: listingPackageType,
 *     pricings: listingPricing,
 *     publisherId: testPublisher.id,
 * });
 * ```
 */
export declare function getListings(args?: GetListingsArgs, opts?: pulumi.InvokeOptions): Promise<GetListingsResult>;
/**
 * A collection of arguments for invoking getListings.
 */
export interface GetListingsArgs {
    /**
     * Name of the product category or categories. If you specify multiple categories, then Marketplace returns any listing with one or more matching categories.
     */
    categories?: string[];
    /**
     * The unique identifier for the compartment. It is mandatory when used in non-commercial realms.
     */
    compartmentId?: string;
    filters?: inputs.Marketplace.GetListingsFilter[];
    /**
     * The image identifier of the listing.
     */
    imageId?: string;
    /**
     * Indicates whether to show only featured listings. If this is set to `false` or is omitted, then all listings will be returned.
     */
    isFeatured?: boolean;
    /**
     * The unique identifier for the listing.
     */
    listingId?: string;
    /**
     * The type of the listing.
     */
    listingTypes?: string[];
    /**
     * The name of the listing.
     */
    names?: string[];
    /**
     * The operating system of the listing.
     */
    operatingSystems?: string[];
    /**
     * A filter to return only packages that match the given package type exactly.
     */
    packageType?: string;
    /**
     * Name of the pricing type. If multiple pricing types are provided, then any listing with one or more matching pricing models will be returned.
     */
    pricings?: string[];
    /**
     * Limit results to just this publisher.
     */
    publisherId?: string;
}
/**
 * A collection of values returned by getListings.
 */
export interface GetListingsResult {
    readonly categories?: string[];
    readonly compartmentId?: string;
    readonly filters?: outputs.Marketplace.GetListingsFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly imageId?: string;
    /**
     * Indicates whether the listing is included in Featured Listings.
     */
    readonly isFeatured?: boolean;
    readonly listingId?: string;
    readonly listingTypes?: string[];
    /**
     * The list of listings.
     */
    readonly listings: outputs.Marketplace.GetListingsListing[];
    /**
     * Text that describes the resource.
     */
    readonly names?: string[];
    readonly operatingSystems?: string[];
    /**
     * The listing's package type.
     */
    readonly packageType?: string;
    readonly pricings?: string[];
    readonly publisherId?: string;
}
/**
 * This data source provides the list of Listings in Oracle Cloud Infrastructure Marketplace service.
 *
 * Gets a list of listings from Oracle Cloud Infrastructure Marketplace by searching keywords and
 * filtering according to listing attributes.
 *
 * If you plan to launch an instance from an image listing, you must first subscribe to the listing. When
 * you launch the instance, you also need to provide the image ID of the listing resource version that you want.
 *
 * Subscribing to the listing requires you to first get a signature from the terms of use agreement for the
 * listing resource version. To get the signature, issue a [GetAppCatalogListingAgreements](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersionAgreements/GetAppCatalogListingAgreements) API call.
 * The [AppCatalogListingResourceVersionAgreements](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersionAgreements) object, including
 * its signature, is returned in the response. With the signature for the terms of use agreement for the desired
 * listing resource version, create a subscription by issuing a
 * [CreateAppCatalogSubscription](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogSubscription/CreateAppCatalogSubscription) API call.
 *
 * To get the image ID to launch an instance, issue a [GetAppCatalogListingResourceVersion](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersion/GetAppCatalogListingResourceVersion) API call.
 * Lastly, to launch the instance, use the image ID of the listing resource version to issue a [LaunchInstance](https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Instance/LaunchInstance) API call.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testListings = oci.marketplace.getListings({
 *     categories: listingCategory,
 *     compartmentId: compartmentId,
 *     imageId: testImage.id,
 *     isFeatured: listingIsFeatured === "true",
 *     listingId: testListing.id,
 *     listingTypes: listingListingTypes,
 *     names: listingName,
 *     operatingSystems: listingOperatingSystems,
 *     packageType: listingPackageType,
 *     pricings: listingPricing,
 *     publisherId: testPublisher.id,
 * });
 * ```
 */
export declare function getListingsOutput(args?: GetListingsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetListingsResult>;
/**
 * A collection of arguments for invoking getListings.
 */
export interface GetListingsOutputArgs {
    /**
     * Name of the product category or categories. If you specify multiple categories, then Marketplace returns any listing with one or more matching categories.
     */
    categories?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The unique identifier for the compartment. It is mandatory when used in non-commercial realms.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.Marketplace.GetListingsFilterArgs>[] | undefined>;
    /**
     * The image identifier of the listing.
     */
    imageId?: pulumi.Input<string | undefined>;
    /**
     * Indicates whether to show only featured listings. If this is set to `false` or is omitted, then all listings will be returned.
     */
    isFeatured?: pulumi.Input<boolean | undefined>;
    /**
     * The unique identifier for the listing.
     */
    listingId?: pulumi.Input<string | undefined>;
    /**
     * The type of the listing.
     */
    listingTypes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the listing.
     */
    names?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The operating system of the listing.
     */
    operatingSystems?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * A filter to return only packages that match the given package type exactly.
     */
    packageType?: pulumi.Input<string | undefined>;
    /**
     * Name of the pricing type. If multiple pricing types are provided, then any listing with one or more matching pricing models will be returned.
     */
    pricings?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Limit results to just this publisher.
     */
    publisherId?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getListings.d.ts.map