import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Get information about a VM instance template resource within GCE. For more information see
 * [the official documentation](https://cloud.google.com/compute/docs/instance-templates)
 * and
 * [API](https://cloud.google.com/compute/docs/reference/rest/v1/regionInstanceTemplates).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * // by name
 * const generic = gcp.compute.getRegionInstanceTemplate({
 *     name: "generic-tpl-20200107",
 * });
 * // using a filter
 * const generic_regex = gcp.compute.getRegionInstanceTemplate({
 *     filter: "name != generic-tpl-20200107",
 *     mostRecent: true,
 * });
 * ```
 */
export declare function getRegionInstanceTemplate(args?: GetRegionInstanceTemplateArgs, opts?: pulumi.InvokeOptions): Promise<GetRegionInstanceTemplateResult>;
/**
 * A collection of arguments for invoking getRegionInstanceTemplate.
 */
export interface GetRegionInstanceTemplateArgs {
    /**
     * A filter to retrieve the instance templates.
     * See [API filter parameter documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionInstanceTemplates/list#body.QUERY_PARAMETERS.filter) for reference.
     * If multiple instance templates match, either adjust the filter or specify `mostRecent`. One of `name` or `filter` must be provided.
     */
    filter?: string;
    /**
     * If `filter` is provided, ensures the most recent template is returned when multiple instance templates match. One of `name` or `filter` must be provided.
     */
    mostRecent?: boolean;
    /**
     * The name of the instance template. One of `name` or `filter` must be provided.
     */
    name?: string;
    /**
     * The ID of the project in which the resource belongs.
     * If `project` is not provided, the provider project is used.
     */
    project?: string;
    /**
     * The Region in which the resource belongs.
     * If `region` is not provided, the provider region is used.
     */
    region?: string;
}
/**
 * A collection of values returned by getRegionInstanceTemplate.
 */
export interface GetRegionInstanceTemplateResult {
    readonly advancedMachineFeatures: outputs.compute.GetRegionInstanceTemplateAdvancedMachineFeature[];
    /**
     * Whether to allow sending and receiving of
     * packets with non-matching source or destination IPs. This defaults to false.
     */
    readonly canIpForward: boolean;
    /**
     * Enable [Confidential Mode](https://cloud.google.com/compute/confidential-vm/docs/about-cvm) on this VM. Structure is documented below
     */
    readonly confidentialInstanceConfigs: outputs.compute.GetRegionInstanceTemplateConfidentialInstanceConfig[];
    /**
     * Creation timestamp in RFC3339 text format.
     */
    readonly creationTimestamp: string;
    readonly deletionPolicy: string;
    /**
     * A brief description of this resource.
     */
    readonly description: string;
    /**
     * Disks to attach to instances created from this template.
     * This can be specified multiple times for multiple disks. Structure is
     * documented below.
     */
    readonly disks: outputs.compute.GetRegionInstanceTemplateDisk[];
    readonly effectiveLabels: {
        [key: string]: string;
    };
    /**
     * Enable [Virtual Displays](https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display#verify_display_driver) on this instance.
     * **Note**: `allowStoppingForUpdate` must be set to true in order to update this field.
     */
    readonly enableDisplay: boolean;
    readonly filter?: string;
    /**
     * List of the type and count of accelerator cards attached to the instance. Structure documented below.
     */
    readonly guestAccelerators: outputs.compute.GetRegionInstanceTemplateGuestAccelerator[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * A brief description to use for instances
     * created from this template.
     */
    readonly instanceDescription: string;
    /**
     * Action to be taken when a customer's encryption key is revoked.
     */
    readonly keyRevocationActionType: string;
    /**
     * (Optional) A set of ket/value label pairs to assign to disk created from
     * this template
     */
    readonly labels: {
        [key: string]: string;
    };
    /**
     * The machine type to create.
     */
    readonly machineType: string;
    /**
     * Metadata key/value pairs to make available from
     * within instances created from this template.
     */
    readonly metadata: {
        [key: string]: string;
    };
    /**
     * The unique fingerprint of the metadata.
     */
    readonly metadataFingerprint: string;
    /**
     * An alternative to using the
     * startup-script metadata key, mostly to match the computeInstance resource.
     * This replaces the startup-script metadata key on the created instance and
     * thus the two mechanisms are not allowed to be used simultaneously.
     */
    readonly metadataStartupScript: string;
    /**
     * Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as
     * `Intel Haswell` or `Intel Skylake`. See the complete list [here](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
     */
    readonly minCpuPlatform: string;
    readonly mostRecent?: boolean;
    /**
     * The name of the instance template. If you leave
     * this blank, Terraform will auto-generate a unique name.
     */
    readonly name?: string;
    /**
     * Creates a unique name beginning with the specified
     * prefix. Conflicts with `name`.
     */
    readonly namePrefix: string;
    /**
     * Networks to attach to instances created from
     * this template. This can be specified multiple times for multiple networks.
     * Structure is documented below.
     */
    readonly networkInterfaces: outputs.compute.GetRegionInstanceTemplateNetworkInterface[];
    /**
     * The network performance configuration setting
     * for the instance, if set. Structure is documented below.
     */
    readonly networkPerformanceConfigs: outputs.compute.GetRegionInstanceTemplateNetworkPerformanceConfig[];
    readonly numericId: string;
    readonly partnerMetadata: {
        [key: string]: string;
    };
    /**
     * The ID of the project in which the resource belongs. If it
     * is not provided, the provider project is used.
     */
    readonly project?: string;
    readonly pulumiLabels: {
        [key: string]: string;
    };
    readonly region?: string;
    readonly reservationAffinities: outputs.compute.GetRegionInstanceTemplateReservationAffinity[];
    readonly resourceManagerTags: {
        [key: string]: string;
    };
    /**
     * (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.
     */
    readonly resourcePolicies: string[];
    /**
     * The scheduling strategy to use. More details about
     * this configuration option are detailed below.
     */
    readonly schedulings: outputs.compute.GetRegionInstanceTemplateScheduling[];
    /**
     * The URI of the created resource.
     */
    readonly selfLink: string;
    /**
     * Service account to attach to the instance. Structure is documented below.
     */
    readonly serviceAccounts: outputs.compute.GetRegionInstanceTemplateServiceAccount[];
    /**
     * Enable [Shielded VM](https://cloud.google.com/security/shielded-cloud/shielded-vm) on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.
     * **Note**: `shieldedInstanceConfig` can only be used with boot images with shielded vm support. See the complete list [here](https://cloud.google.com/compute/docs/images#shielded-images).
     */
    readonly shieldedInstanceConfigs: outputs.compute.GetRegionInstanceTemplateShieldedInstanceConfig[];
    /**
     * Tags to attach to the instance.
     */
    readonly tags: string[];
    /**
     * The unique fingerprint of the tags.
     */
    readonly tagsFingerprint: string;
}
/**
 * Get information about a VM instance template resource within GCE. For more information see
 * [the official documentation](https://cloud.google.com/compute/docs/instance-templates)
 * and
 * [API](https://cloud.google.com/compute/docs/reference/rest/v1/regionInstanceTemplates).
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * // by name
 * const generic = gcp.compute.getRegionInstanceTemplate({
 *     name: "generic-tpl-20200107",
 * });
 * // using a filter
 * const generic_regex = gcp.compute.getRegionInstanceTemplate({
 *     filter: "name != generic-tpl-20200107",
 *     mostRecent: true,
 * });
 * ```
 */
export declare function getRegionInstanceTemplateOutput(args?: GetRegionInstanceTemplateOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetRegionInstanceTemplateResult>;
/**
 * A collection of arguments for invoking getRegionInstanceTemplate.
 */
export interface GetRegionInstanceTemplateOutputArgs {
    /**
     * A filter to retrieve the instance templates.
     * See [API filter parameter documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionInstanceTemplates/list#body.QUERY_PARAMETERS.filter) for reference.
     * If multiple instance templates match, either adjust the filter or specify `mostRecent`. One of `name` or `filter` must be provided.
     */
    filter?: pulumi.Input<string | undefined>;
    /**
     * If `filter` is provided, ensures the most recent template is returned when multiple instance templates match. One of `name` or `filter` must be provided.
     */
    mostRecent?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the instance template. One of `name` or `filter` must be provided.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If `project` is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * The Region in which the resource belongs.
     * If `region` is not provided, the provider region is used.
     */
    region?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getRegionInstanceTemplate.d.ts.map