terraform: github.com/hashicorp/terraform/provisioners Index | Files

package provisioners

import "github.com/hashicorp/terraform/provisioners"

Package provisioners contains the interface and primary types to implement a Terraform resource provisioner.

Index

Package Files

doc.go factory.go provisioner.go

type Factory Uses

type Factory func() (Interface, error)

Factory is a function type that creates a new instance of a resource provisioner, or returns an error if that is impossible.

func FactoryFixed Uses

func FactoryFixed(p Interface) Factory

FactoryFixed is a helper that creates a Factory that just returns some given single provisioner.

Unlike usual factories, the exact same instance is returned for each call to the factory and so this must be used in only specialized situations where the caller can take care to either not mutate the given provider at all or to mutate it in ways that will not cause unexpected behavior for others holding the same reference.

type GetSchemaResponse Uses

type GetSchemaResponse struct {
    // Provisioner contains the schema for this provisioner.
    Provisioner *configschema.Block

    // Diagnostics contains any warnings or errors from the method call.
    Diagnostics tfdiags.Diagnostics
}

type Interface Uses

type Interface interface {
    // GetSchema returns the schema for the provisioner configuration.
    GetSchema() GetSchemaResponse

    // ValidateProvisionerConfig allows the provisioner to validate the
    // configuration values.
    ValidateProvisionerConfig(ValidateProvisionerConfigRequest) ValidateProvisionerConfigResponse

    // ProvisionResource runs the provisioner with provided configuration.
    // ProvisionResource blocks until the execution is complete.
    // If the returned diagnostics contain any errors, the resource will be
    // left in a tainted state.
    ProvisionResource(ProvisionResourceRequest) ProvisionResourceResponse

    // Stop is called to interrupt the provisioner.
    //
    // Stop should not block waiting for in-flight actions to complete. It
    // should take any action it wants and return immediately acknowledging it
    // has received the stop request. Terraform will not make any further API
    // calls to the provisioner after Stop is called.
    //
    // The error returned, if non-nil, is assumed to mean that signaling the
    // stop somehow failed and that the user should expect potentially waiting
    // a longer period of time.
    Stop() error

    // Close shuts down the plugin process if applicable.
    Close() error
}

Interface is the set of methods required for a resource provisioner plugin.

type ProvisionResourceRequest Uses

type ProvisionResourceRequest struct {
    // Config is the complete provisioner configuration.
    Config cty.Value

    // Connection contains any information required to access the resource
    // instance.
    Connection cty.Value

    // UIOutput is used to return output during the Apply operation.
    UIOutput UIOutput
}

type ProvisionResourceResponse Uses

type ProvisionResourceResponse struct {
    // Diagnostics contains any warnings or errors from the method call.
    Diagnostics tfdiags.Diagnostics
}

type UIOutput Uses

type UIOutput interface {
    Output(string)
}

UIOutput provides the Output method for resource provisioner plugins to write any output to the UI.

Provisioners may call the Output method multiple times while Apply is in progress. It is invalid to call Output after Apply returns.

type ValidateProvisionerConfigRequest Uses

type ValidateProvisionerConfigRequest struct {
    // Config is the complete configuration to be used for the provisioner.
    Config cty.Value
}

type ValidateProvisionerConfigResponse Uses

type ValidateProvisionerConfigResponse struct {
    // Diagnostics contains any warnings or errors from the method call.
    Diagnostics tfdiags.Diagnostics
}

Package provisioners imports 3 packages (graph) and is imported by 15 packages. Updated 2018-10-17. Refresh now. Tools for package owners.