pkg/meta/meta.go (31 lines of code) (raw):
package meta
import (
"context"
"fmt"
"github.com/Azure/aztfexport/internal/meta"
"github.com/Azure/aztfexport/pkg/config"
)
type ImportItem = meta.ImportItem
type ImportList = meta.ImportList
type Meta interface {
meta.BaseMeta
// ScopeName returns a string indicating current scope/mode.
ScopeName() string
// ListResource lists the resources belong to current scope.
ListResource(ctx context.Context) (meta.ImportList, error)
}
func NewMeta(cfg config.Config) (Meta, error) {
switch {
case cfg.ResourceGroupName != "":
return meta.NewMetaResourceGroup(cfg)
case cfg.ARGPredicate != "":
return meta.NewMetaQuery(cfg)
case cfg.MappingFile != "":
return meta.NewMetaMap(cfg)
case len(cfg.ResourceIds) != 0:
return meta.NewMetaResource(cfg)
default:
return nil, fmt.Errorf("invalid group config")
}
}
func NewDummyMeta(cfg config.Config) (Meta, error) {
return meta.NewGroupMetaDummy(cfg.ResourceGroupName, cfg.ProviderName), nil
}