import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a VM instance resource within GCE. For more information see
 * [the official documentation](https://cloud.google.com/compute/docs/instances)
 * and
 * [API](https://cloud.google.com/compute/docs/reference/latest/instances).
 *
 * This resource is specifically to create a compute instance from a given
 * `sourceInstanceTemplate`. To create an instance without a template, use the
 * `gcp.compute.Instance` resource.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const tpl = new gcp.compute.InstanceTemplate("tpl", {
 *     name: "template",
 *     machineType: "e2-medium",
 *     disks: [{
 *         sourceImage: "debian-cloud/debian-11",
 *         autoDelete: true,
 *         diskSizeGb: 100,
 *         boot: true,
 *     }],
 *     networkInterfaces: [{
 *         network: "default",
 *     }],
 *     metadata: {
 *         foo: "bar",
 *     },
 *     canIpForward: true,
 * });
 * const tplInstanceFromTemplate = new gcp.compute.InstanceFromTemplate("tpl", {
 *     name: "instance-from-template",
 *     zone: "us-central1-a",
 *     sourceInstanceTemplate: tpl.selfLinkUnique,
 *     canIpForward: false,
 *     labels: {
 *         my_key: "my_value",
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * This resource does not support import.
 */
export declare class InstanceFromTemplate extends pulumi.CustomResource {
    /**
     * Get an existing InstanceFromTemplate resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstanceFromTemplateState, opts?: pulumi.CustomResourceOptions): InstanceFromTemplate;
    /**
     * Returns true if the given object is an instance of InstanceFromTemplate.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is InstanceFromTemplate;
    /**
     * Controls for advanced machine-related behavior features.
     */
    readonly advancedMachineFeatures: pulumi.Output<outputs.compute.InstanceFromTemplateAdvancedMachineFeatures>;
    /**
     * If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
     */
    readonly allowStoppingForUpdate: pulumi.Output<boolean>;
    /**
     * List of disks attached to the instance
     */
    readonly attachedDisks: pulumi.Output<outputs.compute.InstanceFromTemplateAttachedDisk[]>;
    /**
     * The boot disk for the instance.
     */
    readonly bootDisk: pulumi.Output<outputs.compute.InstanceFromTemplateBootDisk>;
    /**
     * Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
     */
    readonly canIpForward: pulumi.Output<boolean>;
    /**
     * The Confidential VM config being used by the instance.  onHostMaintenance has to be set to TERMINATE or this will fail to create.
     */
    readonly confidentialInstanceConfig: pulumi.Output<outputs.compute.InstanceFromTemplateConfidentialInstanceConfig>;
    /**
     * The CPU platform used by this instance.
     */
    readonly cpuPlatform: pulumi.Output<string>;
    /**
     * Creation timestamp in RFC3339 text format.
     */
    readonly creationTimestamp: pulumi.Output<string>;
    /**
     * Current status of the instance.
     * 					This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED.
     * 					For more information about the status of the instance, see [Instance life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).
     */
    readonly currentStatus: pulumi.Output<string>;
    /**
     * Whether Terraform will be prevented from destroying the instance. Defaults to "DELETE".
     * When a 'terraform destroy' or 'terraform apply' would delete the instance,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    readonly deletionPolicy: pulumi.Output<string>;
    /**
     * Whether deletion protection is enabled on this instance.
     */
    readonly deletionProtection: pulumi.Output<boolean>;
    /**
     * A brief description of the resource.
     */
    readonly description: pulumi.Output<string>;
    /**
     * Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
     */
    readonly desiredStatus: pulumi.Output<string>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
     */
    readonly effectiveLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Whether the instance has virtual displays enabled.
     */
    readonly enableDisplay: pulumi.Output<boolean>;
    /**
     * Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
     */
    readonly eraseWindowsVssSignature: pulumi.Output<boolean>;
    /**
     * List of the type and count of accelerator cards attached to the instance.
     */
    readonly guestAccelerators: pulumi.Output<outputs.compute.InstanceFromTemplateGuestAccelerator[]>;
    /**
     * A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
     */
    readonly hostname: pulumi.Output<string>;
    /**
     * Encryption key used to provide data encryption on the given instance.
     */
    readonly instanceEncryptionKey: pulumi.Output<outputs.compute.InstanceFromTemplateInstanceEncryptionKey>;
    /**
     * The server-assigned unique identifier of this instance.
     */
    readonly instanceId: pulumi.Output<string>;
    /**
     * Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the default.
     */
    readonly keyRevocationActionType: pulumi.Output<string>;
    /**
     * The unique fingerprint of the labels.
     */
    readonly labelFingerprint: pulumi.Output<string>;
    /**
     * A set of key/value label pairs assigned to the instance.
     *
     * 				**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * 				Please refer to the field 'effective_labels' for all of the labels present on the resource.
     */
    readonly labels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The machine type to create.
     */
    readonly machineType: pulumi.Output<string>;
    /**
     * Metadata key/value pairs made available within the instance.
     */
    readonly metadata: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The unique fingerprint of the metadata.
     */
    readonly metadataFingerprint: pulumi.Output<string>;
    /**
     * Metadata startup scripts made available within the instance.
     */
    readonly metadataStartupScript: pulumi.Output<string>;
    /**
     * The minimum CPU platform specified for the VM instance.
     */
    readonly minCpuPlatform: pulumi.Output<string>;
    /**
     * A unique name for the resource, required by GCE.
     * Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The networks attached to the instance.
     */
    readonly networkInterfaces: pulumi.Output<outputs.compute.InstanceFromTemplateNetworkInterface[]>;
    /**
     * Configures network performance settings for the instance. If not specified, the instance will be created with its default network performance configuration.
     */
    readonly networkPerformanceConfig: pulumi.Output<outputs.compute.InstanceFromTemplateNetworkPerformanceConfig>;
    /**
     * Stores additional params passed with the request, but not persisted as part of resource payload.
     */
    readonly params: pulumi.Output<outputs.compute.InstanceFromTemplateParams>;
    /**
     * Partner Metadata Map made available within the instance.
     */
    readonly partnerMetadata: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink nor project are provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * The combination of labels configured directly on the resource and default labels configured on the provider.
     */
    readonly pulumiLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Specifies the reservations that this instance can consume from.
     */
    readonly reservationAffinity: pulumi.Output<outputs.compute.InstanceFromTemplateReservationAffinity>;
    /**
     * A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
     */
    readonly resourcePolicies: pulumi.Output<string>;
    /**
     * The scheduling strategy being used by the instance.
     */
    readonly scheduling: pulumi.Output<outputs.compute.InstanceFromTemplateScheduling>;
    /**
     * The scratch disks attached to the instance.
     */
    readonly scratchDisks: pulumi.Output<outputs.compute.InstanceFromTemplateScratchDisk[]>;
    /**
     * The URI of the created resource.
     */
    readonly selfLink: pulumi.Output<string>;
    /**
     * The service account to attach to the instance.
     */
    readonly serviceAccount: pulumi.Output<outputs.compute.InstanceFromTemplateServiceAccount>;
    /**
     * The shielded vm config being used by the instance.
     */
    readonly shieldedInstanceConfig: pulumi.Output<outputs.compute.InstanceFromTemplateShieldedInstanceConfig>;
    /**
     * Name or self link of an instance
     * template to create the instance based on. It is recommended to reference
     * instance templates through their unique id (`selfLinkUnique` attribute).
     *
     * - - -
     */
    readonly sourceInstanceTemplate: pulumi.Output<string>;
    /**
     * The list of tags attached to the instance.
     */
    readonly tags: pulumi.Output<string[]>;
    /**
     * The unique fingerprint of the tags.
     */
    readonly tagsFingerprint: pulumi.Output<string>;
    /**
     * The zone that the machine should be created in. If not
     * set, the provider zone is used.
     *
     * In addition to these, all arguments from `gcp.compute.Instance` are supported
     * as a way to override the properties in the template. All exported attributes
     * from `gcp.compute.Instance` are likewise exported here.
     */
    readonly zone: pulumi.Output<string>;
    /**
     * Create a InstanceFromTemplate resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: InstanceFromTemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering InstanceFromTemplate resources.
 */
export interface InstanceFromTemplateState {
    /**
     * Controls for advanced machine-related behavior features.
     */
    advancedMachineFeatures?: pulumi.Input<inputs.compute.InstanceFromTemplateAdvancedMachineFeatures | undefined>;
    /**
     * If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
     */
    allowStoppingForUpdate?: pulumi.Input<boolean | undefined>;
    /**
     * List of disks attached to the instance
     */
    attachedDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateAttachedDisk>[] | undefined>;
    /**
     * The boot disk for the instance.
     */
    bootDisk?: pulumi.Input<inputs.compute.InstanceFromTemplateBootDisk | undefined>;
    /**
     * Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
     */
    canIpForward?: pulumi.Input<boolean | undefined>;
    /**
     * The Confidential VM config being used by the instance.  onHostMaintenance has to be set to TERMINATE or this will fail to create.
     */
    confidentialInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateConfidentialInstanceConfig | undefined>;
    /**
     * The CPU platform used by this instance.
     */
    cpuPlatform?: pulumi.Input<string | undefined>;
    /**
     * Creation timestamp in RFC3339 text format.
     */
    creationTimestamp?: pulumi.Input<string | undefined>;
    /**
     * Current status of the instance.
     * 					This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED.
     * 					For more information about the status of the instance, see [Instance life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).
     */
    currentStatus?: pulumi.Input<string | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the instance. Defaults to "DELETE".
     * When a 'terraform destroy' or 'terraform apply' would delete the instance,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * Whether deletion protection is enabled on this instance.
     */
    deletionProtection?: pulumi.Input<boolean | undefined>;
    /**
     * A brief description of the resource.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
     */
    desiredStatus?: pulumi.Input<string | undefined>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
     */
    effectiveLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Whether the instance has virtual displays enabled.
     */
    enableDisplay?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
     */
    eraseWindowsVssSignature?: pulumi.Input<boolean | undefined>;
    /**
     * List of the type and count of accelerator cards attached to the instance.
     */
    guestAccelerators?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateGuestAccelerator>[] | undefined>;
    /**
     * A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
     */
    hostname?: pulumi.Input<string | undefined>;
    /**
     * Encryption key used to provide data encryption on the given instance.
     */
    instanceEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromTemplateInstanceEncryptionKey | undefined>;
    /**
     * The server-assigned unique identifier of this instance.
     */
    instanceId?: pulumi.Input<string | undefined>;
    /**
     * Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the default.
     */
    keyRevocationActionType?: pulumi.Input<string | undefined>;
    /**
     * The unique fingerprint of the labels.
     */
    labelFingerprint?: pulumi.Input<string | undefined>;
    /**
     * A set of key/value label pairs assigned to the instance.
     *
     * 				**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * 				Please refer to the field 'effective_labels' for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The machine type to create.
     */
    machineType?: pulumi.Input<string | undefined>;
    /**
     * Metadata key/value pairs made available within the instance.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The unique fingerprint of the metadata.
     */
    metadataFingerprint?: pulumi.Input<string | undefined>;
    /**
     * Metadata startup scripts made available within the instance.
     */
    metadataStartupScript?: pulumi.Input<string | undefined>;
    /**
     * The minimum CPU platform specified for the VM instance.
     */
    minCpuPlatform?: pulumi.Input<string | undefined>;
    /**
     * A unique name for the resource, required by GCE.
     * Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The networks attached to the instance.
     */
    networkInterfaces?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateNetworkInterface>[] | undefined>;
    /**
     * Configures network performance settings for the instance. If not specified, the instance will be created with its default network performance configuration.
     */
    networkPerformanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateNetworkPerformanceConfig | undefined>;
    /**
     * Stores additional params passed with the request, but not persisted as part of resource payload.
     */
    params?: pulumi.Input<inputs.compute.InstanceFromTemplateParams | undefined>;
    /**
     * Partner Metadata Map made available within the instance.
     */
    partnerMetadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink nor project are provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * The combination of labels configured directly on the resource and default labels configured on the provider.
     */
    pulumiLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Specifies the reservations that this instance can consume from.
     */
    reservationAffinity?: pulumi.Input<inputs.compute.InstanceFromTemplateReservationAffinity | undefined>;
    /**
     * A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
     */
    resourcePolicies?: pulumi.Input<string | undefined>;
    /**
     * The scheduling strategy being used by the instance.
     */
    scheduling?: pulumi.Input<inputs.compute.InstanceFromTemplateScheduling | undefined>;
    /**
     * The scratch disks attached to the instance.
     */
    scratchDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateScratchDisk>[] | undefined>;
    /**
     * The URI of the created resource.
     */
    selfLink?: pulumi.Input<string | undefined>;
    /**
     * The service account to attach to the instance.
     */
    serviceAccount?: pulumi.Input<inputs.compute.InstanceFromTemplateServiceAccount | undefined>;
    /**
     * The shielded vm config being used by the instance.
     */
    shieldedInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateShieldedInstanceConfig | undefined>;
    /**
     * Name or self link of an instance
     * template to create the instance based on. It is recommended to reference
     * instance templates through their unique id (`selfLinkUnique` attribute).
     *
     * - - -
     */
    sourceInstanceTemplate?: pulumi.Input<string | undefined>;
    /**
     * The list of tags attached to the instance.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The unique fingerprint of the tags.
     */
    tagsFingerprint?: pulumi.Input<string | undefined>;
    /**
     * The zone that the machine should be created in. If not
     * set, the provider zone is used.
     *
     * In addition to these, all arguments from `gcp.compute.Instance` are supported
     * as a way to override the properties in the template. All exported attributes
     * from `gcp.compute.Instance` are likewise exported here.
     */
    zone?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a InstanceFromTemplate resource.
 */
export interface InstanceFromTemplateArgs {
    /**
     * Controls for advanced machine-related behavior features.
     */
    advancedMachineFeatures?: pulumi.Input<inputs.compute.InstanceFromTemplateAdvancedMachineFeatures | undefined>;
    /**
     * If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail.
     */
    allowStoppingForUpdate?: pulumi.Input<boolean | undefined>;
    /**
     * List of disks attached to the instance
     */
    attachedDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateAttachedDisk>[] | undefined>;
    /**
     * The boot disk for the instance.
     */
    bootDisk?: pulumi.Input<inputs.compute.InstanceFromTemplateBootDisk | undefined>;
    /**
     * Whether sending and receiving of packets with non-matching source or destination IPs is allowed.
     */
    canIpForward?: pulumi.Input<boolean | undefined>;
    /**
     * The Confidential VM config being used by the instance.  onHostMaintenance has to be set to TERMINATE or this will fail to create.
     */
    confidentialInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateConfidentialInstanceConfig | undefined>;
    /**
     * Whether Terraform will be prevented from destroying the instance. Defaults to "DELETE".
     * When a 'terraform destroy' or 'terraform apply' would delete the instance,
     * the command will fail if this field is set to "PREVENT" in Terraform state.
     * When set to "ABANDON", the command will remove the resource from Terraform
     * management without updating or deleting the resource in the API.
     * When set to "DELETE", deleting the resource is allowed.
     */
    deletionPolicy?: pulumi.Input<string | undefined>;
    /**
     * Whether deletion protection is enabled on this instance.
     */
    deletionProtection?: pulumi.Input<boolean | undefined>;
    /**
     * A brief description of the resource.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED".
     */
    desiredStatus?: pulumi.Input<string | undefined>;
    /**
     * Whether the instance has virtual displays enabled.
     */
    enableDisplay?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies whether the disks restored from source snapshots or source machine image should erase Windows specific VSS signature.
     */
    eraseWindowsVssSignature?: pulumi.Input<boolean | undefined>;
    /**
     * List of the type and count of accelerator cards attached to the instance.
     */
    guestAccelerators?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateGuestAccelerator>[] | undefined>;
    /**
     * A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression a-z, concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.
     */
    hostname?: pulumi.Input<string | undefined>;
    /**
     * Encryption key used to provide data encryption on the given instance.
     */
    instanceEncryptionKey?: pulumi.Input<inputs.compute.InstanceFromTemplateInstanceEncryptionKey | undefined>;
    /**
     * Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the default.
     */
    keyRevocationActionType?: pulumi.Input<string | undefined>;
    /**
     * A set of key/value label pairs assigned to the instance.
     *
     * 				**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * 				Please refer to the field 'effective_labels' for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The machine type to create.
     */
    machineType?: pulumi.Input<string | undefined>;
    /**
     * Metadata key/value pairs made available within the instance.
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Metadata startup scripts made available within the instance.
     */
    metadataStartupScript?: pulumi.Input<string | undefined>;
    /**
     * The minimum CPU platform specified for the VM instance.
     */
    minCpuPlatform?: pulumi.Input<string | undefined>;
    /**
     * A unique name for the resource, required by GCE.
     * Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The networks attached to the instance.
     */
    networkInterfaces?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateNetworkInterface>[] | undefined>;
    /**
     * Configures network performance settings for the instance. If not specified, the instance will be created with its default network performance configuration.
     */
    networkPerformanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateNetworkPerformanceConfig | undefined>;
    /**
     * Stores additional params passed with the request, but not persisted as part of resource payload.
     */
    params?: pulumi.Input<inputs.compute.InstanceFromTemplateParams | undefined>;
    /**
     * Partner Metadata Map made available within the instance.
     */
    partnerMetadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The ID of the project in which the resource belongs. If selfLink is provided, this value is ignored. If neither selfLink nor project are provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * Specifies the reservations that this instance can consume from.
     */
    reservationAffinity?: pulumi.Input<inputs.compute.InstanceFromTemplateReservationAffinity | undefined>;
    /**
     * A list of selfLinks of resource policies to attach to the instance. Currently a max of 1 resource policy is supported.
     */
    resourcePolicies?: pulumi.Input<string | undefined>;
    /**
     * The scheduling strategy being used by the instance.
     */
    scheduling?: pulumi.Input<inputs.compute.InstanceFromTemplateScheduling | undefined>;
    /**
     * The scratch disks attached to the instance.
     */
    scratchDisks?: pulumi.Input<pulumi.Input<inputs.compute.InstanceFromTemplateScratchDisk>[] | undefined>;
    /**
     * The service account to attach to the instance.
     */
    serviceAccount?: pulumi.Input<inputs.compute.InstanceFromTemplateServiceAccount | undefined>;
    /**
     * The shielded vm config being used by the instance.
     */
    shieldedInstanceConfig?: pulumi.Input<inputs.compute.InstanceFromTemplateShieldedInstanceConfig | undefined>;
    /**
     * Name or self link of an instance
     * template to create the instance based on. It is recommended to reference
     * instance templates through their unique id (`selfLinkUnique` attribute).
     *
     * - - -
     */
    sourceInstanceTemplate: pulumi.Input<string>;
    /**
     * The list of tags attached to the instance.
     */
    tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The zone that the machine should be created in. If not
     * set, the provider zone is used.
     *
     * In addition to these, all arguments from `gcp.compute.Instance` are supported
     * as a way to override the properties in the template. All exported attributes
     * from `gcp.compute.Instance` are likewise exported here.
     */
    zone?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=instanceFromTemplate.d.ts.map