import { Argument, Attribute, Map } from '../arguments'; import { Block } from '.'; interface ProvisionerArgs { when?: Argument<'create' | 'destroy'>; on_failure?: Argument<'continue' | 'fail'>; } /** * @category Block */ export interface FileProvisionerArgs extends ProvisionerArgs { source?: string; content?: string; destination?: string; } /** * @category Block */ export interface LocalExecProvisionerArgs extends ProvisionerArgs { command: string; working_dir?: string; interpreter?: string[]; environment?: Map; quiet?: boolean; } /** * @category Block */ export interface RemoteExecProvisionerArgs extends ProvisionerArgs { inline?: string[]; script?: string; scripts?: string[]; } /** * @category Block */ export declare class Provisioner extends Block { readonly type: 'file' | 'local-exec' | 'remote-exec'; /** * Construct provisioner. * * Refer to Terraform documentation on what can be put as type & arguments. * * @param type type * @param args arguments */ constructor(type: 'file', args: FileProvisionerArgs); constructor(type: 'local-exec', args: LocalExecProvisionerArgs); constructor(type: 'remote-exec', args: RemoteExecProvisionerArgs); asArgument(): Argument; attr(_name: string): Attribute; } export {};