blob: 826a4ff362d9ee5dc1f6d9f3157e47d8bbf09926 [file] [log] [blame]
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package plans
import (
"github.com/hashicorp/terraform/internal/providers"
)
// DeferredResourceInstanceChangeSrc tracks information about a resource that
// has been deferred for some reason.
type DeferredResourceInstanceChangeSrc struct {
// DeferredReason is the reason why this resource instance was deferred.
DeferredReason providers.DeferredReason
// ChangeSrc contains any information we have about the deferred change.
// This could be incomplete so must be parsed with care.
ChangeSrc *ResourceInstanceChangeSrc
}
func (rcs *DeferredResourceInstanceChangeSrc) Decode(schema providers.Schema) (*DeferredResourceInstanceChange, error) {
change, err := rcs.ChangeSrc.Decode(schema)
if err != nil {
return nil, err
}
return &DeferredResourceInstanceChange{
DeferredReason: rcs.DeferredReason,
Change: change,
}, nil
}
// DeferredResourceInstanceChange tracks information about a resource that
// has been deferred for some reason.
type DeferredResourceInstanceChange struct {
// DeferredReason is the reason why this resource instance was deferred.
DeferredReason providers.DeferredReason
// Change contains any information we have about the deferred change. This
// could be incomplete so must be parsed with care.
Change *ResourceInstanceChange
}
func (rcs *DeferredResourceInstanceChange) Encode(schema providers.Schema) (*DeferredResourceInstanceChangeSrc, error) {
change, err := rcs.Change.Encode(schema)
if err != nil {
return nil, err
}
return &DeferredResourceInstanceChangeSrc{
DeferredReason: rcs.DeferredReason,
ChangeSrc: change,
}, nil
}