import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource Type definition for AWS::IoT::JobTemplate. Job templates enable you to preconfigure jobs so that you can deploy them to multiple sets of target devices.
 */
export declare class JobTemplate extends pulumi.CustomResource {
    /**
     * Get an existing JobTemplate 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): JobTemplate;
    /**
     * Returns true if the given object is an instance of JobTemplate.  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 JobTemplate;
    /**
     * The criteria that determine when and how a job abort takes place.
     */
    readonly abortConfig: pulumi.Output<outputs.iot.AbortConfigProperties | undefined>;
    /**
     * The ARN of the job to use as the basis for the job template.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * A description of the Job Template.
     */
    readonly description: pulumi.Output<string>;
    /**
     * The package version Amazon Resource Names (ARNs) that are installed on the device’s reserved named shadow ( `$package` ) when the job successfully completes.
     *
     * *Note:* Up to 25 package version ARNS are allowed.
     */
    readonly destinationPackageVersions: pulumi.Output<string[] | undefined>;
    /**
     * The job document. Required if you don't specify a value for documentSource.
     */
    readonly document: pulumi.Output<string | undefined>;
    /**
     * An S3 link to the job document to use in the template. Required if you don't specify a value for document.
     */
    readonly documentSource: pulumi.Output<string | undefined>;
    /**
     * Optional for copying a JobTemplate from a pre-existing Job configuration.
     */
    readonly jobArn: pulumi.Output<string | undefined>;
    /**
     * Allows you to create the criteria to retry a job.
     */
    readonly jobExecutionsRetryConfig: pulumi.Output<outputs.iot.JobExecutionsRetryConfigProperties | undefined>;
    /**
     * Allows you to create a staged rollout of a job.
     */
    readonly jobExecutionsRolloutConfig: pulumi.Output<outputs.iot.JobExecutionsRolloutConfigProperties | undefined>;
    /**
     * A unique identifier for the job template. We recommend using a UUID. Alpha-numeric characters, "-", and "_" are valid for use here.
     */
    readonly jobTemplateId: pulumi.Output<string>;
    /**
     * An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.
     */
    readonly maintenanceWindows: pulumi.Output<outputs.iot.JobTemplateMaintenanceWindow[] | undefined>;
    /**
     * Configuration for pre-signed S3 URLs.
     */
    readonly presignedUrlConfig: pulumi.Output<outputs.iot.PresignedUrlConfigProperties | undefined>;
    /**
     * Metadata that can be used to manage the JobTemplate.
     */
    readonly tags: pulumi.Output<outputs.CreateOnlyTag[] | undefined>;
    /**
     * Specifies the amount of time each device has to finish its execution of the job.
     */
    readonly timeoutConfig: pulumi.Output<outputs.iot.TimeoutConfigProperties | undefined>;
    /**
     * Create a JobTemplate 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: JobTemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a JobTemplate resource.
 */
export interface JobTemplateArgs {
    /**
     * The criteria that determine when and how a job abort takes place.
     */
    abortConfig?: pulumi.Input<inputs.iot.AbortConfigPropertiesArgs>;
    /**
     * A description of the Job Template.
     */
    description: pulumi.Input<string>;
    /**
     * The package version Amazon Resource Names (ARNs) that are installed on the device’s reserved named shadow ( `$package` ) when the job successfully completes.
     *
     * *Note:* Up to 25 package version ARNS are allowed.
     */
    destinationPackageVersions?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The job document. Required if you don't specify a value for documentSource.
     */
    document?: pulumi.Input<string>;
    /**
     * An S3 link to the job document to use in the template. Required if you don't specify a value for document.
     */
    documentSource?: pulumi.Input<string>;
    /**
     * Optional for copying a JobTemplate from a pre-existing Job configuration.
     */
    jobArn?: pulumi.Input<string>;
    /**
     * Allows you to create the criteria to retry a job.
     */
    jobExecutionsRetryConfig?: pulumi.Input<inputs.iot.JobExecutionsRetryConfigPropertiesArgs>;
    /**
     * Allows you to create a staged rollout of a job.
     */
    jobExecutionsRolloutConfig?: pulumi.Input<inputs.iot.JobExecutionsRolloutConfigPropertiesArgs>;
    /**
     * A unique identifier for the job template. We recommend using a UUID. Alpha-numeric characters, "-", and "_" are valid for use here.
     */
    jobTemplateId: pulumi.Input<string>;
    /**
     * An optional configuration within the SchedulingConfig to setup a recurring maintenance window with a predetermined start time and duration for the rollout of a job document to all devices in a target group for a job.
     */
    maintenanceWindows?: pulumi.Input<pulumi.Input<inputs.iot.JobTemplateMaintenanceWindowArgs>[]>;
    /**
     * Configuration for pre-signed S3 URLs.
     */
    presignedUrlConfig?: pulumi.Input<inputs.iot.PresignedUrlConfigPropertiesArgs>;
    /**
     * Metadata that can be used to manage the JobTemplate.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.CreateOnlyTagArgs>[]>;
    /**
     * Specifies the amount of time each device has to finish its execution of the job.
     */
    timeoutConfig?: pulumi.Input<inputs.iot.TimeoutConfigPropertiesArgs>;
}
