func NewResource(version, kind, terraformResourceType string, opts ...ResourceOption) *Resource {
	c := &Resource{
		Version:               version,
		Kind:                  kind,
		TerraformResourceType: terraformResourceType,
		TerraformIDFieldName:  "id",
		ExternalName: ExternalName{
			SetIdentifierArgumentFn: NopSetIdentifierArgument,
		},
	}
	for _, f := range opts {
		f(c)
	}
	return c
}
NewResource returns a new configuration of type *Resource.
package config
import "github.com/imdario/mergo"
type SetIdentifierArgumentFn func(base map[string]interface{}, name string)
func NopSetIdentifierArgument(_ map[string]interface{}, _ string) {}
type AdditionalConnectionDetailsFn func(attr map[string]interface{}) (map[string][]byte, error)
type ResourceOption func(*Resource)
func WithTerraformIDFieldName(n string) ResourceOption {
	return func(c *Resource) {
		c.TerraformIDFieldName = n
	}
}