diff --git a/internal/addrs/provider.go b/internal/addrs/provider.go index 0f8852b5ae..c5709301af 100644 --- a/internal/addrs/provider.go +++ b/internal/addrs/provider.go @@ -14,10 +14,6 @@ import ( // extended to include additional fields including Namespace and SourceHost type Provider = tfaddr.Provider -// DefaultProviderNamespace contains the registry namespace OpenTofu looks up providers in -// if no namespace has been explicitly specified. -const DefaultProviderNamespace = "opentofu" - // DefaultProviderRegistryHost is the hostname used for provider addresses that do // not have an explicit hostname. const DefaultProviderRegistryHost = tfaddr.DefaultProviderRegistryHost @@ -44,7 +40,7 @@ const BuiltInProviderNamespace = tfaddr.BuiltInProviderNamespace const LegacyProviderNamespace = tfaddr.LegacyProviderNamespace func IsDefaultProvider(addr Provider) bool { - return addr.Hostname == DefaultProviderRegistryHost && addr.Namespace == DefaultProviderNamespace + return addr.Hostname == DefaultProviderRegistryHost && addr.Namespace == "hashicorp" } // NewProvider constructs a provider address from its parts, and normalizes @@ -66,18 +62,18 @@ func NewProvider(hostname svchost.Hostname, namespace, typeName string) Provider // provider FQN a user intended when only a naked type name is available. // // For all except the type name "terraform" this returns a so-called "default" -// provider, which is under the registry.opentofu.org/opentofu/ namespace. +// provider, which is under the registry.terraform.io/hashicorp/ namespace. // // As a special case, the string "terraform" maps to // "terraform.io/builtin/terraform" because that is the more likely user // intent than the now-unmaintained "registry.terraform.io/hashicorp/terraform" -// which remains only for compatibility with older Terraform versions. +// which remains only for compatibility with older OpenTofu versions. func ImpliedProviderForUnqualifiedType(typeName string) Provider { switch typeName { case "terraform": // Note for future maintainers: any additional strings we add here // as implied to be builtin must never also be use as provider names - // in the registry.opentofu.org/opentofu/... namespace, because + // in the registry.terraform.io/hashicorp/... namespace, because // otherwise older versions of OpenTofu could implicitly select // the registry name instead of the internal one. return NewBuiltInProvider(typeName) @@ -91,7 +87,7 @@ func ImpliedProviderForUnqualifiedType(typeName string) Provider { func NewDefaultProvider(name string) Provider { return tfaddr.Provider{ Type: MustParseProviderPart(name), - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, } } @@ -143,7 +139,7 @@ func ParseProviderSourceString(str string) (tfaddr.Provider, tfdiags.Diagnostics } if !ret.HasKnownNamespace() { - ret.Namespace = DefaultProviderNamespace + ret.Namespace = "hashicorp" } return ret, nil diff --git a/internal/addrs/provider_config.go b/internal/addrs/provider_config.go index 6424deea65..bf3ae9bb0f 100644 --- a/internal/addrs/provider_config.go +++ b/internal/addrs/provider_config.go @@ -101,10 +101,10 @@ var _ ProviderConfig = AbsProviderConfig{} // configuration address. The following are examples of traversals that can be // successfully parsed as absolute provider configuration addresses: // -// - provider["registry.opentofu.org/opentofu/aws"] -// - provider["registry.opentofu.org/opentofu/aws"].foo -// - module.bar.provider["registry.opentofu.org/opentofu/aws"] -// - module.bar.module.baz.provider["registry.opentofu.org/opentofu/aws"].foo +// - provider["registry.opentofu.org/hashicorp/aws"] +// - provider["registry.opentofu.org/hashicorp/aws"].foo +// - module.bar.provider["registry.opentofu.org/hashicorp/aws"] +// - module.bar.module.baz.provider["registry.opentofu.org/hashicorp/aws"].foo // // This type of address is used, for example, to record the relationships // between resources and provider configurations in the state structure. diff --git a/internal/addrs/provider_config_test.go b/internal/addrs/provider_config_test.go index e2abf1d836..a7a492dcc8 100644 --- a/internal/addrs/provider_config_test.go +++ b/internal/addrs/provider_config_test.go @@ -20,24 +20,24 @@ func TestParseAbsProviderConfig(t *testing.T) { WantDiag string }{ { - `provider["registry.opentofu.org/opentofu/aws"]`, + `provider["registry.opentofu.org/hashicorp/aws"]`, AbsProviderConfig{ Module: RootModule, Provider: Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: "registry.opentofu.org", }, }, ``, }, { - `provider["registry.opentofu.org/opentofu/aws"].foo`, + `provider["registry.opentofu.org/hashicorp/aws"].foo`, AbsProviderConfig{ Module: RootModule, Provider: Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: "registry.opentofu.org", }, Alias: "foo", @@ -45,24 +45,24 @@ func TestParseAbsProviderConfig(t *testing.T) { ``, }, { - `module.baz.provider["registry.opentofu.org/opentofu/aws"]`, + `module.baz.provider["registry.opentofu.org/hashicorp/aws"]`, AbsProviderConfig{ Module: Module{"baz"}, Provider: Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: "registry.opentofu.org", }, }, ``, }, { - `module.baz.provider["registry.opentofu.org/opentofu/aws"].foo`, + `module.baz.provider["registry.opentofu.org/hashicorp/aws"].foo`, AbsProviderConfig{ Module: Module{"baz"}, Provider: Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: "registry.opentofu.org", }, Alias: "foo", @@ -70,17 +70,17 @@ func TestParseAbsProviderConfig(t *testing.T) { ``, }, { - `module.baz["foo"].provider["registry.opentofu.org/opentofu/aws"]`, + `module.baz["foo"].provider["registry.opentofu.org/hashicorp/aws"]`, AbsProviderConfig{}, `Provider address cannot contain module indexes`, }, { - `module.baz[1].provider["registry.opentofu.org/opentofu/aws"]`, + `module.baz[1].provider["registry.opentofu.org/hashicorp/aws"]`, AbsProviderConfig{}, `Provider address cannot contain module indexes`, }, { - `module.baz[1].module.bar.provider["registry.opentofu.org/opentofu/aws"]`, + `module.baz[1].module.bar.provider["registry.opentofu.org/hashicorp/aws"]`, AbsProviderConfig{}, `Provider address cannot contain module indexes`, }, @@ -173,7 +173,7 @@ func TestAbsProviderConfigString(t *testing.T) { Module: RootModule.Child("child_module"), Provider: NewDefaultProvider("foo"), }, - `module.child_module.provider["registry.opentofu.org/opentofu/foo"]`, + `module.child_module.provider["registry.opentofu.org/hashicorp/foo"]`, }, { AbsProviderConfig{ @@ -181,7 +181,7 @@ func TestAbsProviderConfigString(t *testing.T) { Alias: "bar", Provider: NewDefaultProvider("foo"), }, - `provider["registry.opentofu.org/opentofu/foo"].bar`, + `provider["registry.opentofu.org/hashicorp/foo"].bar`, }, { AbsProviderConfig{ @@ -189,7 +189,7 @@ func TestAbsProviderConfigString(t *testing.T) { Alias: "bar", Provider: NewDefaultProvider("foo"), }, - `module.child_module.provider["registry.opentofu.org/opentofu/foo"].bar`, + `module.child_module.provider["registry.opentofu.org/hashicorp/foo"].bar`, }, } diff --git a/internal/addrs/provider_test.go b/internal/addrs/provider_test.go index dc9334d76b..19055a984e 100644 --- a/internal/addrs/provider_test.go +++ b/internal/addrs/provider_test.go @@ -19,7 +19,7 @@ func TestProviderString(t *testing.T) { Provider{ Type: "test", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, NewDefaultProvider("test").String(), }, @@ -27,17 +27,17 @@ func TestProviderString(t *testing.T) { Provider{ Type: "test-beta", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, NewDefaultProvider("test-beta").String(), }, { Provider{ Type: "test", - Hostname: "registry.example.com", - Namespace: DefaultProviderNamespace, + Hostname: "registry.terraform.com", + Namespace: "hashicorp", }, - "registry.example.com/" + DefaultProviderNamespace + "/test", + "registry.terraform.com/hashicorp/test", }, { Provider{ @@ -97,17 +97,17 @@ func TestProviderDisplay(t *testing.T) { Provider{ Type: "test", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, - DefaultProviderNamespace + "/test", + "hashicorp/test", }, { Provider{ Type: "test", - Hostname: "registry.example.com", - Namespace: DefaultProviderNamespace, + Hostname: "registry.terraform.com", + Namespace: "hashicorp", }, - "registry.example.com/" + DefaultProviderNamespace + "/test", + "registry.terraform.com/hashicorp/test", }, { Provider{ @@ -136,15 +136,15 @@ func TestProviderIsDefaultProvider(t *testing.T) { Provider{ Type: "test", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, true, }, { Provider{ Type: "test", - Hostname: "registry.example.com", - Namespace: DefaultProviderNamespace, + Hostname: "registry.terraform.com", + Namespace: "hashicorp", }, false, }, @@ -207,15 +207,15 @@ func TestProviderIsBuiltIn(t *testing.T) { Provider{ Type: "test", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, false, }, { Provider{ Type: "test", - Hostname: "registry.example.com", - Namespace: DefaultProviderNamespace, + Hostname: "registry.terraform.com", + Namespace: "hashicorp", }, false, }, @@ -253,7 +253,7 @@ func TestProviderIsLegacy(t *testing.T) { { Provider{ Type: "test", - Hostname: "registry.example.com", + Hostname: "registry.terraform.com", Namespace: LegacyProviderNamespace, }, false, @@ -262,7 +262,7 @@ func TestProviderIsLegacy(t *testing.T) { Provider{ Type: "test", Hostname: DefaultProviderRegistryHost, - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", }, false, }, @@ -281,36 +281,34 @@ func TestParseProviderSourceStr(t *testing.T) { Want Provider Err bool }{ - string(DefaultProviderRegistryHost) + "/" + DefaultProviderNamespace + "/aws": { + "registry.opentofu.org/hashicorp/aws": { Provider{ Type: "aws", - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, }, - // Note: this is a capitalization test and intentionally spells out the namespace intentionally. - string(DefaultProviderRegistryHost) + "/OpenTofu/AWS": { + "registry.opentofu.org/HashiCorp/AWS": { Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, }, - DefaultProviderNamespace + "/aws": { + "hashicorp/aws": { Provider{ Type: "aws", - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, }, - // Note: this is a capitalization test and intentionally spells out the namespace intentionally. - "OpenTofu/AWS": { + "HashiCorp/AWS": { Provider{ Type: "aws", - Namespace: "opentofu", + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, @@ -318,7 +316,7 @@ func TestParseProviderSourceStr(t *testing.T) { "aws": { Provider{ Type: "aws", - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, @@ -326,7 +324,7 @@ func TestParseProviderSourceStr(t *testing.T) { "AWS": { Provider{ Type: "aws", - Namespace: DefaultProviderNamespace, + Namespace: "hashicorp", Hostname: DefaultProviderRegistryHost, }, false, @@ -371,7 +369,7 @@ func TestParseProviderSourceStr(t *testing.T) { Provider{}, true, }, - "badhost!/opentofu/aws": { + "badhost!/hashicorp/aws": { Provider{}, true, }, @@ -395,23 +393,23 @@ func TestParseProviderSourceStr(t *testing.T) { Provider{}, true, }, - "example.com/opentofu/badtype!": { + "example.com/hashicorp/badtype!": { Provider{}, true, }, - "example.com/opentofu/bad--type": { + "example.com/hashicorp/bad--type": { Provider{}, true, }, - "example.com/opentofu/-badtype": { + "example.com/hashicorp/-badtype": { Provider{}, true, }, - "example.com/opentofu/badtype-": { + "example.com/hashicorp/badtype-": { Provider{}, true, }, - "example.com/opentofu/bad.type": { + "example.com/hashicorp/bad.type": { Provider{}, true, }, @@ -421,11 +419,11 @@ func TestParseProviderSourceStr(t *testing.T) { // the longer prefix terraform-provider- to hint for users who might be // accidentally using the git repository name or executable file name // instead of the provider type. - "example.com/opentofu/terraform-provider-bad": { + "example.com/hashicorp/terraform-provider-bad": { Provider{}, true, }, - "example.com/opentofu/terraform-bad": { + "example.com/hashicorp/terraform-bad": { Provider{}, true, }, diff --git a/internal/backend/local/backend_apply_test.go b/internal/backend/local/backend_apply_test.go index 0b489f3c87..77a76e2bc4 100644 --- a/internal/backend/local/backend_apply_test.go +++ b/internal/backend/local/backend_apply_test.go @@ -66,7 +66,7 @@ func TestLocal_applyBasic(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ami = bar `) @@ -241,7 +241,7 @@ func TestLocal_applyError(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ami = bar `) @@ -308,7 +308,7 @@ func TestLocal_applyBackendFail(t *testing.T) { checkState(t, "errored.tfstate", ` test_instance.foo: (tainted) ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ami = bar `) @@ -372,7 +372,7 @@ func testOperationApply(t *testing.T, configDir string) (*backend.Operation, fun // Many of our tests use an overridden "test" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/test")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/test")) return &backend.Operation{ Type: backend.OperationTypeApply, diff --git a/internal/backend/local/backend_plan_test.go b/internal/backend/local/backend_plan_test.go index aafe644cc8..7ac8c98b87 100644 --- a/internal/backend/local/backend_plan_test.go +++ b/internal/backend/local/backend_plan_test.go @@ -725,7 +725,7 @@ func testOperationPlan(t *testing.T, configDir string) (*backend.Operation, func // Many of our tests use an overridden "test" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/test")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/test")) return &backend.Operation{ Type: backend.OperationTypePlan, diff --git a/internal/backend/local/backend_refresh_test.go b/internal/backend/local/backend_refresh_test.go index a125342c2b..1ed97de35a 100644 --- a/internal/backend/local/backend_refresh_test.go +++ b/internal/backend/local/backend_refresh_test.go @@ -53,7 +53,7 @@ func TestLocal_refresh(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) // the backend should be unlocked after a run @@ -122,7 +122,7 @@ func TestLocal_refreshInput(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) } @@ -151,7 +151,7 @@ func TestLocal_refreshValidate(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) } @@ -205,7 +205,7 @@ func TestLocal_refreshValidateProviderConfigured(t *testing.T) { checkState(t, b.StateOutPath, ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) } @@ -275,7 +275,7 @@ func testOperationRefresh(t *testing.T, configDir string) (*backend.Operation, f // Many of our tests use an overridden "test" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/test")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/test")) return &backend.Operation{ Type: backend.OperationTypeRefresh, @@ -297,7 +297,7 @@ func testRefreshState() *states.State { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) return state } diff --git a/internal/backend/remote-state/azure/arm_client.go b/internal/backend/remote-state/azure/arm_client.go index 590b365b26..df8a74a78b 100644 --- a/internal/backend/remote-state/azure/arm_client.go +++ b/internal/backend/remote-state/azure/arm_client.go @@ -71,7 +71,7 @@ func buildArmClient(ctx context.Context, config BackendConfig) (*ArmClient, erro CustomResourceManagerEndpoint: config.CustomResourceManagerEndpoint, MetadataHost: config.MetadataHost, Environment: config.Environment, - ClientSecretDocsLink: "https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret", + ClientSecretDocsLink: "https://registry.opentofu.org/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret", // Service Principal (Client Certificate) ClientCertPassword: config.ClientCertificatePassword, diff --git a/internal/backend/remote/backend.go b/internal/backend/remote/backend.go index 3e847b81b1..051114860f 100644 --- a/internal/backend/remote/backend.go +++ b/internal/backend/remote/backend.go @@ -330,9 +330,6 @@ func (b *Remote) Configure(obj cty.Value) tfdiags.Diagnostics { Token: token, Headers: make(http.Header), RetryLogHook: b.retryLogHook, - // services.Transport defaults to the same cleanhttp pooled transport as tfe.DefaultClient - // We need to pass in this transport for ssl overrides during testing - HTTPClient: &http.Client{Transport: b.services.Transport}, } // Set the version header to the current version. diff --git a/internal/backend/remote/backend_apply_test.go b/internal/backend/remote/backend_apply_test.go index 5ebe043f63..b31dd9363a 100644 --- a/internal/backend/remote/backend_apply_test.go +++ b/internal/backend/remote/backend_apply_test.go @@ -52,7 +52,7 @@ func testOperationApplyWithTimeout(t *testing.T, configDir string, timeout time. // Many of our tests use an overridden "null" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/null")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/null")) return &backend.Operation{ ConfigDir: configDir, diff --git a/internal/backend/remote/backend_plan_test.go b/internal/backend/remote/backend_plan_test.go index 3f5313ec27..a76e41c9c0 100644 --- a/internal/backend/remote/backend_plan_test.go +++ b/internal/backend/remote/backend_plan_test.go @@ -50,7 +50,7 @@ func testOperationPlanWithTimeout(t *testing.T, configDir string, timeout time.D // Many of our tests use an overridden "null" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/null")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/null")) return &backend.Operation{ ConfigDir: configDir, diff --git a/internal/backend/remote/backend_test.go b/internal/backend/remote/backend_test.go index cb3569ce5f..9af6dd1c08 100644 --- a/internal/backend/remote/backend_test.go +++ b/internal/backend/remote/backend_test.go @@ -50,7 +50,7 @@ func TestRemote_config(t *testing.T) { }{ "with_a_nonexisting_organization": { config: cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("app.example.com"), + "hostname": cty.StringVal("app.terraform.io"), "organization": cty.StringVal("nonexisting"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ @@ -58,7 +58,7 @@ func TestRemote_config(t *testing.T) { "prefix": cty.NullVal(cty.String), }), }), - confErr: "organization \"nonexisting\" at host app.example.com not found", + confErr: "organization \"nonexisting\" at host app.terraform.io not found", }, "with_a_missing_hostname": { config: cty.ObjectVal(map[string]cty.Value{ @@ -75,7 +75,7 @@ func TestRemote_config(t *testing.T) { "with_an_unknown_host": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("nonexisting.local"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -88,7 +88,7 @@ func TestRemote_config(t *testing.T) { "without_a_token": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("localhost"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -100,7 +100,7 @@ func TestRemote_config(t *testing.T) { "with_a_name": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -111,7 +111,7 @@ func TestRemote_config(t *testing.T) { "with_a_prefix": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -122,7 +122,7 @@ func TestRemote_config(t *testing.T) { "without_either_a_name_and_a_prefix": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -134,7 +134,7 @@ func TestRemote_config(t *testing.T) { "with_both_a_name_and_a_prefix": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -149,7 +149,7 @@ func TestRemote_config(t *testing.T) { } for name, tc := range cases { - s := testServerTLS(t) + s := testServer(t) b := New(testDisco(s)) // Validate @@ -177,8 +177,8 @@ func TestRemote_versionConstraints(t *testing.T) { }{ "compatible version": { config: cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("localhost"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -189,8 +189,8 @@ func TestRemote_versionConstraints(t *testing.T) { }, "version too old": { config: cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("localhost"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -202,8 +202,8 @@ func TestRemote_versionConstraints(t *testing.T) { }, "version too new": { config: cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("localhost"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -224,27 +224,25 @@ func TestRemote_versionConstraints(t *testing.T) { }() for name, tc := range cases { - t.Run(name, func(t *testing.T) { - s := testServer(t) - b := New(testDisco(s)) + s := testServer(t) + b := New(testDisco(s)) - // Set the version for this test. - tfversion.Prerelease = tc.prerelease - tfversion.Version = tc.version + // Set the version for this test. + tfversion.Prerelease = tc.prerelease + tfversion.Version = tc.version - // Validate - _, valDiags := b.PrepareConfig(tc.config) - if valDiags.HasErrors() { - t.Fatalf("%s: unexpected validation result: %v", name, valDiags.Err()) - } + // Validate + _, valDiags := b.PrepareConfig(tc.config) + if valDiags.HasErrors() { + t.Fatalf("%s: unexpected validation result: %v", name, valDiags.Err()) + } - // Configure - confDiags := b.Configure(tc.config) - if (confDiags.Err() != nil || tc.result != "") && - (confDiags.Err() == nil || !strings.Contains(confDiags.Err().Error(), tc.result)) { - t.Fatalf("%s: unexpected configure result: %v", name, confDiags.Err()) - } - }) + // Configure + confDiags := b.Configure(tc.config) + if (confDiags.Err() != nil || tc.result != "") && + (confDiags.Err() == nil || !strings.Contains(confDiags.Err().Error(), tc.result)) { + t.Fatalf("%s: unexpected configure result: %v", name, confDiags.Err()) + } } } @@ -734,19 +732,19 @@ func TestRemote_VerifyWorkspaceTerraformVersion_ignoreFlagSet(t *testing.T) { if got, want := diags[0].Description().Summary, "OpenTofu version mismatch"; got != want { t.Errorf("wrong summary: got %s, want %s", got, want) } - wantDetail := "The local OpenTofu version (0.14.0) does not match the configured version for remote workspace opentofu/prod (0.13.5)." + wantDetail := "The local OpenTofu version (0.14.0) does not match the configured version for remote workspace hashicorp/prod (0.13.5)." if got := diags[0].Description().Detail; got != wantDetail { t.Errorf("wrong summary: got %s, want %s", got, wantDetail) } } func TestRemote_ServiceDiscoveryAliases(t *testing.T) { - s := testServerTLS(t) + s := testServer(t) b := New(testDisco(s)) diag := b.Configure(cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("app.example.com"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), diff --git a/internal/backend/remote/testing.go b/internal/backend/remote/testing.go index 1684d16f4a..361162fc6e 100644 --- a/internal/backend/remote/testing.go +++ b/internal/backend/remote/testing.go @@ -5,7 +5,6 @@ package remote import ( "context" - "crypto/x509" "fmt" "io" "net/http" @@ -39,7 +38,7 @@ const ( ) var ( - tfeHost = svchost.Hostname("app.example.com") + tfeHost = svchost.Hostname("app.terraform.io") credsSrc = auth.StaticCredentialsSource(map[svchost.Hostname]map[string]interface{}{ tfeHost: {"token": testCred}, }) @@ -71,8 +70,8 @@ func testInput(t *testing.T, answers map[string]string) *mockInput { func testBackendDefault(t *testing.T) (*Remote, func()) { obj := cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("app.example.com"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -84,8 +83,8 @@ func testBackendDefault(t *testing.T) (*Remote, func()) { func testBackendNoDefault(t *testing.T) (*Remote, func()) { obj := cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("app.example.com"), - "organization": cty.StringVal("opentofu"), + "hostname": cty.StringVal("app.terraform.io"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -97,7 +96,7 @@ func testBackendNoDefault(t *testing.T) (*Remote, func()) { func testBackendNoOperations(t *testing.T) (*Remote, func()) { obj := cty.ObjectVal(map[string]cty.Value{ - "hostname": cty.StringVal("app.example.com"), + "hostname": cty.StringVal("app.terraform.io"), "organization": cty.StringVal("no-operations"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ @@ -201,11 +200,12 @@ func testLocalBackend(t *testing.T, remote *Remote) backend.Enhanced { return b } -func getTestServerMux(t *testing.T) http.Handler { +// testServer returns a *httptest.Server used for local testing. +func testServer(t *testing.T) *httptest.Server { mux := http.NewServeMux() // Respond to service discovery calls. - mux.HandleFunc("/.well-known/terraform.json", func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc("/well-known/terraform.json", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") io.WriteString(w, `{ "state.v2": "/api/v2/", @@ -231,8 +231,8 @@ func getTestServerMux(t *testing.T) http.Handler { w.Header().Set("TFP-API-Version", "2.4") }) - // Respond to the initial query to read the opentofu org entitlements. - mux.HandleFunc("/api/v2/organizations/opentofu/entitlement-set", func(w http.ResponseWriter, r *http.Request) { + // Respond to the initial query to read the hashicorp org entitlements. + mux.HandleFunc("/api/v2/organizations/hashicorp/entitlement-set", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/vnd.api+json") io.WriteString(w, `{ "data": { @@ -269,7 +269,7 @@ func getTestServerMux(t *testing.T) http.Handler { }`) }) - // All tests that are assumed to pass will use the opentofu organization, + // All tests that are assumed to pass will use the hashicorp organization, // so for all other organization requests we will return a 404. mux.HandleFunc("/api/v2/organizations/", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(404) @@ -282,22 +282,11 @@ func getTestServerMux(t *testing.T) http.Handler { ] }`) }) - return mux + + return httptest.NewServer(mux) } -// testServer returns a *httptest.Server used for local testing. -func testServer(t *testing.T) *httptest.Server { - return httptest.NewServer(getTestServerMux(t)) -} - -// testServerTLS returns a *httptest.Server used for local testing with TLS enabled. -func testServerTLS(t *testing.T) *httptest.Server { - ts := httptest.NewUnstartedServer(getTestServerMux(t)) - ts.StartTLS() - return ts -} - -// testDisco returns a *disco.Disco mapping app.example.com and +// testDisco returns a *disco.Disco mapping app.terraform.io and // localhost to a local test server. func testDisco(s *httptest.Server) *disco.Disco { services := map[string]interface{}{ @@ -307,14 +296,9 @@ func testDisco(s *httptest.Server) *disco.Disco { } d := disco.NewWithCredentialsSource(credsSrc) d.SetUserAgent(httpclient.OpenTofuUserAgent(version.String())) - if s.TLS != nil { - certPool := x509.NewCertPool() - certPool.AddCert(s.Certificate()) - d.Transport = httpclient.NewTransportWithCustomTrustedCertificates(certPool) - } - d.ForceHostServices("app.example.com", services) - d.ForceHostServices("localhost", services) + d.ForceHostServices(svchost.Hostname("app.terraform.io"), services) + d.ForceHostServices(svchost.Hostname("localhost"), services) return d } diff --git a/internal/builtin/providers/tf/testdata/complex_outputs.tfstate b/internal/builtin/providers/tf/testdata/complex_outputs.tfstate index 060f319e80..e67d838043 100644 --- a/internal/builtin/providers/tf/testdata/complex_outputs.tfstate +++ b/internal/builtin/providers/tf/testdata/complex_outputs.tfstate @@ -54,7 +54,7 @@ "type": "test_resource", "name": "main", "each": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "index_key": 0, diff --git a/internal/cloud/backend.go b/internal/cloud/backend.go index 64a116eab2..745c38cfe6 100644 --- a/internal/cloud/backend.go +++ b/internal/cloud/backend.go @@ -322,9 +322,6 @@ func (b *Cloud) Configure(obj cty.Value) tfdiags.Diagnostics { Token: token, Headers: make(http.Header), RetryLogHook: b.retryLogHook, - // services.Transport defaults to the same cleanhttp pooled transport as tfe.DefaultClient - // We need to pass in this transport for ssl overrides during testing - HTTPClient: &http.Client{Transport: b.services.Transport}, } // Set the version header to the current version. diff --git a/internal/cloud/backend_apply_test.go b/internal/cloud/backend_apply_test.go index 07699f41d8..c299f2af54 100644 --- a/internal/cloud/backend_apply_test.go +++ b/internal/cloud/backend_apply_test.go @@ -56,7 +56,7 @@ func testOperationApplyWithTimeout(t *testing.T, configDir string, timeout time. // Many of our tests use an overridden "null" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/null")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/null")) return &backend.Operation{ ConfigDir: configDir, diff --git a/internal/cloud/backend_plan_test.go b/internal/cloud/backend_plan_test.go index 96c0634868..ddf8aae099 100644 --- a/internal/cloud/backend_plan_test.go +++ b/internal/cloud/backend_plan_test.go @@ -53,7 +53,7 @@ func testOperationPlanWithTimeout(t *testing.T, configDir string, timeout time.D // Many of our tests use an overridden "null" provider that's just in-memory // inside the test process, not a separate plugin on disk. depLocks := depsfile.NewLocks() - depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/opentofu/null")) + depLocks.SetProviderOverridden(addrs.MustParseProviderSourceString("registry.opentofu.org/hashicorp/null")) return &backend.Operation{ ConfigDir: configDir, diff --git a/internal/cloud/backend_test.go b/internal/cloud/backend_test.go index 31023b899e..8d3458a49c 100644 --- a/internal/cloud/backend_test.go +++ b/internal/cloud/backend_test.go @@ -58,7 +58,7 @@ func TestCloud_backendWithoutHost(t *testing.T) { obj := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal(testBackendSingleWorkspaceName), @@ -221,7 +221,7 @@ func TestCloud_PrepareConfigWithEnvVars(t *testing.T) { }, "null workspace": { config: cty.ObjectVal(map[string]cty.Value{ - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "workspaces": cty.NullVal(cty.String), }), vars: map[string]string{ @@ -234,7 +234,7 @@ func TestCloud_PrepareConfigWithEnvVars(t *testing.T) { "workspaces": cty.NullVal(cty.String), }), vars: map[string]string{ - "TF_CLOUD_ORGANIZATION": "opentofu", + "TF_CLOUD_ORGANIZATION": "hashicorp", "TF_WORKSPACE": "my-workspace", "TF_CLOUD_PROJECT": "example-project", }, @@ -358,7 +358,7 @@ func TestCloud_config(t *testing.T) { "with_a_non_tfe_host": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("nontfe.local"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -372,7 +372,7 @@ func TestCloud_config(t *testing.T) { "without_a_token": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("localhost"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -385,7 +385,7 @@ func TestCloud_config(t *testing.T) { "with_tags": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -401,7 +401,7 @@ func TestCloud_config(t *testing.T) { "with_a_name": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -413,7 +413,7 @@ func TestCloud_config(t *testing.T) { "without_a_name_tags": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -426,7 +426,7 @@ func TestCloud_config(t *testing.T) { "with_both_a_name_and_tags": { config: cty.ObjectVal(map[string]cty.Value{ "hostname": cty.NullVal(cty.String), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), @@ -468,11 +468,9 @@ func TestCloud_config(t *testing.T) { } func TestCloud_configVerifyMinimumTFEVersion(t *testing.T) { - skipIfTFENotEnabled(t) - config := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -507,11 +505,9 @@ func TestCloud_configVerifyMinimumTFEVersion(t *testing.T) { } func TestCloud_configVerifyMinimumTFEVersionInAutomation(t *testing.T) { - skipIfTFENotEnabled(t) - config := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -555,7 +551,7 @@ func TestCloud_setUnavailableTerraformVersion(t *testing.T) { config := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -1210,7 +1206,7 @@ func TestCloud_VerifyWorkspaceTerraformVersion_ignoreFlagSet(t *testing.T) { if got, want := diags[0].Description().Summary, "Incompatible TF version"; got != want { t.Errorf("wrong summary: got %s, want %s", got, want) } - wantDetail := "The local OpenTofu version (0.14.0) does not meet the version requirements for remote workspace opentofu/app-prod (0.13.5)." + wantDetail := "The local OpenTofu version (0.14.0) does not meet the version requirements for remote workspace hashicorp/app-prod (0.13.5)." if got := diags[0].Description().Detail; got != wantDetail { t.Errorf("wrong summary: got %s, want %s", got, wantDetail) } @@ -1298,7 +1294,7 @@ func TestCloud_ServiceDiscoveryAliases(t *testing.T) { diag := b.Configure(cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal("prod"), diff --git a/internal/cloud/errored.tfstate b/internal/cloud/errored.tfstate index e5a4d364d0..0e31ca6285 100644 --- a/internal/cloud/errored.tfstate +++ b/internal/cloud/errored.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider": "provider[\"registry.opentofu.org/opentofu/null\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/null\"]", "instances": [ { "schema_version": 0, diff --git a/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json b/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json index dc3950086a..49551af229 100644 --- a/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json @@ -1 +1 @@ -{"plan_format_version":"1.1","resource_drift":[],"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","change":{"actions":["create"],"before":null,"after":{"triggers":null},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"relevant_attributes":[],"output_changes":{"complex":{"actions":["create"],"before":null,"after":{"keyA":{"someList":[1,2,3]},"keyB":{"someBool":true,"someStr":"hello"}},"after_unknown":false,"before_sensitive":false,"after_sensitive":false},"secret":{"actions":["create"],"before":null,"after":"8517896e47af3c9ca19a694ea0d6cc30b0dccf08598f33d93e583721fd5f3032","after_unknown":false,"before_sensitive":true,"after_sensitive":true},"simple":{"actions":["create"],"before":null,"after":["some","list"],"after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"provider_schemas":{"registry.opentofu.org/opentofu/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.opentofu.org/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"plain","deprecated":true}}}}},"provider_format_version":"1.0"} \ No newline at end of file +{"plan_format_version":"1.1","resource_drift":[],"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","change":{"actions":["create"],"before":null,"after":{"triggers":null},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"relevant_attributes":[],"output_changes":{"complex":{"actions":["create"],"before":null,"after":{"keyA":{"someList":[1,2,3]},"keyB":{"someBool":true,"someStr":"hello"}},"after_unknown":false,"before_sensitive":false,"after_sensitive":false},"secret":{"actions":["create"],"before":null,"after":"8517896e47af3c9ca19a694ea0d6cc30b0dccf08598f33d93e583721fd5f3032","after_unknown":false,"before_sensitive":true,"after_sensitive":true},"simple":{"actions":["create"],"before":null,"after":["some","list"],"after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"provider_schemas":{"registry.opentofu.org/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.opentofu.org/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"plain","deprecated":true}}}}},"provider_format_version":"1.0"} \ No newline at end of file diff --git a/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json b/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json index aaeebd3faa..3e3b067798 100644 --- a/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json b/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json index aaeebd3faa..3e3b067798 100644 --- a/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/apply-json/plan-redacted.json b/internal/cloud/testdata/apply-json/plan-redacted.json index aaeebd3faa..3e3b067798 100644 --- a/internal/cloud/testdata/apply-json/plan-redacted.json +++ b/internal/cloud/testdata/apply-json/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json b/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json index aaeebd3faa..3e3b067798 100644 --- a/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/plan-json-basic/plan-redacted.json b/internal/cloud/testdata/plan-json-basic/plan-redacted.json index aaeebd3faa..3e3b067798 100644 --- a/internal/cloud/testdata/plan-json-basic/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-basic/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/plan-json-basic/plan-unredacted.json b/internal/cloud/testdata/plan-json-basic/plan-unredacted.json index 983cfb4cc1..9ae22186ae 100644 --- a/internal/cloud/testdata/plan-json-basic/plan-unredacted.json +++ b/internal/cloud/testdata/plan-json-basic/plan-unredacted.json @@ -1 +1 @@ -{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","schema_version":0,"values":{"triggers":null},"sensitive_values":{}}]}},"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","change":{"actions":["create"],"before":null,"after":{"triggers":null},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"configuration":{"provider_config":{"null":{"name":"null","full_name":"registry.opentofu.org/opentofu/null"}},"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_config_key":"null","schema_version":0}]}}} +{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","schema_version":0,"values":{"triggers":null},"sensitive_values":{}}]}},"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","change":{"actions":["create"],"before":null,"after":{"triggers":null},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"configuration":{"provider_config":{"null":{"name":"null","full_name":"registry.opentofu.org/hashicorp/null"}},"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_config_key":"null","schema_version":0}]}}} diff --git a/internal/cloud/testdata/plan-json-full/plan-redacted.json b/internal/cloud/testdata/plan-json-full/plan-redacted.json index 4afbc6e8d9..a08e1181ae 100644 --- a/internal/cloud/testdata/plan-json-full/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-full/plan-redacted.json @@ -1 +1 @@ -{"plan_format_version":"1.1","resource_drift":[{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","change":{"actions":["delete"],"before":{"bool":true,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after":null,"after_unknown":{},"before_sensitive":{},"after_sensitive":false}}],"resource_changes":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{}}}],"relevant_attributes":[],"output_changes":{},"provider_schemas":{"registry.opentofu.org/opentofu/tfcoremock":{"provider":{"version":0,"block":{"attributes":{"data_directory":{"type":"string","description":"The directory that the provider should use to read the human-readable JSON files for each requested data source. Defaults to `data.resource`.","description_kind":"markdown","optional":true},"resource_directory":{"type":"string","description":"The directory that the provider should use to write the human-readable JSON files for each managed resource. If `use_only_state` is set to `true` then this value does not matter. Defaults to `terraform.resource`.","description_kind":"markdown","optional":true},"use_only_state":{"type":"bool","description":"If set to true the provider will rely only on the Terraform state file to load managed resources and will not write anything to disk. Defaults to `false`.","description_kind":"markdown","optional":true}},"description":"The `tfcoremock` provider is intended to aid with testing the Terraform core libraries and the Terraform CLI. This provider should allow users to define all possible Terraform configurations and run them through the Terraform core platform.\n\nThe provider supplies two static resources:\n\n- `tfcoremock_simple_resource`\n- `tfcoremock_complex_resource`\n \nUsers can then define additional dynamic resources by supplying a `dynamic_resources.json` file alongside their root Terraform configuration. These dynamic resources can be used to model any Terraform configuration not covered by the provided static resources.\n\nBy default, all resources created by the provider are then converted into a human-readable JSON format and written out to the resource directory. This behaviour can be disabled by turning on the `use_only_state` flag in the provider schema (this is useful when running the provider in a Terraform Cloud environment). The resource directory defaults to `terraform.resource`.\n\nAll resources supplied by the provider (including the simple and complex resource as well as any dynamic resources) are duplicated into data sources. The data sources should be supplied in the JSON format that resources are written into. The provider looks into the data directory, which defaults to `terraform.data`.\n\nFinally, all resources (and data sources) supplied by the provider have an `id` attribute that is generated if not set by the configuration. Dynamic resources cannot define an `id` attribute as the provider will create one for them. The `id` attribute is used as name of the human-readable JSON files held in the resource and data directories.","description_kind":"markdown"}},"resource_schemas":{"tfcoremock_complex_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A complex resource that contains five basic attributes, four complex attributes, and two nested blocks.\n\nThe five basic attributes are `boolean`, `number`, `string`, `float`, and `integer` (as with the `tfcoremock_simple_resource`).\n\nThe complex attributes are a `map`, a `list`, a `set`, and an `object`. The `object` type contains the same set of attributes as the schema itself, making a recursive structure. The `list`, `set` and `map` all contain objects which are also recursive. Blocks cannot go into attributes, so the complex attributes do not recurse on the block types.\n\nThe blocks are a nested `list_block` and a nested `set_block`. The blocks contain the same set of attributes and blocks as the schema itself, also making a recursive structure. Note, blocks contain both attributes and more blocks so the block types are fully recursive.\n\nThe complex and block types are nested 3 times, at the leaf level of recursion the complex attributes and blocks only contain the simple (ie. non-recursive) attributes. This prevents a potentially infinite level of recursion.","description_kind":"markdown"}},"tfcoremock_simple_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A simple resource that holds optional attributes for the five basic types: `bool`, `number`, `string`, `float`, and `integer`.","description_kind":"markdown"}}},"data_source_schemas":{"tfcoremock_complex_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A complex resource that contains five basic attributes, four complex attributes, and two nested blocks.\n\nThe five basic attributes are `boolean`, `number`, `string`, `float`, and `integer` (as with the `tfcoremock_simple_resource`).\n\nThe complex attributes are a `map`, a `list`, a `set`, and an `object`. The `object` type contains the same set of attributes as the schema itself, making a recursive structure. The `list`, `set` and `map` all contain objects which are also recursive. Blocks cannot go into attributes, so the complex attributes do not recurse on the block types.\n\nThe blocks are a nested `list_block` and a nested `set_block`. The blocks contain the same set of attributes and blocks as the schema itself, also making a recursive structure. Note, blocks contain both attributes and more blocks so the block types are fully recursive.\n\nThe complex and block types are nested 3 times, at the leaf level of recursion the complex attributes and blocks only contain the simple (ie. non-recursive) attributes. This prevents a potentially infinite level of recursion.","description_kind":"markdown"}},"tfcoremock_simple_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A simple resource that holds optional attributes for the five basic types: `bool`, `number`, `string`, `float`, and `integer`.","description_kind":"markdown"}}}}},"provider_format_version":"1.0"} \ No newline at end of file +{"plan_format_version":"1.1","resource_drift":[{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","change":{"actions":["delete"],"before":{"bool":true,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after":null,"after_unknown":{},"before_sensitive":{},"after_sensitive":false}}],"resource_changes":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{}}}],"relevant_attributes":[],"output_changes":{},"provider_schemas":{"registry.opentofu.org/hashicorp/tfcoremock":{"provider":{"version":0,"block":{"attributes":{"data_directory":{"type":"string","description":"The directory that the provider should use to read the human-readable JSON files for each requested data source. Defaults to `data.resource`.","description_kind":"markdown","optional":true},"resource_directory":{"type":"string","description":"The directory that the provider should use to write the human-readable JSON files for each managed resource. If `use_only_state` is set to `true` then this value does not matter. Defaults to `terraform.resource`.","description_kind":"markdown","optional":true},"use_only_state":{"type":"bool","description":"If set to true the provider will rely only on the Terraform state file to load managed resources and will not write anything to disk. Defaults to `false`.","description_kind":"markdown","optional":true}},"description":"The `tfcoremock` provider is intended to aid with testing the Terraform core libraries and the Terraform CLI. This provider should allow users to define all possible Terraform configurations and run them through the Terraform core platform.\n\nThe provider supplies two static resources:\n\n- `tfcoremock_simple_resource`\n- `tfcoremock_complex_resource`\n \nUsers can then define additional dynamic resources by supplying a `dynamic_resources.json` file alongside their root Terraform configuration. These dynamic resources can be used to model any Terraform configuration not covered by the provided static resources.\n\nBy default, all resources created by the provider are then converted into a human-readable JSON format and written out to the resource directory. This behaviour can be disabled by turning on the `use_only_state` flag in the provider schema (this is useful when running the provider in a Terraform Cloud environment). The resource directory defaults to `terraform.resource`.\n\nAll resources supplied by the provider (including the simple and complex resource as well as any dynamic resources) are duplicated into data sources. The data sources should be supplied in the JSON format that resources are written into. The provider looks into the data directory, which defaults to `terraform.data`.\n\nFinally, all resources (and data sources) supplied by the provider have an `id` attribute that is generated if not set by the configuration. Dynamic resources cannot define an `id` attribute as the provider will create one for them. The `id` attribute is used as name of the human-readable JSON files held in the resource and data directories.","description_kind":"markdown"}},"resource_schemas":{"tfcoremock_complex_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A complex resource that contains five basic attributes, four complex attributes, and two nested blocks.\n\nThe five basic attributes are `boolean`, `number`, `string`, `float`, and `integer` (as with the `tfcoremock_simple_resource`).\n\nThe complex attributes are a `map`, a `list`, a `set`, and an `object`. The `object` type contains the same set of attributes as the schema itself, making a recursive structure. The `list`, `set` and `map` all contain objects which are also recursive. Blocks cannot go into attributes, so the complex attributes do not recurse on the block types.\n\nThe blocks are a nested `list_block` and a nested `set_block`. The blocks contain the same set of attributes and blocks as the schema itself, also making a recursive structure. Note, blocks contain both attributes and more blocks so the block types are fully recursive.\n\nThe complex and block types are nested 3 times, at the leaf level of recursion the complex attributes and blocks only contain the simple (ie. non-recursive) attributes. This prevents a potentially infinite level of recursion.","description_kind":"markdown"}},"tfcoremock_simple_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A simple resource that holds optional attributes for the five basic types: `bool`, `number`, `string`, `float`, and `integer`.","description_kind":"markdown"}}},"data_source_schemas":{"tfcoremock_complex_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"list":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description":"A list attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"map":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"map"},"description":"A map attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"object":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"An object attribute that matches the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"set":{"nested_type":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"nesting_mode":"set"},"description":"A set attribute that contains objects that match the root schema, allowing for nested collections and objects to be modelled.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"block_types":{"list_block":{"nesting_mode":"list","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A list block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}},"set_block":{"nesting_mode":"set","block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A set block that contains the same attributes and blocks as the root schema, allowing nested blocks and objects to be modelled.","description_kind":"markdown"}}},"description":"A complex resource that contains five basic attributes, four complex attributes, and two nested blocks.\n\nThe five basic attributes are `boolean`, `number`, `string`, `float`, and `integer` (as with the `tfcoremock_simple_resource`).\n\nThe complex attributes are a `map`, a `list`, a `set`, and an `object`. The `object` type contains the same set of attributes as the schema itself, making a recursive structure. The `list`, `set` and `map` all contain objects which are also recursive. Blocks cannot go into attributes, so the complex attributes do not recurse on the block types.\n\nThe blocks are a nested `list_block` and a nested `set_block`. The blocks contain the same set of attributes and blocks as the schema itself, also making a recursive structure. Note, blocks contain both attributes and more blocks so the block types are fully recursive.\n\nThe complex and block types are nested 3 times, at the leaf level of recursion the complex attributes and blocks only contain the simple (ie. non-recursive) attributes. This prevents a potentially infinite level of recursion.","description_kind":"markdown"}},"tfcoremock_simple_resource":{"version":0,"block":{"attributes":{"bool":{"type":"bool","description":"An optional boolean attribute, can be true or false.","description_kind":"markdown","optional":true},"float":{"type":"number","description":"An optional float attribute.","description_kind":"markdown","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"integer":{"type":"number","description":"An optional integer attribute.","description_kind":"markdown","optional":true},"number":{"type":"number","description":"An optional number attribute, can be an integer or a float.","description_kind":"markdown","optional":true},"string":{"type":"string","description":"An optional string attribute.","description_kind":"markdown","optional":true}},"description":"A simple resource that holds optional attributes for the five basic types: `bool`, `number`, `string`, `float`, and `integer`.","description_kind":"markdown"}}}}},"provider_format_version":"1.0"} \ No newline at end of file diff --git a/internal/cloud/testdata/plan-json-full/plan-unredacted.json b/internal/cloud/testdata/plan-json-full/plan-unredacted.json index 8f09ab6462..47da5a7084 100644 --- a/internal/cloud/testdata/plan-json-full/plan-unredacted.json +++ b/internal/cloud/testdata/plan-json-full/plan-unredacted.json @@ -1 +1 @@ -{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","schema_version":0,"values":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"sensitive_values":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","schema_version":0,"values":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"sensitive_values":{}}]}},"resource_changes":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/opentofu/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{}}}],"configuration":{"provider_config":{"tfcoremock":{"name":"tfcoremock","full_name":"registry.opentofu.org/opentofu/tfcoremock"}},"root_module":{"resources":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_config_key":"tfcoremock","expressions":{"bool":{"constant_value":true},"float":{"constant_value":0},"id":{"constant_value":"my-complex-resource"},"integer":{"constant_value":0},"list":{"constant_value":[{"string":"list.one"},{"string":"list.two"}]},"list_block":[{"string":{"constant_value":"list_block.one"}},{"string":{"constant_value":"list_block.two"}},{"string":{"constant_value":"list_block.three"}}],"map":{"constant_value":{"one":{"string":"map.one"},"two":{"string":"map.two"}}},"number":{"constant_value":0},"object":{"constant_value":{"object":{"string":"nested nested object"},"string":"nested object"}},"set":{"constant_value":[{"string":"set.one"},{"string":"set.two"}]},"set_block":[{"string":{"constant_value":"set_block.one"}},{"string":{"constant_value":"set_block.two"}}],"string":{"constant_value":"Hello, world!"}},"schema_version":0},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_config_key":"tfcoremock","expressions":{"bool":{"constant_value":false},"float":{"constant_value":0},"id":{"constant_value":"my-simple-resource"},"integer":{"constant_value":0},"number":{"constant_value":0},"string":{"constant_value":"Hello, world!"}},"schema_version":0}]}}} +{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","schema_version":0,"values":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"sensitive_values":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","schema_version":0,"values":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"sensitive_values":{}}]}},"resource_changes":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":true,"float":0,"id":"my-complex-resource","integer":0,"list":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"list.two"}],"list_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.two"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"list_block.three"}],"map":{"one":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.one"},"two":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"map.two"}},"number":0,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"nested nested object"},"set":null,"string":"nested object"},"set":[{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.one"},{"bool":null,"float":null,"integer":null,"list":null,"map":null,"number":null,"object":null,"set":null,"string":"set.two"}],"set_block":[{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.one"},{"bool":null,"float":null,"integer":null,"list":null,"list_block":[],"map":null,"number":null,"object":null,"set":null,"set_block":[],"string":"set_block.two"}],"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{"list":[{},{}],"list_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}],"map":{"one":{},"two":{}},"object":{"object":{}},"set":[{},{}],"set_block":[{"list_block":[],"set_block":[]},{"list_block":[],"set_block":[]}]}}},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_name":"registry.opentofu.org/hashicorp/tfcoremock","change":{"actions":["create"],"before":null,"after":{"bool":false,"float":0,"id":"my-simple-resource","integer":0,"number":0,"string":"Hello, world!"},"after_unknown":{},"before_sensitive":false,"after_sensitive":{}}}],"configuration":{"provider_config":{"tfcoremock":{"name":"tfcoremock","full_name":"registry.opentofu.org/hashicorp/tfcoremock"}},"root_module":{"resources":[{"address":"tfcoremock_complex_resource.example","mode":"managed","type":"tfcoremock_complex_resource","name":"example","provider_config_key":"tfcoremock","expressions":{"bool":{"constant_value":true},"float":{"constant_value":0},"id":{"constant_value":"my-complex-resource"},"integer":{"constant_value":0},"list":{"constant_value":[{"string":"list.one"},{"string":"list.two"}]},"list_block":[{"string":{"constant_value":"list_block.one"}},{"string":{"constant_value":"list_block.two"}},{"string":{"constant_value":"list_block.three"}}],"map":{"constant_value":{"one":{"string":"map.one"},"two":{"string":"map.two"}}},"number":{"constant_value":0},"object":{"constant_value":{"object":{"string":"nested nested object"},"string":"nested object"}},"set":{"constant_value":[{"string":"set.one"},{"string":"set.two"}]},"set_block":[{"string":{"constant_value":"set_block.one"}},{"string":{"constant_value":"set_block.two"}}],"string":{"constant_value":"Hello, world!"}},"schema_version":0},{"address":"tfcoremock_simple_resource.example","mode":"managed","type":"tfcoremock_simple_resource","name":"example","provider_config_key":"tfcoremock","expressions":{"bool":{"constant_value":false},"float":{"constant_value":0},"id":{"constant_value":"my-simple-resource"},"integer":{"constant_value":0},"number":{"constant_value":0},"string":{"constant_value":"Hello, world!"}},"schema_version":0}]}}} diff --git a/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json b/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json index a5283cc21f..01a31a8176 100644 --- a/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "no-op" @@ -29,7 +29,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/cloud/testdata/plan-json-no-changes/plan-unredacted.json b/internal/cloud/testdata/plan-json-no-changes/plan-unredacted.json index ff53d6308c..96566db11c 100644 --- a/internal/cloud/testdata/plan-json-no-changes/plan-unredacted.json +++ b/internal/cloud/testdata/plan-json-no-changes/plan-unredacted.json @@ -1 +1 @@ -{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","schema_version":0,"values":{"id":"3549869958859575216","triggers":null},"sensitive_values":{}}]}},"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","change":{"actions":["no-op"],"before":{"id":"3549869958859575216","triggers":null},"after":{"id":"3549869958859575216","triggers":null},"after_unknown":{},"before_sensitive":{},"after_sensitive":{}}}],"prior_state":{"format_version":"1.0","terraform_version":"1.4.4","values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/opentofu/null","schema_version":0,"values":{"id":"3549869958859575216","triggers":null},"sensitive_values":{}}]}}},"configuration":{"provider_config":{"null":{"name":"null","full_name":"registry.opentofu.org/opentofu/null"}},"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_config_key":"null","schema_version":0}]}}} +{"format_version":"1.1","terraform_version":"1.4.4","planned_values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","schema_version":0,"values":{"id":"3549869958859575216","triggers":null},"sensitive_values":{}}]}},"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","change":{"actions":["no-op"],"before":{"id":"3549869958859575216","triggers":null},"after":{"id":"3549869958859575216","triggers":null},"after_unknown":{},"before_sensitive":{},"after_sensitive":{}}}],"prior_state":{"format_version":"1.0","terraform_version":"1.4.4","values":{"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.opentofu.org/hashicorp/null","schema_version":0,"values":{"id":"3549869958859575216","triggers":null},"sensitive_values":{}}]}}},"configuration":{"provider_config":{"null":{"name":"null","full_name":"registry.opentofu.org/hashicorp/null"}},"root_module":{"resources":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_config_key":"null","schema_version":0}]}}} diff --git a/internal/cloud/testing.go b/internal/cloud/testing.go index 5954eefd4d..90cffd00ab 100644 --- a/internal/cloud/testing.go +++ b/internal/cloud/testing.go @@ -12,7 +12,6 @@ import ( "net/http" "net/http/httptest" "net/url" - "os" "path" "strconv" "testing" @@ -59,12 +58,6 @@ var ( } ) -func skipIfTFENotEnabled(t *testing.T) { - if os.Getenv("TF_TFC_TEST") == "" { - t.Skip("this test accesses app.terraform.io; set TF_TFC_TEST=1 to run it") - } -} - // mockInput is a mock implementation of tofu.UIInput. type mockInput struct { answers map[string]string @@ -97,7 +90,7 @@ func testBackendWithName(t *testing.T) (*Cloud, func()) { func testBackendAndMocksWithName(t *testing.T) (*Cloud, *MockClient, func()) { obj := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal(testBackendSingleWorkspaceName), @@ -111,7 +104,7 @@ func testBackendAndMocksWithName(t *testing.T) (*Cloud, *MockClient, func()) { func testBackendWithTags(t *testing.T) (*Cloud, func()) { obj := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.NullVal(cty.String), @@ -145,7 +138,7 @@ func testBackendNoOperations(t *testing.T) (*Cloud, func()) { func testBackendWithHandlers(t *testing.T, handlers map[string]func(http.ResponseWriter, *http.Request)) (*Cloud, func()) { obj := cty.ObjectVal(map[string]cty.Value{ "hostname": cty.StringVal("app.terraform.io"), - "organization": cty.StringVal("opentofu"), + "organization": cty.StringVal("hashicorp"), "token": cty.NullVal(cty.String), "workspaces": cty.ObjectVal(map[string]cty.Value{ "name": cty.StringVal(testBackendSingleWorkspaceName), @@ -232,8 +225,6 @@ func testBackendWithOutputs(t *testing.T) (*Cloud, func()) { } func testBackend(t *testing.T, obj cty.Value, handlers map[string]func(http.ResponseWriter, *http.Request)) (*Cloud, *MockClient, func()) { - skipIfTFENotEnabled(t) - var s *httptest.Server if handlers != nil { s = testServerWithHandlers(handlers) @@ -387,8 +378,6 @@ func testLocalBackend(t *testing.T, cloud *Cloud) backend.Enhanced { // testServer returns a started *httptest.Server used for local testing with the default set of // request handlers. func testServer(t *testing.T) *httptest.Server { - skipIfTFENotEnabled(t) - return testServerWithHandlers(testDefaultRequestHandlers) } @@ -409,8 +398,6 @@ func testServerWithHandlers(handlers map[string]func(http.ResponseWriter, *http. } func testServerWithSnapshotsEnabled(t *testing.T, enabled bool) *httptest.Server { - skipIfTFENotEnabled(t) - var serverURL string server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { t.Log(r.Method, r.URL.String()) @@ -576,7 +563,7 @@ func mockColorize() *colorstring.Colorize { } func mockSROWorkspace(t *testing.T, b *Cloud, workspaceName string) { - _, err := b.client.Workspaces.Update(context.Background(), "opentofu", workspaceName, tfe.WorkspaceUpdateOptions{ + _, err := b.client.Workspaces.Update(context.Background(), "hashicorp", workspaceName, tfe.WorkspaceUpdateOptions{ StructuredRunOutputEnabled: tfe.Bool(true), TerraformVersion: tfe.String("1.4.0"), }) diff --git a/internal/command/cliconfig/provider_installation_test.go b/internal/command/cliconfig/provider_installation_test.go index 25361b202c..0ff851f6f9 100644 --- a/internal/command/cliconfig/provider_installation_test.go +++ b/internal/command/cliconfig/provider_installation_test.go @@ -43,8 +43,8 @@ func TestLoadConfig_providerInstallation(t *testing.T) { }, DevOverrides: map[addrs.Provider]getproviders.PackageLocalDir{ - addrs.MustParseProviderSourceString("opentofu/boop"): getproviders.PackageLocalDir(filepath.FromSlash("/tmp/boop")), - addrs.MustParseProviderSourceString("opentofu/blorp"): getproviders.PackageLocalDir(filepath.FromSlash("/tmp/blorp")), + addrs.MustParseProviderSourceString("hashicorp/boop"): getproviders.PackageLocalDir(filepath.FromSlash("/tmp/boop")), + addrs.MustParseProviderSourceString("hashicorp/blorp"): getproviders.PackageLocalDir(filepath.FromSlash("/tmp/blorp")), }, }, }, diff --git a/internal/command/cliconfig/testdata/provider-installation b/internal/command/cliconfig/testdata/provider-installation index e07744f489..6f14db2984 100644 --- a/internal/command/cliconfig/testdata/provider-installation +++ b/internal/command/cliconfig/testdata/provider-installation @@ -1,7 +1,7 @@ provider_installation { dev_overrides { - "opentofu/boop" = "/tmp/bloop/../boop" - "opentofu/blorp" = "/tmp/blorp" + "hashicorp/boop" = "/tmp/bloop/../boop" + "hashicorp/blorp" = "/tmp/blorp" } filesystem_mirror { path = "/tmp/example1" diff --git a/internal/command/cliconfig/testdata/provider-installation.json b/internal/command/cliconfig/testdata/provider-installation.json index a700471f0c..f73023523e 100644 --- a/internal/command/cliconfig/testdata/provider-installation.json +++ b/internal/command/cliconfig/testdata/provider-installation.json @@ -1,8 +1,8 @@ { "provider_installation": { "dev_overrides": { - "opentofu/boop": "/tmp/bloop/../boop", - "opentofu/blorp": "/tmp/blorp" + "hashicorp/boop": "/tmp/bloop/../boop", + "hashicorp/blorp": "/tmp/blorp" }, "filesystem_mirror": [{ "path": "/tmp/example1", diff --git a/internal/command/command_test.go b/internal/command/command_test.go index 1b8fb68053..52fc55c8a5 100644 --- a/internal/command/command_test.go +++ b/internal/command/command_test.go @@ -140,8 +140,8 @@ func testFixturePath(name string) string { func metaOverridesForProvider(p providers.Interface) *testingOverrides { return &testingOverrides{ Providers: map[addrs.Provider]providers.Factory{ - addrs.NewDefaultProvider("test"): providers.FactoryFixed(p), - addrs.NewProvider(addrs.DefaultProviderRegistryHost, "opentofu2", "test"): providers.FactoryFixed(p), + addrs.NewDefaultProvider("test"): providers.FactoryFixed(p), + addrs.NewProvider(addrs.DefaultProviderRegistryHost, "hashicorp2", "test"): providers.FactoryFixed(p), }, } } @@ -978,10 +978,10 @@ func mustResourceAddr(s string) addrs.ConfigResource { // when called via LookupLegacyProvider. Providers not in this map will return // a 404 Not Found error. var legacyProviderNamespaces = map[string]string{ - "foo": "opentofu", - "bar": "opentofu", + "foo": "hashicorp", + "bar": "hashicorp", "baz": "terraform-providers", - "qux": "opentofu", + "qux": "hashicorp", } // This map is used to mock the provider redirect feature. diff --git a/internal/command/e2etest/automation_test.go b/internal/command/e2etest/automation_test.go index 7a99654b09..7b6a983f49 100644 --- a/internal/command/e2etest/automation_test.go +++ b/internal/command/e2etest/automation_test.go @@ -25,7 +25,7 @@ func TestPlanApplyInAutomation(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "full-workflow-null") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // We advertise that _any_ non-empty value works, so we'll test something // unconventional here. @@ -39,11 +39,11 @@ func TestPlanApplyInAutomation(t *testing.T) { // Make sure we actually downloaded the plugins, rather than picking up // copies that might be already installed globally on the system. - if !strings.Contains(stdout, "Installing opentofu/template v") { + if !strings.Contains(stdout, "Installing hashicorp/template v") { t.Errorf("template provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } - if !strings.Contains(stdout, "Installing opentofu/null v") { + if !strings.Contains(stdout, "Installing hashicorp/null v") { t.Errorf("null provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } @@ -132,7 +132,7 @@ func TestAutoApplyInAutomation(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "full-workflow-null") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // We advertise that _any_ non-empty value works, so we'll test something // unconventional here. @@ -146,11 +146,11 @@ func TestAutoApplyInAutomation(t *testing.T) { // Make sure we actually downloaded the plugins, rather than picking up // copies that might be already installed globally on the system. - if !strings.Contains(stdout, "Installing opentofu/template v") { + if !strings.Contains(stdout, "Installing hashicorp/template v") { t.Errorf("template provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } - if !strings.Contains(stdout, "Installing opentofu/null v") { + if !strings.Contains(stdout, "Installing hashicorp/null v") { t.Errorf("null provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } @@ -198,7 +198,7 @@ func TestPlanOnlyInAutomation(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "full-workflow-null") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // We advertise that _any_ non-empty value works, so we'll test something // unconventional here. @@ -212,11 +212,11 @@ func TestPlanOnlyInAutomation(t *testing.T) { // Make sure we actually downloaded the plugins, rather than picking up // copies that might be already installed globally on the system. - if !strings.Contains(stdout, "Installing opentofu/template v") { + if !strings.Contains(stdout, "Installing hashicorp/template v") { t.Errorf("template provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } - if !strings.Contains(stdout, "Installing opentofu/null v") { + if !strings.Contains(stdout, "Installing hashicorp/null v") { t.Errorf("null provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } diff --git a/internal/command/e2etest/init_test.go b/internal/command/e2etest/init_test.go index 72f4eb49c5..060a38b0a1 100644 --- a/internal/command/e2etest/init_test.go +++ b/internal/command/e2etest/init_test.go @@ -28,7 +28,7 @@ func TestInitProviders(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "template-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("init") if err != nil { @@ -43,7 +43,7 @@ func TestInitProviders(t *testing.T) { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, "- Installing opentofu/template v") { + if !strings.Contains(stdout, "- Installing hashicorp/template v") { t.Errorf("provider download message is missing from output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } @@ -61,7 +61,7 @@ func TestInitProvidersInternal(t *testing.T) { // provider is internal to the core tofu binary. fixturePath := filepath.Join("testdata", "tf-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("init") if err != nil { @@ -76,7 +76,7 @@ func TestInitProvidersInternal(t *testing.T) { t.Errorf("success message is missing from output:\n%s", stdout) } - if strings.Contains(stdout, "Installing opentofu/terraform") { + if strings.Contains(stdout, "Installing hashicorp/terraform") { // Shouldn't have downloaded anything with this config, because the // provider is built in. t.Errorf("provider download message appeared in output:\n%s", stdout) @@ -94,19 +94,19 @@ func TestInitProvidersVendored(t *testing.T) { // This test will try to reach out to registry.opentofu.org as one of the // possible installation locations for - // opentofu/null, where it will find that + // hashicorp/null, where it will find that // versions do exist but will ultimately select the version that is // vendored due to the version constraint. skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "vendored-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // Our fixture dir has a generic os_arch dir, which we need to customize // to the actual OS/arch where this test is running in order to get the // desired result. - fixtMachineDir := tf.Path("terraform.d/plugins/registry.opentofu.org/opentofu/null/1.0.0+local/os_arch") - wantMachineDir := tf.Path("terraform.d/plugins/registry.opentofu.org/opentofu/null/1.0.0+local/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) + fixtMachineDir := tf.Path("terraform.d/plugins/registry.opentofu.org/hashicorp/null/1.0.0+local/os_arch") + wantMachineDir := tf.Path("terraform.d/plugins/registry.opentofu.org/hashicorp/null/1.0.0+local/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) err := os.Rename(fixtMachineDir, wantMachineDir) if err != nil { t.Fatalf("unexpected error: %s", err) @@ -125,7 +125,7 @@ func TestInitProvidersVendored(t *testing.T) { t.Errorf("success message is missing from output:\n%s", stdout) } - if !strings.Contains(stdout, "- Installing opentofu/null v1.0.0+local") { + if !strings.Contains(stdout, "- Installing hashicorp/null v1.0.0+local") { t.Errorf("provider download message is missing from output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } @@ -143,7 +143,7 @@ func TestInitProvidersLocalOnly(t *testing.T) { // the test fixture.) fixturePath := filepath.Join("testdata", "local-only-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // If you run this test on a workstation with a plugin-cache directory // configured, it will leave a bad directory behind and tofu init will // not work until you remove it. @@ -193,7 +193,7 @@ func TestInitProvidersCustomMethod(t *testing.T) { for _, configFile := range []string{"cliconfig.tfrc", "cliconfig.tfrc.json"} { t.Run(configFile, func(t *testing.T) { fixturePath := filepath.Join("testdata", "custom-provider-install-method") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // Our fixture dir has a generic os_arch dir, which we need to customize // to the actual OS/arch where this test is running in order to get the @@ -238,13 +238,13 @@ func TestInitProviders_pluginCache(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "plugin-cache") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // Our fixture dir has a generic os_arch dir, which we need to customize // to the actual OS/arch where this test is running in order to get the // desired result. - fixtMachineDir := tf.Path("cache/registry.opentofu.org/opentofu/template/2.1.0/os_arch") - wantMachineDir := tf.Path("cache/registry.opentofu.org/opentofu/template/2.1.0/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) + fixtMachineDir := tf.Path("cache/registry.opentofu.org/hashicorp/template/2.1.0/os_arch") + wantMachineDir := tf.Path("cache/registry.opentofu.org/hashicorp/template/2.1.0/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) err := os.Rename(fixtMachineDir, wantMachineDir) if err != nil { t.Fatalf("unexpected error: %s", err) @@ -260,7 +260,7 @@ func TestInitProviders_pluginCache(t *testing.T) { t.Errorf("unexpected error: %s", err) } - path := filepath.FromSlash(fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/template/2.1.0/%s_%s/terraform-provider-template_v2.1.0_x4", runtime.GOOS, runtime.GOARCH)) + path := filepath.FromSlash(fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/template/2.1.0/%s_%s/terraform-provider-template_v2.1.0_x4", runtime.GOOS, runtime.GOARCH)) content, err := tf.ReadFile(path) if err != nil { t.Fatalf("failed to read installed plugin from %s: %s", path, err) @@ -269,7 +269,7 @@ func TestInitProviders_pluginCache(t *testing.T) { t.Errorf("template plugin was not installed from local cache") } - nullLinkPath := filepath.FromSlash(fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/null/2.1.0/%s_%s/terraform-provider-null", runtime.GOOS, runtime.GOARCH)) + nullLinkPath := filepath.FromSlash(fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/null/2.1.0/%s_%s/terraform-provider-null", runtime.GOOS, runtime.GOARCH)) if runtime.GOOS == "windows" { nullLinkPath = nullLinkPath + ".exe" } @@ -277,7 +277,7 @@ func TestInitProviders_pluginCache(t *testing.T) { t.Errorf("null plugin was not installed into %s", nullLinkPath) } - nullCachePath := filepath.FromSlash(fmt.Sprintf("cache/registry.opentofu.org/opentofu/null/2.1.0/%s_%s/terraform-provider-null", runtime.GOOS, runtime.GOARCH)) + nullCachePath := filepath.FromSlash(fmt.Sprintf("cache/registry.opentofu.org/hashicorp/null/2.1.0/%s_%s/terraform-provider-null", runtime.GOOS, runtime.GOARCH)) if runtime.GOOS == "windows" { nullCachePath = nullCachePath + ".exe" } @@ -294,7 +294,7 @@ func TestInit_fromModule(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "empty") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) cmd := tf.Cmd("init", "-from-module=hashicorp/vault/aws") cmd.Stdin = nil @@ -323,11 +323,11 @@ func TestInitProviderNotFound(t *testing.T) { t.Parallel() // This test will reach out to registry.opentofu.org as one of the possible - // installation locations for opentofu/nonexist, which should not exist. + // installation locations for hashicorp/nonexist, which should not exist. skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "provider-not-found") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) t.Run("registry provider not found", func(t *testing.T) { _, stderr, err := tf.Run("init", "-no-color") @@ -336,7 +336,7 @@ func TestInitProviderNotFound(t *testing.T) { } oneLineStderr := strings.ReplaceAll(stderr, "\n", " ") - if !strings.Contains(oneLineStderr, "provider registry registry.opentofu.org does not have a provider named registry.opentofu.org/opentofu/nonexist") { + if !strings.Contains(oneLineStderr, "provider registry registry.opentofu.org does not have a provider named registry.opentofu.org/hashicorp/nonexist") { t.Errorf("expected error message is missing from output:\n%s", stderr) } @@ -357,7 +357,7 @@ func TestInitProviderNotFound(t *testing.T) { t.Fatal("expected error, got success") } - if !strings.Contains(stderr, "provider registry.opentofu.org/opentofu/nonexist was not\nfound in any of the search locations\n\n - "+pluginDir) { + if !strings.Contains(stderr, "provider registry.opentofu.org/hashicorp/nonexist was not\nfound in any of the search locations\n\n - "+pluginDir) { t.Errorf("expected error message is missing from output:\n%s", stderr) } }) @@ -372,12 +372,12 @@ func TestInitProviderNotFound(t *testing.T) { │ Error: Failed to query available provider packages │` + ` ` + ` │ Could not retrieve the list of available versions for provider -│ opentofu/nonexist: provider registry registry.opentofu.org does not have a -│ provider named registry.opentofu.org/opentofu/nonexist +│ hashicorp/nonexist: provider registry registry.opentofu.org does not have a +│ provider named registry.opentofu.org/hashicorp/nonexist │ │ All modules should specify their required_providers so that external │ consumers will get the correct providers when using a module. To see which -│ modules are currently depending on opentofu/nonexist, run the following +│ modules are currently depending on hashicorp/nonexist, run the following │ command: │ tofu providers │ @@ -402,7 +402,7 @@ func TestInitProviderNotFound(t *testing.T) { // skipIfCannotAccessNetwork(t) // // fixturePath := filepath.Join("testdata", "provider-warnings") -// tf := e2e.NewBinary(t, tofuBin, fixturePath) +// tf := e2e.NewBinary(t, terraformBin, fixturePath) // // stdout, _, err := tf.Run("init") // if err == nil { diff --git a/internal/command/e2etest/main_test.go b/internal/command/e2etest/main_test.go index 0038a621a3..2b73ab28b8 100644 --- a/internal/command/e2etest/main_test.go +++ b/internal/command/e2etest/main_test.go @@ -12,7 +12,7 @@ import ( "github.com/opentofu/opentofu/internal/e2e" ) -var tofuBin string +var terraformBin string // canRunGoBuild is a short-term compromise to account for the fact that we // have a small number of tests that work by building helper programs using @@ -23,7 +23,7 @@ var tofuBin string // (test plugins, etc) as part of the initial suite setup, and in the // make-archive.sh script, so that we can run all of the tests in both // situations with the tests just using the executable already built for -// them, as we do for tofuBin. +// them, as we do for terraformBin. var canRunGoBuild bool func TestMain(m *testing.M) { @@ -34,14 +34,14 @@ func TestMain(m *testing.M) { } func setup() func() { - if tofuBin != "" { + if terraformBin != "" { // this is pre-set when we're running in a binary produced from // the make-archive.sh script, since that is for testing an // executable obtained from a real release package. However, we do // need to turn it into an absolute path so that we can find it // when we change the working directory during tests. var err error - tofuBin, err = filepath.Abs(tofuBin) + terraformBin, err = filepath.Abs(terraformBin) if err != nil { panic(fmt.Sprintf("failed to find absolute path of tofu executable: %s", err)) } @@ -51,7 +51,7 @@ func setup() func() { tmpFilename := e2e.GoBuild("github.com/opentofu/opentofu/cmd/tofu", "tofu") // Make the executable available for use in tests - tofuBin = tmpFilename + terraformBin = tmpFilename // Tests running in the ad-hoc testing mode are allowed to use "go build" // and similar to produce other test executables. diff --git a/internal/command/e2etest/make-archive.sh b/internal/command/e2etest/make-archive.sh index d3f18d1a31..553be709a2 100755 --- a/internal/command/e2etest/make-archive.sh +++ b/internal/command/e2etest/make-archive.sh @@ -34,7 +34,7 @@ GOEXE="$(go env GOEXE)" OUTDIR="build/${GOOS}_${GOARCH}" OUTFILE="tofu-e2etest_${GOOS}_${GOARCH}.zip" -LDFLAGS="-X github.com/opentofu/opentofu/internal/command/e2etest.tofuBin=./tofu$GOEXE" +LDFLAGS="-X github.com/opentofu/opentofu/internal/command/e2etest.terraformBin=./tofu$GOEXE" # Caller may pass in the environment variable GO_LDFLAGS with additional # flags we'll use when building. if [ -n "${GO_LDFLAGS+set}" ]; then diff --git a/internal/command/e2etest/module_archive_test.go b/internal/command/e2etest/module_archive_test.go index 8c2b5ff984..986c8ce563 100644 --- a/internal/command/e2etest/module_archive_test.go +++ b/internal/command/e2etest/module_archive_test.go @@ -18,7 +18,7 @@ func TestInitModuleArchive(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "module-archive") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("init") if err != nil { diff --git a/internal/command/e2etest/primary_test.go b/internal/command/e2etest/primary_test.go index 461c44c429..b18b9b2200 100644 --- a/internal/command/e2etest/primary_test.go +++ b/internal/command/e2etest/primary_test.go @@ -32,7 +32,7 @@ func TestPrimarySeparatePlan(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "full-workflow-null") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) //// INIT stdout, stderr, err := tf.Run("init") @@ -42,11 +42,11 @@ func TestPrimarySeparatePlan(t *testing.T) { // Make sure we actually downloaded the plugins, rather than picking up // copies that might be already installed globally on the system. - if !strings.Contains(stdout, "Installing opentofu/template v") { + if !strings.Contains(stdout, "Installing hashicorp/template v") { t.Errorf("template provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } - if !strings.Contains(stdout, "Installing opentofu/null v") { + if !strings.Contains(stdout, "Installing hashicorp/null v") { t.Errorf("null provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } @@ -152,7 +152,7 @@ func TestPrimaryChdirOption(t *testing.T) { // safe to run it even when network access is disallowed. fixturePath := filepath.Join("testdata", "chdir-option") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) //// INIT _, stderr, err := tf.Run("-chdir=subdir", "init") diff --git a/internal/command/e2etest/provider_dev_test.go b/internal/command/e2etest/provider_dev_test.go index c3ea89041c..83f308c06e 100644 --- a/internal/command/e2etest/provider_dev_test.go +++ b/internal/command/e2etest/provider_dev_test.go @@ -30,7 +30,7 @@ func TestProviderDevOverrides(t *testing.T) { } t.Parallel() - tf := e2e.NewBinary(t, tofuBin, "testdata/provider-dev-override") + tf := e2e.NewBinary(t, terraformBin, "testdata/provider-dev-override") // In order to do a decent end-to-end test for this case we will need a // real enough provider plugin to try to run and make sure we are able diff --git a/internal/command/e2etest/provider_plugin_test.go b/internal/command/e2etest/provider_plugin_test.go index 4f164a824a..4216d28670 100644 --- a/internal/command/e2etest/provider_plugin_test.go +++ b/internal/command/e2etest/provider_plugin_test.go @@ -26,7 +26,7 @@ func TestProviderProtocols(t *testing.T) { } t.Parallel() - tf := e2e.NewBinary(t, tofuBin, "testdata/provider-plugin") + tf := e2e.NewBinary(t, terraformBin, "testdata/provider-plugin") // In order to do a decent end-to-end test for this case we will need a real // enough provider plugin to try to run and make sure we are able to @@ -41,7 +41,7 @@ func TestProviderProtocols(t *testing.T) { // Move the provider binaries into a directory that we will point tofu // to using the -plugin-dir cli flag. platform := getproviders.CurrentPlatform.String() - hashiDir := "cache/registry.opentofu.org/opentofu/" + hashiDir := "cache/registry.opentofu.org/hashicorp/" if err := os.MkdirAll(tf.Path(hashiDir, "simple6/0.0.1/", platform), os.ModePerm); err != nil { t.Fatal(err) } diff --git a/internal/command/e2etest/providers_mirror_test.go b/internal/command/e2etest/providers_mirror_test.go index 0164dfbdde..c5164de43b 100644 --- a/internal/command/e2etest/providers_mirror_test.go +++ b/internal/command/e2etest/providers_mirror_test.go @@ -37,7 +37,7 @@ func testTerraformProvidersMirror(t *testing.T, fixture string) { t.Logf("creating mirror directory in %s", outputDir) fixturePath := filepath.Join("testdata", fixture) - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("providers", "mirror", "-platform=linux_amd64", "-platform=windows_386", outputDir) if err != nil { @@ -49,14 +49,14 @@ func testTerraformProvidersMirror(t *testing.T, fixture string) { // In the (unlikely) event that these particular versions of these // providers are removed from the registry, this test will start to fail. want := []string{ - "registry.opentofu.org/opentofu/null/2.1.0.json", - "registry.opentofu.org/opentofu/null/index.json", - "registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip", - "registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_windows_386.zip", - "registry.opentofu.org/opentofu/template/2.1.1.json", - "registry.opentofu.org/opentofu/template/index.json", - "registry.opentofu.org/opentofu/template/terraform-provider-template_2.1.1_linux_amd64.zip", - "registry.opentofu.org/opentofu/template/terraform-provider-template_2.1.1_windows_386.zip", + "registry.opentofu.org/hashicorp/null/2.1.0.json", + "registry.opentofu.org/hashicorp/null/index.json", + "registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip", + "registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_windows_386.zip", + "registry.opentofu.org/hashicorp/template/2.1.1.json", + "registry.opentofu.org/hashicorp/template/index.json", + "registry.opentofu.org/hashicorp/template/terraform-provider-template_2.1.1_linux_amd64.zip", + "registry.opentofu.org/hashicorp/template/terraform-provider-template_2.1.1_windows_386.zip", } var got []string walkErr := filepath.Walk(outputDir, func(path string, info os.FileInfo, err error) error { diff --git a/internal/command/e2etest/providers_tamper_test.go b/internal/command/e2etest/providers_tamper_test.go index 7130d107ae..d33150a86e 100644 --- a/internal/command/e2etest/providers_tamper_test.go +++ b/internal/command/e2etest/providers_tamper_test.go @@ -29,20 +29,20 @@ func TestProviderTampering(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "provider-tampering-base") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("init") if err != nil { t.Fatalf("unexpected init error: %s\nstderr:\n%s", err, stderr) } - if !strings.Contains(stdout, "Installing opentofu/null v") { + if !strings.Contains(stdout, "Installing hashicorp/null v") { t.Errorf("null provider download message is missing from init output:\n%s", stdout) t.Logf("(this can happen if you have a copy of the plugin in one of the global plugin search dirs)") } seedDir := tf.WorkDir() const providerVersion = "3.1.0" // must match the version in the fixture config - pluginDir := filepath.Join(".terraform", "providers", "registry.opentofu.org", "opentofu", "null", providerVersion, getproviders.CurrentPlatform.String()) + pluginDir := filepath.Join(".terraform", "providers", "registry.opentofu.org", "hashicorp", "null", providerVersion, getproviders.CurrentPlatform.String()) pluginExe := filepath.Join(pluginDir, "terraform-provider-null_v"+providerVersion+"_x5") if getproviders.CurrentPlatform.OS == "windows" { pluginExe += ".exe" // ugh @@ -53,7 +53,7 @@ func TestProviderTampering(t *testing.T) { providerCacheDir := filepath.Join(".terraform", "providers") t.Run("cache dir totally gone", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() err := os.RemoveAll(filepath.Join(workDir, ".terraform")) @@ -65,7 +65,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected plan success\nstdout:\n%s", stdout) } - if want := `registry.opentofu.org/opentofu/null: there is no package for registry.opentofu.org/opentofu/null 3.1.0 cached in ` + providerCacheDir; !strings.Contains(stderr, want) { + if want := `registry.opentofu.org/hashicorp/null: there is no package for registry.opentofu.org/hashicorp/null 3.1.0 cached in ` + providerCacheDir; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } if want := `tofu init`; !strings.Contains(stderr, want) { @@ -83,7 +83,7 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("cache dir totally gone, explicit backend", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() err := os.WriteFile(filepath.Join(workDir, "backend.tf"), []byte(localBackendConfig), 0600) @@ -118,7 +118,7 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("null plugin package modified before plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() err := os.WriteFile(filepath.Join(workDir, pluginExe), []byte("tamper"), 0600) @@ -130,7 +130,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected plan success\nstdout:\n%s", stdout) } - if want := `registry.opentofu.org/opentofu/null: the cached package for registry.opentofu.org/opentofu/null 3.1.0 (in ` + providerCacheDir + `) does not match any of the checksums recorded in the dependency lock file`; !strings.Contains(stderr, want) { + if want := `registry.opentofu.org/hashicorp/null: the cached package for registry.opentofu.org/hashicorp/null 3.1.0 (in ` + providerCacheDir + `) does not match any of the checksums recorded in the dependency lock file`; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } if want := `tofu init`; !strings.Contains(stderr, want) { @@ -138,14 +138,14 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("version constraint changed in config before plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() err := os.WriteFile(filepath.Join(workDir, "provider-tampering-base.tf"), []byte(` terraform { required_providers { null = { - source = "opentofu/null" + source = "hashicorp/null" version = "1.0.0" } } @@ -159,7 +159,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected plan success\nstdout:\n%s", stdout) } - if want := `provider registry.opentofu.org/opentofu/null: locked version selection 3.1.0 doesn't match the updated version constraints "1.0.0"`; !strings.Contains(stderr, want) { + if want := `provider registry.opentofu.org/hashicorp/null: locked version selection 3.1.0 doesn't match the updated version constraints "1.0.0"`; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } if want := `tofu init -upgrade`; !strings.Contains(stderr, want) { @@ -167,7 +167,7 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("lock file modified before plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() // NOTE: We're just emptying out the lock file here because that's @@ -185,7 +185,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected plan success\nstdout:\n%s", stdout) } - if want := `provider registry.opentofu.org/opentofu/null: required by this configuration but no version is selected`; !strings.Contains(stderr, want) { + if want := `provider registry.opentofu.org/hashicorp/null: required by this configuration but no version is selected`; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } if want := `tofu init`; !strings.Contains(stderr, want) { @@ -193,7 +193,7 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("lock file modified after plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() _, stderr, err := tf.Run("plan", "-out", "tfplan") @@ -210,7 +210,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected apply success\nstdout:\n%s", stdout) } - if want := `provider registry.opentofu.org/opentofu/null: required by this configuration but no version is selected`; !strings.Contains(stderr, want) { + if want := `provider registry.opentofu.org/hashicorp/null: required by this configuration but no version is selected`; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } if want := `Create a new plan from the updated configuration.`; !strings.Contains(stderr, want) { @@ -218,7 +218,7 @@ func TestProviderTampering(t *testing.T) { } }) t.Run("plugin cache dir entirely removed after plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() _, stderr, err := tf.Run("plan", "-out", "tfplan") @@ -235,12 +235,12 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected apply success\nstdout:\n%s", stdout) } - if want := `registry.opentofu.org/opentofu/null: there is no package for registry.opentofu.org/opentofu/null 3.1.0 cached in ` + providerCacheDir; !strings.Contains(stderr, want) { + if want := `registry.opentofu.org/hashicorp/null: there is no package for registry.opentofu.org/hashicorp/null 3.1.0 cached in ` + providerCacheDir; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } }) t.Run("null plugin package modified after plan", func(t *testing.T) { - tf := e2e.NewBinary(t, tofuBin, seedDir) + tf := e2e.NewBinary(t, terraformBin, seedDir) workDir := tf.WorkDir() _, stderr, err := tf.Run("plan", "-out", "tfplan") @@ -257,7 +257,7 @@ func TestProviderTampering(t *testing.T) { if err == nil { t.Fatalf("unexpected apply success\nstdout:\n%s", stdout) } - if want := `registry.opentofu.org/opentofu/null: the cached package for registry.opentofu.org/opentofu/null 3.1.0 (in ` + providerCacheDir + `) does not match any of the checksums recorded in the dependency lock file`; !strings.Contains(stderr, want) { + if want := `registry.opentofu.org/hashicorp/null: the cached package for registry.opentofu.org/hashicorp/null 3.1.0 (in ` + providerCacheDir + `) does not match any of the checksums recorded in the dependency lock file`; !strings.Contains(stderr, want) { t.Errorf("missing expected error message\nwant substring: %s\ngot:\n%s", want, stderr) } }) diff --git a/internal/command/e2etest/provisioner_plugin_test.go b/internal/command/e2etest/provisioner_plugin_test.go index b44fc4b9da..2b9f509b47 100644 --- a/internal/command/e2etest/provisioner_plugin_test.go +++ b/internal/command/e2etest/provisioner_plugin_test.go @@ -30,7 +30,7 @@ func TestProvisionerPlugin(t *testing.T) { // allowed. skipIfCannotAccessNetwork(t) - tf := e2e.NewBinary(t, tofuBin, "testdata/provisioner-plugin") + tf := e2e.NewBinary(t, terraformBin, "testdata/provisioner-plugin") // In order to do a decent end-to-end test for this case we will need a // real enough provisioner plugin to try to run and make sure we are able diff --git a/internal/command/e2etest/provisioner_test.go b/internal/command/e2etest/provisioner_test.go index 87cfb11418..5eb5a9dc34 100644 --- a/internal/command/e2etest/provisioner_test.go +++ b/internal/command/e2etest/provisioner_test.go @@ -20,7 +20,7 @@ func TestProvisioner(t *testing.T) { // allowed. skipIfCannotAccessNetwork(t) - tf := e2e.NewBinary(t, tofuBin, "testdata/provisioner") + tf := e2e.NewBinary(t, terraformBin, "testdata/provisioner") //// INIT _, stderr, err := tf.Run("init") diff --git a/internal/command/e2etest/remote_state_test.go b/internal/command/e2etest/remote_state_test.go index 30d4bf57ef..a74bde9ce3 100644 --- a/internal/command/e2etest/remote_state_test.go +++ b/internal/command/e2etest/remote_state_test.go @@ -15,7 +15,7 @@ func TestTerraformProviderRead(t *testing.T) { t.Parallel() fixturePath := filepath.Join("testdata", "tf-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) //// INIT _, stderr, err := tf.Run("init") diff --git a/internal/command/e2etest/test_test.go b/internal/command/e2etest/test_test.go index 13180c0387..e893865a78 100644 --- a/internal/command/e2etest/test_test.go +++ b/internal/command/e2etest/test_test.go @@ -20,7 +20,7 @@ func TestMultipleRunBlocks(t *testing.T) { go func() { fixturePath := filepath.Join("testdata", "multiple-run-blocks") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("test") done <- &testResult{ stdout: stdout, diff --git a/internal/command/e2etest/testdata/plugin-cache/.terraform.lock.hcl b/internal/command/e2etest/testdata/plugin-cache/.terraform.lock.hcl index 0dc78a1180..caf2b06be6 100644 --- a/internal/command/e2etest/testdata/plugin-cache/.terraform.lock.hcl +++ b/internal/command/e2etest/testdata/plugin-cache/.terraform.lock.hcl @@ -6,7 +6,7 @@ # under the "cache" directory, rather than the real provider from upstream, # so that Terraform CLI will consider the cache entry as valid. -provider "registry.opentofu.org/opentofu/template" { +provider "registry.opentofu.org/hashicorp/template" { version = "2.1.0" hashes = [ "h1:e7YvVlRZlaZJ8ED5KnH0dAg0kPL0nAU7eEoCAZ/sOos=", diff --git a/internal/command/e2etest/testdata/plugin-cache/cache/registry.opentofu.org/opentofu/template/2.1.0/os_arch/terraform-provider-template_v2.1.0_x4 b/internal/command/e2etest/testdata/plugin-cache/cache/registry.opentofu.org/hashicorp/template/2.1.0/os_arch/terraform-provider-template_v2.1.0_x4 similarity index 100% rename from internal/command/e2etest/testdata/plugin-cache/cache/registry.opentofu.org/opentofu/template/2.1.0/os_arch/terraform-provider-template_v2.1.0_x4 rename to internal/command/e2etest/testdata/plugin-cache/cache/registry.opentofu.org/hashicorp/template/2.1.0/os_arch/terraform-provider-template_v2.1.0_x4 diff --git a/internal/command/e2etest/testdata/provider-not-found/main.tf b/internal/command/e2etest/testdata/provider-not-found/main.tf index b8f556b55f..781f006773 100644 --- a/internal/command/e2etest/testdata/provider-not-found/main.tf +++ b/internal/command/e2etest/testdata/provider-not-found/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nonexist = { - source = "registry.opentofu.org/opentofu/nonexist" + source = "registry.opentofu.org/hashicorp/nonexist" } } } diff --git a/internal/command/e2etest/testdata/provider-plugin/main.tf b/internal/command/e2etest/testdata/provider-plugin/main.tf index 6c68dedc90..1a8f523811 100644 --- a/internal/command/e2etest/testdata/provider-plugin/main.tf +++ b/internal/command/e2etest/testdata/provider-plugin/main.tf @@ -3,10 +3,10 @@ terraform { required_providers { simple5 = { - source = "registry.opentofu.org/opentofu/simple" + source = "registry.opentofu.org/hashicorp/simple" } simple6 = { - source = "registry.opentofu.org/opentofu/simple6" + source = "registry.opentofu.org/hashicorp/simple6" } } } diff --git a/internal/command/e2etest/testdata/provider-tampering-base/provider-tampering-base.tf b/internal/command/e2etest/testdata/provider-tampering-base/provider-tampering-base.tf index 5d7e42a152..87bd9ac200 100644 --- a/internal/command/e2etest/testdata/provider-tampering-base/provider-tampering-base.tf +++ b/internal/command/e2etest/testdata/provider-tampering-base/provider-tampering-base.tf @@ -5,7 +5,7 @@ terraform { # test case here, though we might have to update this in future # if e.g. Terraform stops supporting plugin protocol 5, or if # the null provider is yanked from the registry for some reason. - source = "opentofu/null" + source = "hashicorp/null" version = "3.1.0" } } diff --git a/internal/command/e2etest/testdata/provider-warnings/main.tf b/internal/command/e2etest/testdata/provider-warnings/main.tf index 57d4cae75d..4300f04f86 100644 --- a/internal/command/e2etest/testdata/provider-warnings/main.tf +++ b/internal/command/e2etest/testdata/provider-warnings/main.tf @@ -1,12 +1,12 @@ terraform { required_providers { terraform = { - // opentofu/terraform is published in the registry, but it is + // hashicorp/terraform is published in the registry, but it is // archived (since it is internal) and returns a warning: // // "This provider is archived and no longer needed. The terraform_remote_state // data source is built into the latest Terraform release." - source = "opentofu/terraform" + source = "hashicorp/terraform" } } } diff --git a/internal/command/e2etest/testdata/test-provider/main.tf b/internal/command/e2etest/testdata/test-provider/main.tf index a4b3193cfe..a4de134c84 100644 --- a/internal/command/e2etest/testdata/test-provider/main.tf +++ b/internal/command/e2etest/testdata/test-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { simple = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/.terraform.lock.hcl b/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/.terraform.lock.hcl index bd61d0168e..2d2ee86f97 100644 --- a/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/.terraform.lock.hcl +++ b/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "terraform init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/null" { +provider "registry.opentofu.org/hashicorp/null" { version = "2.1.0" constraints = "2.1.0" hashes = [ @@ -22,7 +22,7 @@ provider "registry.opentofu.org/opentofu/null" { ] } -provider "registry.opentofu.org/opentofu/template" { +provider "registry.opentofu.org/hashicorp/template" { version = "2.1.1" constraints = "2.1.1" hashes = [ diff --git a/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/main.tf b/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/main.tf index 749631d713..1598a27835 100644 --- a/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/main.tf +++ b/internal/command/e2etest/testdata/tofu-providers-mirror-with-lock-file/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { - template = { source = "opentofu/template" } - null = { source = "opentofu/null" } + template = { source = "hashicorp/template" } + null = { source = "hashicorp/null" } terraform = { source = "terraform.io/builtin/terraform" } } } diff --git a/internal/command/e2etest/testdata/tofu-providers-mirror/main.tf b/internal/command/e2etest/testdata/tofu-providers-mirror/main.tf index 11cc5d92c1..4b31e03012 100644 --- a/internal/command/e2etest/testdata/tofu-providers-mirror/main.tf +++ b/internal/command/e2etest/testdata/tofu-providers-mirror/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { template = { version = "2.1.1" } - null = { source = "opentofu/null", version = "2.1.0" } + null = { source = "hashicorp/null", version = "2.1.0" } terraform = { source = "terraform.io/builtin/terraform" } } } diff --git a/internal/command/e2etest/testdata/vendored-provider/main.tf b/internal/command/e2etest/testdata/vendored-provider/main.tf index f7e9815b56..3cb6215378 100644 --- a/internal/command/e2etest/testdata/vendored-provider/main.tf +++ b/internal/command/e2etest/testdata/vendored-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { null = { - source = "opentofu/null" + source = "hashicorp/null" version = "1.0.0+local" } } diff --git a/internal/command/e2etest/testdata/vendored-provider/terraform.d/plugins/registry.opentofu.org/opentofu/null/1.0.0+local/os_arch/terraform-provider-null_v1.0.0 b/internal/command/e2etest/testdata/vendored-provider/terraform.d/plugins/registry.opentofu.org/hashicorp/null/1.0.0+local/os_arch/terraform-provider-null_v1.0.0 similarity index 100% rename from internal/command/e2etest/testdata/vendored-provider/terraform.d/plugins/registry.opentofu.org/opentofu/null/1.0.0+local/os_arch/terraform-provider-null_v1.0.0 rename to internal/command/e2etest/testdata/vendored-provider/terraform.d/plugins/registry.opentofu.org/hashicorp/null/1.0.0+local/os_arch/terraform-provider-null_v1.0.0 diff --git a/internal/command/e2etest/tf_provider_data_test.go b/internal/command/e2etest/tf_provider_data_test.go index 4cda04e827..b0fcedfe97 100644 --- a/internal/command/e2etest/tf_provider_data_test.go +++ b/internal/command/e2etest/tf_provider_data_test.go @@ -15,7 +15,7 @@ import ( func TestTerraformProviderData(t *testing.T) { fixturePath := filepath.Join("testdata", "tofu-managed-data") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) _, stderr, err := tf.Run("init", "-input=false") if err != nil { diff --git a/internal/command/e2etest/unmanaged_test.go b/internal/command/e2etest/unmanaged_test.go index 11ebb2dfd0..2a768e0e17 100644 --- a/internal/command/e2etest/unmanaged_test.go +++ b/internal/command/e2etest/unmanaged_test.go @@ -149,7 +149,7 @@ func TestUnmanagedSeparatePlan(t *testing.T) { t.Parallel() fixturePath := filepath.Join("testdata", "test-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) reattachCh := make(chan *plugin.ReattachConfig) closeCh := make(chan struct{}) @@ -185,7 +185,7 @@ func TestUnmanagedSeparatePlan(t *testing.T) { t.Fatalf("no reattach config received") } reattachStr, err := json.Marshal(map[string]reattachConfig{ - "opentofu/test": { + "hashicorp/test": { Protocol: string(config.Protocol), ProtocolVersion: 6, Pid: config.Pid, @@ -209,10 +209,10 @@ func TestUnmanagedSeparatePlan(t *testing.T) { } // Make sure we didn't download the binary - if strings.Contains(stdout, "Installing opentofu/test v") { + if strings.Contains(stdout, "Installing hashicorp/test v") { t.Errorf("test provider download message is present in init output:\n%s", stdout) } - if tf.FileExists(filepath.Join(".terraform", "plugins", "registry.opentofu.org", "opentofu", "test")) { + if tf.FileExists(filepath.Join(".terraform", "plugins", "registry.opentofu.org", "hashicorp", "test")) { t.Errorf("test provider binary found in .terraform dir") } @@ -254,7 +254,7 @@ func TestUnmanagedSeparatePlan_proto5(t *testing.T) { t.Parallel() fixturePath := filepath.Join("testdata", "test-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) reattachCh := make(chan *plugin.ReattachConfig) closeCh := make(chan struct{}) @@ -290,7 +290,7 @@ func TestUnmanagedSeparatePlan_proto5(t *testing.T) { t.Fatalf("no reattach config received") } reattachStr, err := json.Marshal(map[string]reattachConfig{ - "opentofu/test": { + "hashicorp/test": { Protocol: string(config.Protocol), ProtocolVersion: 5, Pid: config.Pid, @@ -314,10 +314,10 @@ func TestUnmanagedSeparatePlan_proto5(t *testing.T) { } // Make sure we didn't download the binary - if strings.Contains(stdout, "Installing opentofu/test v") { + if strings.Contains(stdout, "Installing hashicorp/test v") { t.Errorf("test provider download message is present in init output:\n%s", stdout) } - if tf.FileExists(filepath.Join(".terraform", "plugins", "registry.opentofu.org", "opentofu", "test")) { + if tf.FileExists(filepath.Join(".terraform", "plugins", "registry.opentofu.org", "hashicorp", "test")) { t.Errorf("test provider binary found in .terraform dir") } diff --git a/internal/command/e2etest/version_test.go b/internal/command/e2etest/version_test.go index f6ef06ef45..cc97994235 100644 --- a/internal/command/e2etest/version_test.go +++ b/internal/command/e2etest/version_test.go @@ -22,7 +22,7 @@ func TestVersion(t *testing.T) { t.Parallel() fixturePath := filepath.Join("testdata", "empty") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) stdout, stderr, err := tf.Run("version") if err != nil { @@ -50,7 +50,7 @@ func TestVersionWithProvider(t *testing.T) { skipIfCannotAccessNetwork(t) fixturePath := filepath.Join("testdata", "template-provider") - tf := e2e.NewBinary(t, tofuBin, fixturePath) + tf := e2e.NewBinary(t, terraformBin, fixturePath) // Initial run (before "init") should work without error but will not // include the provider version, since we've not "locked" one yet. @@ -89,7 +89,7 @@ func TestVersionWithProvider(t *testing.T) { t.Errorf("unexpected stderr output:\n%s", stderr) } - wantMsg := "+ provider registry.opentofu.org/opentofu/template v" // we don't know which version we'll get here + wantMsg := "+ provider registry.opentofu.org/hashicorp/template v" // we don't know which version we'll get here if !strings.Contains(stdout, wantMsg) { t.Errorf("output does not contain provider information %q:\n%s", wantMsg, stdout) } diff --git a/internal/command/graph_test.go b/internal/command/graph_test.go index af1ed49b05..8a9cb107b0 100644 --- a/internal/command/graph_test.go +++ b/internal/command/graph_test.go @@ -35,7 +35,7 @@ func TestGraph(t *testing.T) { } output := ui.OutputWriter.String() - if !strings.Contains(output, `provider[\"registry.opentofu.org/opentofu/test\"]`) { + if !strings.Contains(output, `provider[\"registry.opentofu.org/hashicorp/test\"]`) { t.Fatalf("doesn't look like digraph: %s", output) } } @@ -77,7 +77,7 @@ func TestGraph_noArgs(t *testing.T) { } output := ui.OutputWriter.String() - if !strings.Contains(output, `provider[\"registry.opentofu.org/opentofu/test\"]`) { + if !strings.Contains(output, `provider[\"registry.opentofu.org/hashicorp/test\"]`) { t.Fatalf("doesn't look like digraph: %s", output) } } @@ -156,7 +156,7 @@ func TestGraph_plan(t *testing.T) { } output := ui.OutputWriter.String() - if !strings.Contains(output, `provider[\"registry.opentofu.org/opentofu/test\"]`) { + if !strings.Contains(output, `provider[\"registry.opentofu.org/hashicorp/test\"]`) { t.Fatalf("doesn't look like digraph: %s", output) } } diff --git a/internal/command/import_test.go b/internal/command/import_test.go index cf1844f0c2..748c72e928 100644 --- a/internal/command/import_test.go +++ b/internal/command/import_test.go @@ -333,7 +333,7 @@ func TestImport_initializationErrorShouldUnlock(t *testing.T) { // specifically, it should fail due to a missing provider msg := strings.ReplaceAll(ui.ErrorWriter.String(), "\n", " ") - if want := `provider registry.opentofu.org/opentofu/unknown: required by this configuration but no version is selected`; !strings.Contains(msg, want) { + if want := `provider registry.opentofu.org/hashicorp/unknown: required by this configuration but no version is selected`; !strings.Contains(msg, want) { t.Errorf("incorrect message\nwant substring: %s\ngot:\n%s", want, msg) } @@ -978,5 +978,5 @@ func TestImport_targetIsModule(t *testing.T) { const testImportStr = ` test_instance.foo: ID = yay - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` diff --git a/internal/command/init_test.go b/internal/command/init_test.go index bd21c9e83d..b9e3a878e8 100644 --- a/internal/command/init_test.go +++ b/internal/command/init_test.go @@ -484,7 +484,7 @@ func TestInit_backendReconfigure(t *testing.T) { defer testChdir(t, td)() providerSource, close := newMockProviderSource(t, map[string][]string{ - "opentofu/test": {"1.2.3"}, + "hashicorp/test": {"1.2.3"}, }) defer close() @@ -559,7 +559,7 @@ func TestInit_backendMigrateWhileLocked(t *testing.T) { defer testChdir(t, td)() providerSource, close := newMockProviderSource(t, map[string][]string{ - "opentofu/test": {"1.2.3"}, + "hashicorp/test": {"1.2.3"}, }) defer close() @@ -1343,15 +1343,15 @@ func TestInit_getProvider(t *testing.T) { } // check that we got the providers for our config - exactPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/exact/1.2.3/%s", getproviders.CurrentPlatform) + exactPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/exact/1.2.3/%s", getproviders.CurrentPlatform) if _, err := os.Stat(exactPath); os.IsNotExist(err) { t.Fatal("provider 'exact' not downloaded") } - greaterThanPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/greater-than/2.3.4/%s", getproviders.CurrentPlatform) + greaterThanPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/greater-than/2.3.4/%s", getproviders.CurrentPlatform) if _, err := os.Stat(greaterThanPath); os.IsNotExist(err) { t.Fatal("provider 'greater-than' not downloaded") } - betweenPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/between/2.3.4/%s", getproviders.CurrentPlatform) + betweenPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/between/2.3.4/%s", getproviders.CurrentPlatform) if _, err := os.Stat(betweenPath); os.IsNotExist(err) { t.Fatal("provider 'between' not downloaded") } @@ -1455,7 +1455,7 @@ func TestInit_getProviderSource(t *testing.T) { if _, err := os.Stat(greaterThanPath); os.IsNotExist(err) { t.Error("provider 'beta' not downloaded") } - betweenPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/gamma/2.0.0/%s", getproviders.CurrentPlatform) + betweenPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/gamma/2.0.0/%s", getproviders.CurrentPlatform) if _, err := os.Stat(betweenPath); os.IsNotExist(err) { t.Error("provider 'gamma' not downloaded") } @@ -1575,7 +1575,7 @@ func TestInit_getProviderDetectedLegacy(t *testing.T) { // unknown provider, and the registry source will allow us to look up the // appropriate namespace if possible. providerSource, psClose := newMockProviderSource(t, map[string][]string{ - "opentofu/foo": {"1.2.3"}, + "hashicorp/foo": {"1.2.3"}, "terraform-providers/baz": {"2.3.4"}, // this will not be installed }) defer psClose() @@ -1606,7 +1606,7 @@ func TestInit_getProviderDetectedLegacy(t *testing.T) { } // foo should be installed - fooPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/opentofu/foo/1.2.3/%s", getproviders.CurrentPlatform) + fooPath := fmt.Sprintf(".terraform/providers/registry.opentofu.org/hashicorp/foo/1.2.3/%s", getproviders.CurrentPlatform) if _, err := os.Stat(fooPath); os.IsNotExist(err) { t.Error("provider 'foo' not installed") } @@ -1621,8 +1621,8 @@ func TestInit_getProviderDetectedLegacy(t *testing.T) { errors := []string{ "Failed to query available provider packages", "Could not retrieve the list of available versions", - "registry.opentofu.org/opentofu/baz", - "registry.opentofu.org/opentofu/frob", + "registry.opentofu.org/hashicorp/baz", + "registry.opentofu.org/hashicorp/frob", } for _, want := range errors { if !strings.Contains(errOutput, want) { @@ -1706,7 +1706,7 @@ func TestInit_providerSource(t *testing.T) { getproviders.MustParseVersion("1.2.4"), getproviders.MustParseVersionConstraints("= 1.2.4"), []getproviders.Hash{ - getproviders.HashScheme1.New("b0v9t2QIGmmThEhnnOVHq7RU9d1j5v1iEWhmI5VFOpQ="), + getproviders.HashScheme1.New("vEthLkqAecdQimaW6JHZ0SBRNtHibLnOb31tX9ZXlcI="), }, ), addrs.NewDefaultProvider("test"): depsfile.NewProviderLock( @@ -1714,7 +1714,7 @@ func TestInit_providerSource(t *testing.T) { getproviders.MustParseVersion("1.2.3"), getproviders.MustParseVersionConstraints("= 1.2.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("pE4OWJznTz5mLbgr4HYfs1oMKDOnCzmSwYP6syfGAfI="), + getproviders.HashScheme1.New("8CjxaUBuegKZSFnRos39Fs+CS78ax0Dyb7aIA5XBiNI="), }, ), addrs.NewDefaultProvider("source"): depsfile.NewProviderLock( @@ -1722,7 +1722,7 @@ func TestInit_providerSource(t *testing.T) { getproviders.MustParseVersion("1.2.3"), getproviders.MustParseVersionConstraints("= 1.2.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("QFO4triI5Pc0nqKuAxT16LhBBmXSmPt3W4PrajMo9pw="), + getproviders.HashScheme1.New("ACYytVQ2Q6JfoEs7xxCqa1yGFf9HwF3SEHzJKBoJfo0="), }, ), } @@ -1731,10 +1731,10 @@ func TestInit_providerSource(t *testing.T) { t.Errorf("wrong version selections after upgrade\n%s", diff) } - if got, want := ui.OutputWriter.String(), "Installed opentofu/test v1.2.3 (verified checksum)"; !strings.Contains(got, want) { + if got, want := ui.OutputWriter.String(), "Installed hashicorp/test v1.2.3 (verified checksum)"; !strings.Contains(got, want) { t.Fatalf("unexpected output: %s\nexpected to include %q", got, want) } - if got, want := ui.ErrorWriter.String(), "\n - opentofu/source\n - opentofu/test\n - opentofu/test-beta"; !strings.Contains(got, want) { + if got, want := ui.ErrorWriter.String(), "\n - hashicorp/source\n - hashicorp/test\n - hashicorp/test-beta"; !strings.Contains(got, want) { t.Fatalf("wrong error message\nshould contain: %s\ngot:\n%s", want, got) } } @@ -1922,7 +1922,7 @@ func TestInit_getUpgradePlugins(t *testing.T) { getproviders.MustParseVersion("2.3.4"), getproviders.MustParseVersionConstraints("> 1.0.0, < 3.0.0"), []getproviders.Hash{ - getproviders.HashScheme1.New("qcC2U/kpxLRmHf8QeXyxA/O4PhRqnxfRglPi+yhiSuw="), + getproviders.HashScheme1.New("ntfa04OlRqIfGL/Gkd+nGMJSHGWyAgMQplFWk7WEsOk="), }, ), addrs.NewDefaultProvider("exact"): depsfile.NewProviderLock( @@ -1930,7 +1930,7 @@ func TestInit_getUpgradePlugins(t *testing.T) { getproviders.MustParseVersion("1.2.3"), getproviders.MustParseVersionConstraints("= 1.2.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("H5ikHNkgwFdOMSJSscblbHiEb7y+w62o1c/SSf/evEc="), + getproviders.HashScheme1.New("Xgk+LFrzi9Mop6+d01TCTaD3kgSrUASCAUU1aDsEsJU="), }, ), addrs.NewDefaultProvider("greater-than"): depsfile.NewProviderLock( @@ -1938,7 +1938,7 @@ func TestInit_getUpgradePlugins(t *testing.T) { getproviders.MustParseVersion("2.3.4"), getproviders.MustParseVersionConstraints(">= 2.3.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("lfCCpvNgaAYcuXQmiDvxRXgn8zHl0p6gvcTm+9c3jKk="), + getproviders.HashScheme1.New("8M5DXICmUiVjbkxNNO0zXNsV6duCVNWzq3/Kf0mNIo4="), }, ), } @@ -2111,11 +2111,11 @@ func TestInit_providerLockFile(t *testing.T) { # This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.2.3" constraints = "1.2.3" hashes = [ - "h1:pE4OWJznTz5mLbgr4HYfs1oMKDOnCzmSwYP6syfGAfI=", + "h1:8CjxaUBuegKZSFnRos39Fs+CS78ax0Dyb7aIA5XBiNI=", ] } `) @@ -2138,11 +2138,11 @@ func TestInit_providerLockFileReadonly(t *testing.T) { # This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.2.3" constraints = "1.2.3" hashes = [ - "zh:3a72690e72116f1551ef89b3638148ac7cb4c9ae54ea87402880ca42dea1451d", + "zh:6f85a1f747dd09455cd77683c0e06da647d8240461b8b36b304b9056814d91f2", ] } `) @@ -2151,7 +2151,7 @@ provider "registry.opentofu.org/opentofu/test" { # This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.2.3" constraints = "1.2.3" hashes = [ @@ -2164,12 +2164,12 @@ provider "registry.opentofu.org/opentofu/test" { # This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.2.3" constraints = "1.2.3" hashes = [ - "h1:pE4OWJznTz5mLbgr4HYfs1oMKDOnCzmSwYP6syfGAfI=", - "zh:3a72690e72116f1551ef89b3638148ac7cb4c9ae54ea87402880ca42dea1451d", + "h1:8CjxaUBuegKZSFnRos39Fs+CS78ax0Dyb7aIA5XBiNI=", + "zh:6f85a1f747dd09455cd77683c0e06da647d8240461b8b36b304b9056814d91f2", ] } `) @@ -2438,7 +2438,7 @@ func TestInit_pluginDirProviders(t *testing.T) { getproviders.MustParseVersion("2.3.4"), getproviders.MustParseVersionConstraints("> 1.0.0, < 3.0.0"), []getproviders.Hash{ - getproviders.HashScheme1.New("qcC2U/kpxLRmHf8QeXyxA/O4PhRqnxfRglPi+yhiSuw="), + getproviders.HashScheme1.New("ntfa04OlRqIfGL/Gkd+nGMJSHGWyAgMQplFWk7WEsOk="), }, ), addrs.NewDefaultProvider("exact"): depsfile.NewProviderLock( @@ -2446,7 +2446,7 @@ func TestInit_pluginDirProviders(t *testing.T) { getproviders.MustParseVersion("1.2.3"), getproviders.MustParseVersionConstraints("= 1.2.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("H5ikHNkgwFdOMSJSscblbHiEb7y+w62o1c/SSf/evEc="), + getproviders.HashScheme1.New("Xgk+LFrzi9Mop6+d01TCTaD3kgSrUASCAUU1aDsEsJU="), }, ), addrs.NewDefaultProvider("greater-than"): depsfile.NewProviderLock( @@ -2454,7 +2454,7 @@ func TestInit_pluginDirProviders(t *testing.T) { getproviders.MustParseVersion("2.3.4"), getproviders.MustParseVersionConstraints(">= 2.3.3"), []getproviders.Hash{ - getproviders.HashScheme1.New("lfCCpvNgaAYcuXQmiDvxRXgn8zHl0p6gvcTm+9c3jKk="), + getproviders.HashScheme1.New("8M5DXICmUiVjbkxNNO0zXNsV6duCVNWzq3/Kf0mNIo4="), }, ), } @@ -2531,13 +2531,13 @@ func TestInit_pluginDirProvidersDoesNotGet(t *testing.T) { // mention either the "exact" or "greater-than" provider, because the // latter two are available via the -plugin-dir directories. errStr := ui.ErrorWriter.String() - if subStr := "opentofu/between"; !strings.Contains(errStr, subStr) { + if subStr := "hashicorp/between"; !strings.Contains(errStr, subStr) { t.Errorf("error output should mention the 'between' provider\nwant substr: %s\ngot:\n%s", subStr, errStr) } - if subStr := "opentofu/exact"; strings.Contains(errStr, subStr) { + if subStr := "hashicorp/exact"; strings.Contains(errStr, subStr) { t.Errorf("error output should not mention the 'exact' provider\ndo not want substr: %s\ngot:\n%s", subStr, errStr) } - if subStr := "opentofu/greater-than"; strings.Contains(errStr, subStr) { + if subStr := "hashicorp/greater-than"; strings.Contains(errStr, subStr) { t.Errorf("error output should not mention the 'greater-than' provider\ndo not want substr: %s\ngot:\n%s", subStr, errStr) } @@ -2751,7 +2751,7 @@ func TestInit_tests(t *testing.T) { provider := applyFixtureProvider() // We just want the types from this provider. providerSource, close := newMockProviderSource(t, map[string][]string{ - "opentofu/test": {"1.0.0"}, + "hashicorp/test": {"1.0.0"}, }) defer close() @@ -2781,7 +2781,7 @@ func TestInit_testsWithProvider(t *testing.T) { provider := applyFixtureProvider() // We just want the types from this provider. providerSource, close := newMockProviderSource(t, map[string][]string{ - "opentofu/test": {"1.0.0"}, + "hashicorp/test": {"1.0.0"}, }) defer close() @@ -2805,8 +2805,9 @@ func TestInit_testsWithProvider(t *testing.T) { want := ` Error: Failed to query available provider packages -Could not retrieve the list of available versions for provider opentofu/test: -no available releases match the given constraints 1.0.1, 1.0.2 +Could not retrieve the list of available versions for provider +hashicorp/test: no available releases match the given constraints 1.0.1, +1.0.2 ` if diff := cmp.Diff(got, want); len(diff) > 0 { @@ -2823,7 +2824,7 @@ func TestInit_testsWithModule(t *testing.T) { provider := applyFixtureProvider() // We just want the types from this provider. providerSource, close := newMockProviderSource(t, map[string][]string{ - "opentofu/test": {"1.0.0"}, + "hashicorp/test": {"1.0.0"}, }) defer close() @@ -2860,7 +2861,7 @@ func TestInit_testsWithModule(t *testing.T) { // // Provider addresses must be valid source strings, and passing only the // provider name will be interpreted as a "default" provider under -// registry.opentofu.org/opentofu. If you need more control over the +// registry.opentofu.org/hashicorp. If you need more control over the // provider addresses, pass a full provider source string. // // This function also registers providers as belonging to the current platform, @@ -2979,13 +2980,13 @@ func expectedPackageInstallPath(name, version string, exe bool) string { platform := getproviders.CurrentPlatform baseDir := ".terraform/providers" if exe { - p := fmt.Sprintf("registry.opentofu.org/opentofu/%s/%s/%s/terraform-provider-%s_%s", name, version, platform, name, version) + p := fmt.Sprintf("registry.opentofu.org/hashicorp/%s/%s/%s/terraform-provider-%s_%s", name, version, platform, name, version) if platform.OS == "windows" { p += ".exe" } return filepath.ToSlash(filepath.Join(baseDir, p)) } return filepath.ToSlash(filepath.Join( - baseDir, fmt.Sprintf("registry.opentofu.org/opentofu/%s/%s/%s", name, version, platform), + baseDir, fmt.Sprintf("registry.opentofu.org/hashicorp/%s/%s/%s", name, version, platform), )) } diff --git a/internal/command/jsonconfig/config_test.go b/internal/command/jsonconfig/config_test.go index 88f6c54a84..a018636638 100644 --- a/internal/command/jsonconfig/config_test.go +++ b/internal/command/jsonconfig/config_test.go @@ -16,17 +16,17 @@ func TestFindSourceProviderConfig(t *testing.T) { }{ { StartKey: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ProviderMap: map[string]providerConfig{}, Want: "", }, { StartKey: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ProviderMap: map[string]providerConfig{ "null": { Name: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "", }, }, @@ -34,11 +34,11 @@ func TestFindSourceProviderConfig(t *testing.T) { }, { StartKey: "null2", - FullName: "opentofu/null", + FullName: "hashicorp/null", ProviderMap: map[string]providerConfig{ "null": { Name: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "", }, }, @@ -46,11 +46,11 @@ func TestFindSourceProviderConfig(t *testing.T) { }, { StartKey: "null", - FullName: "opentofu2/null", + FullName: "hashicorp2/null", ProviderMap: map[string]providerConfig{ "null": { Name: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "", }, }, @@ -58,16 +58,16 @@ func TestFindSourceProviderConfig(t *testing.T) { }, { StartKey: "module.a:null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ProviderMap: map[string]providerConfig{ "null": { Name: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "", }, "module.a:null": { Name: "module.a:null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "module.a", parentKey: "null", }, @@ -76,16 +76,16 @@ func TestFindSourceProviderConfig(t *testing.T) { }, { StartKey: "module.a:null", - FullName: "opentofu2/null", + FullName: "hashicorp2/null", ProviderMap: map[string]providerConfig{ "null": { Name: "null", - FullName: "opentofu/null", + FullName: "hashicorp/null", ModuleAddress: "", }, "module.a:null": { Name: "module.a:null", - FullName: "opentofu2/null", + FullName: "hashicorp2/null", ModuleAddress: "module.a", parentKey: "null", }, diff --git a/internal/command/jsonplan/values_test.go b/internal/command/jsonplan/values_test.go index 5210dd8ca1..b3615d24e5 100644 --- a/internal/command/jsonplan/values_test.go +++ b/internal/command/jsonplan/values_test.go @@ -204,7 +204,7 @@ func TestMarshalPlanResources(t *testing.T) { Type: "test_thing", Name: "example", Index: addrs.InstanceKey(nil), - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", SchemaVersion: 1, AttributeValues: AttributeValues{}, SensitiveValues: json.RawMessage("{}"), @@ -247,7 +247,7 @@ func TestMarshalPlanResources(t *testing.T) { Type: "test_thing", Name: "example", Index: addrs.InstanceKey(nil), - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", SchemaVersion: 1, AttributeValues: AttributeValues{ "woozles": json.RawMessage(`"baz"`), diff --git a/internal/command/jsonstate/state_test.go b/internal/command/jsonstate/state_test.go index 915b442f81..c18cd60b69 100644 --- a/internal/command/jsonstate/state_test.go +++ b/internal/command/jsonstate/state_test.go @@ -225,7 +225,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), "woozles": json.RawMessage(`"confuzles"`), @@ -267,7 +267,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`"sensuzles"`), "woozles": json.RawMessage(`"confuzles"`), @@ -313,7 +313,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`"confuzles"`), "woozles": json.RawMessage(`null`), @@ -384,7 +384,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: json.RawMessage(`0`), - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), "woozles": json.RawMessage(`"confuzles"`), @@ -426,7 +426,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: json.RawMessage(`"rockhopper"`), - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), "woozles": json.RawMessage(`"confuzles"`), @@ -470,7 +470,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", DeposedKey: deposedKey.String(), AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), @@ -519,7 +519,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), "woozles": json.RawMessage(`"confuzles"`), @@ -532,7 +532,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_thing", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", DeposedKey: deposedKey.String(), AttributeValues: AttributeValues{ "foozles": json.RawMessage(`null`), @@ -579,7 +579,7 @@ func TestMarshalResources(t *testing.T) { Type: "test_map_attr", Name: "bar", Index: nil, - ProviderName: "registry.opentofu.org/opentofu/test", + ProviderName: "registry.opentofu.org/hashicorp/test", AttributeValues: AttributeValues{ "data": json.RawMessage(`{"woozles":"confuzles"}`), }, diff --git a/internal/command/plan_test.go b/internal/command/plan_test.go index 8fad6b393f..b96523a03a 100644 --- a/internal/command/plan_test.go +++ b/internal/command/plan_test.go @@ -1271,7 +1271,7 @@ func TestPlan_init_required(t *testing.T) { t.Fatalf("expected error, got success") } got := output.Stderr() - if !(strings.Contains(got, "tofu init") && strings.Contains(got, "provider registry.opentofu.org/opentofu/test: required by this configuration but no version is selected")) { + if !(strings.Contains(got, "tofu init") && strings.Contains(got, "provider registry.opentofu.org/hashicorp/test: required by this configuration but no version is selected")) { t.Fatal("wrong error message in output:", got) } } diff --git a/internal/command/providers_lock_test.go b/internal/command/providers_lock_test.go index bbdb2d0a22..b1a9edde7d 100644 --- a/internal/command/providers_lock_test.go +++ b/internal/command/providers_lock_test.go @@ -44,7 +44,7 @@ func TestProvidersLock(t *testing.T) { expected := `# This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.0.0" hashes = [ "h1:7MjN4eFisdTv4tlhXH5hL4QQd39Jy4baPhFxwAd/EFE=", @@ -60,7 +60,7 @@ provider "registry.opentofu.org/opentofu/test" { expected := `# This file is maintained automatically by "tofu init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.0.0" hashes = [ "h1:7MjN4eFisdTv4tlhXH5hL4QQd39Jy4baPhFxwAd/EFE=", @@ -80,8 +80,8 @@ func runProviderLockGenericTest(t *testing.T, testDirectory, expected string) { // Our fixture dir has a generic os_arch dir, which we need to customize // to the actual OS/arch where this test is running in order to get the // desired result. - fixtMachineDir := filepath.Join(td, "fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/os_arch") - wantMachineDir := filepath.Join(td, "fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) + fixtMachineDir := filepath.Join(td, "fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/os_arch") + wantMachineDir := filepath.Join(td, "fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/", fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)) err := os.Rename(fixtMachineDir, wantMachineDir) if err != nil { t.Fatalf("unexpected error: %s", err) @@ -168,14 +168,14 @@ func TestProvidersLock_args(t *testing.T) { } // There is no configuration, so it's not valid to use any provider argument - args := []string{"opentofu/random"} + args := []string{"hashicorp/random"} code := c.Run(args) if code != 1 { t.Fatalf("wrong exit code; expected 1, got %d", code) } output := ui.ErrorWriter.String() - if !strings.Contains(output, "The provider registry.opentofu.org/opentofu/random is not required by the\ncurrent configuration.") { + if !strings.Contains(output, "The provider registry.opentofu.org/hashicorp/random is not required by the\ncurrent configuration.") { t.Fatalf("missing expected error message: %s", output) } }) diff --git a/internal/command/providers_test.go b/internal/command/providers_test.go index 3d9661b86b..0135283e37 100644 --- a/internal/command/providers_test.go +++ b/internal/command/providers_test.go @@ -34,9 +34,9 @@ func TestProviders(t *testing.T) { } wantOutput := []string{ - "provider[registry.opentofu.org/opentofu/foo]", - "provider[registry.opentofu.org/opentofu/bar]", - "provider[registry.opentofu.org/opentofu/baz]", + "provider[registry.opentofu.org/hashicorp/foo]", + "provider[registry.opentofu.org/hashicorp/bar]", + "provider[registry.opentofu.org/hashicorp/baz]", } output := ui.OutputWriter.String() @@ -116,10 +116,10 @@ func TestProviders_modules(t *testing.T) { } wantOutput := []string{ - "provider[registry.opentofu.org/opentofu/foo] 1.0.0", // from required_providers - "provider[registry.opentofu.org/opentofu/bar] 2.0.0", // from provider config - "── module.kiddo", // tree node for child module - "provider[registry.opentofu.org/opentofu/baz]", // implied by a resource in the child module + "provider[registry.opentofu.org/hashicorp/foo] 1.0.0", // from required_providers + "provider[registry.opentofu.org/hashicorp/bar] 2.0.0", // from provider config + "── module.kiddo", // tree node for child module + "provider[registry.opentofu.org/hashicorp/baz]", // implied by a resource in the child module } output := ui.OutputWriter.String() @@ -153,10 +153,10 @@ func TestProviders_state(t *testing.T) { } wantOutput := []string{ - "provider[registry.opentofu.org/opentofu/foo] 1.0.0", // from required_providers - "provider[registry.opentofu.org/opentofu/bar] 2.0.0", // from a provider config block - "Providers required by state", // header for state providers - "provider[registry.opentofu.org/opentofu/baz]", // from a resouce in state (only) + "provider[registry.opentofu.org/hashicorp/foo] 1.0.0", // from required_providers + "provider[registry.opentofu.org/hashicorp/bar] 2.0.0", // from a provider config block + "Providers required by state", // header for state providers + "provider[registry.opentofu.org/hashicorp/baz]", // from a resouce in state (only) } output := ui.OutputWriter.String() @@ -190,9 +190,9 @@ func TestProviders_tests(t *testing.T) { } wantOutput := []string{ - "provider[registry.opentofu.org/opentofu/foo]", + "provider[registry.opentofu.org/hashicorp/foo]", "test.main", - "provider[registry.opentofu.org/opentofu/bar]", + "provider[registry.opentofu.org/hashicorp/bar]", } output := ui.OutputWriter.String() diff --git a/internal/command/refresh_test.go b/internal/command/refresh_test.go index cfe16ce6b0..d83d8ceae7 100644 --- a/internal/command/refresh_test.go +++ b/internal/command/refresh_test.go @@ -968,10 +968,10 @@ foo = "bar" const testRefreshStr = ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` const testRefreshCwdStr = ` test_instance.foo: ID = yes - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` diff --git a/internal/command/show_test.go b/internal/command/show_test.go index b0e203d8b8..d207b99dd5 100644 --- a/internal/command/show_test.go +++ b/internal/command/show_test.go @@ -546,8 +546,8 @@ func TestShow_json_output(t *testing.T) { expectError := strings.Contains(entry.Name(), "error") providerSource, close := newMockProviderSource(t, map[string][]string{ - "test": {"1.2.3"}, - "opentofu2/test": {"1.2.3"}, + "test": {"1.2.3"}, + "hashicorp2/test": {"1.2.3"}, }) defer close() diff --git a/internal/command/state_mv_test.go b/internal/command/state_mv_test.go index a9f741a32f..a00e1bdb0d 100644 --- a/internal/command/state_mv_test.go +++ b/internal/command/state_mv_test.go @@ -473,12 +473,12 @@ func TestStateMv_resourceToInstance(t *testing.T) { testStateOutput(t, statePath, ` test_instance.bar.0: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -691,12 +691,12 @@ func TestStateMv_instanceToResource(t *testing.T) { testStateOutput(t, statePath, ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -709,12 +709,12 @@ test_instance.baz: testStateOutput(t, backups[0], ` test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.0: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -766,7 +766,7 @@ func TestStateMv_instanceToNewResource(t *testing.T) { testStateOutput(t, statePath, ` test_instance.bar["new"]: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -787,7 +787,7 @@ test_instance.bar["new"]: module.test: test_instance.baz["new"]: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -1787,7 +1787,7 @@ func TestStateMv_checkRequiredVersion(t *testing.T) { const testStateMvOutputOriginal = ` test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value @@ -1795,7 +1795,7 @@ test_instance.baz: test_instance.foo test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1803,12 +1803,12 @@ test_instance.foo: const testStateMvOutput = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1816,7 +1816,7 @@ test_instance.baz: const testStateMvBackupAndBackupOutOptionsWithNonLocalBackendOutput = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1824,12 +1824,12 @@ test_instance.bar: const testStateMvCount_stateOut = ` test_instance.bar.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.1: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1837,7 +1837,7 @@ test_instance.bar.1: const testStateMvCount_stateOutSrc = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1845,17 +1845,17 @@ test_instance.bar: const testStateMvCount_stateOutOriginal = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.1: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1863,57 +1863,57 @@ test_instance.foo.1: const testStateMvLargeCount_stateOut = ` test_instance.bar.0: ID = foo0 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.1: ID = foo1 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.2: ID = foo2 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.3: ID = foo3 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.4: ID = foo4 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.5: ID = foo5 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.6: ID = foo6 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.7: ID = foo7 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.8: ID = foo8 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.9: ID = foo9 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.bar.10: ID = foo10 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1921,7 +1921,7 @@ test_instance.bar.10: const testStateMvLargeCount_stateOutSrc = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1929,62 +1929,62 @@ test_instance.bar: const testStateMvLargeCount_stateOutOriginal = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.0: ID = foo0 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.1: ID = foo1 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.2: ID = foo2 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.3: ID = foo3 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.4: ID = foo4 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.5: ID = foo5 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.6: ID = foo6 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.7: ID = foo7 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.8: ID = foo8 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.9: ID = foo9 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo.10: ID = foo10 - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -1994,13 +1994,13 @@ const testStateMvNestedModule_stateOut = ` module.bar.child1: test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value module.bar.child2: test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2010,7 +2010,7 @@ const testStateMvNewModule_stateOut = ` module.bar: test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2020,7 +2020,7 @@ const testStateMvModuleNewModule_stateOut = ` module.foo: test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2028,7 +2028,7 @@ module.foo: const testStateMvNewModule_stateOutOriginal = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2042,13 +2042,13 @@ const testStateMvNestedModule_stateOutOriginal = ` module.foo.child1: test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value module.foo.child2: test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2056,7 +2056,7 @@ module.foo.child2: const testStateMvOutput_stateOut = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2068,7 +2068,7 @@ const testStateMvOutput_stateOutSrc = ` const testStateMvOutput_stateOutOriginal = ` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2080,18 +2080,18 @@ const testStateMvExisting_stateSrc = ` const testStateMvExisting_stateDst = ` test_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.qux: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` const testStateMvExisting_stateSrcOriginal = ` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2099,13 +2099,13 @@ test_instance.foo: const testStateMvExisting_stateDstOriginal = ` test_instance.qux: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` const testStateMvOriginal_backend = ` test_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2115,7 +2115,7 @@ const testStateMvOnlyResourceInModule_original = ` module.foo: test_instance.foo.0: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -2125,7 +2125,7 @@ const testStateMvOnlyResourceInModule_output = ` module.foo: test_instance.bar.0: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` diff --git a/internal/command/state_replace_provider_test.go b/internal/command/state_replace_provider_test.go index cc3091398f..753eb557dc 100644 --- a/internal/command/state_replace_provider_test.go +++ b/internal/command/state_replace_provider_test.go @@ -84,7 +84,7 @@ func TestStateReplaceProvider(t *testing.T) { args := []string{ "-state", statePath, - "opentofu/aws", + "hashicorp/aws", "acmecorp/aws", } if code := c.Run(args); code != 0 { @@ -120,7 +120,7 @@ func TestStateReplaceProvider(t *testing.T) { args := []string{ "-state", statePath, "-auto-approve", - "opentofu/aws", + "hashicorp/aws", "acmecorp/aws", } if code := c.Run(args); code != 0 { @@ -156,7 +156,7 @@ func TestStateReplaceProvider(t *testing.T) { args := []string{ "-state", statePath, - "opentofu/aws", + "hashicorp/aws", "acmecorp/aws", } if code := c.Run(args); code != 0 { @@ -187,7 +187,7 @@ func TestStateReplaceProvider(t *testing.T) { args := []string{ "-state", statePath, - "opentofu/google", + "hashicorp/google", "acmecorp/google", } if code := c.Run(args); code != 0 { @@ -216,7 +216,7 @@ func TestStateReplaceProvider(t *testing.T) { args := []string{ "-invalid", - "opentofu/google", + "hashicorp/google", "acmecorp/google", } if code := c.Run(args); code == 0 { @@ -263,7 +263,7 @@ func TestStateReplaceProvider(t *testing.T) { } args := []string{ - "opentofu/google_cloud", + "hashicorp/google_cloud", "-/-/google", } if code := c.Run(args); code == 0 { @@ -272,7 +272,7 @@ func TestStateReplaceProvider(t *testing.T) { got := ui.ErrorWriter.String() msgs := []string{ - `Invalid "from" provider "opentofu/google_cloud"`, + `Invalid "from" provider "hashicorp/google_cloud"`, "Invalid provider type", `Invalid "to" provider "-/-/google"`, "Invalid provider source hostname", @@ -370,7 +370,7 @@ func TestStateReplaceProvider_checkRequiredVersion(t *testing.T) { args := []string{ "-state", statePath, - "opentofu/aws", + "hashicorp/aws", "acmecorp/aws", } if code := c.Run(args); code != 1 { @@ -393,12 +393,12 @@ func TestStateReplaceProvider_checkRequiredVersion(t *testing.T) { const testStateReplaceProviderOutputOriginal = ` aws_instance.alpha: ID = alpha - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] bar = value foo = value aws_instance.beta: ID = beta - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] bar = value foo = value azurerm_virtual_machine.gamma: diff --git a/internal/command/state_rm_test.go b/internal/command/state_rm_test.go index e48eea3e58..45879a145e 100644 --- a/internal/command/state_rm_test.go +++ b/internal/command/state_rm_test.go @@ -147,7 +147,7 @@ func TestStateRmNotChildModule(t *testing.T) { module.child: test_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -160,14 +160,14 @@ module.child: testStateOutput(t, backups[0], ` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value module.child: test_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value `) @@ -563,12 +563,12 @@ func TestStateRm_checkRequiredVersion(t *testing.T) { const testStateRmOutputOriginal = ` test_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` @@ -576,7 +576,7 @@ test_instance.foo: const testStateRmOutput = ` test_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] bar = value foo = value ` diff --git a/internal/command/taint_test.go b/internal/command/taint_test.go index d1b4239aa9..2add1370ab 100644 --- a/internal/command/taint_test.go +++ b/internal/command/taint_test.go @@ -546,22 +546,22 @@ func TestTaint_checkRequiredVersion(t *testing.T) { const testTaintStr = ` test_instance.foo: (tainted) ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` const testTaintDefaultStr = ` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` const testTaintModuleStr = ` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] module.child: test_instance.blah: (tainted) ID = blah - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] ` diff --git a/internal/command/test_test.go b/internal/command/test_test.go index 891f650b17..1e9b67f565 100644 --- a/internal/command/test_test.go +++ b/internal/command/test_test.go @@ -673,9 +673,9 @@ Failure! 0 passed, 1 failed. Error: Provider configuration not present To work with test_resource.secondary its original provider configuration at -provider["registry.opentofu.org/opentofu/test"].secondary is required, but it -has been removed. This occurs when a provider configuration is removed while -objects created by that provider still exist in the state. Re-add the +provider["registry.opentofu.org/hashicorp/test"].secondary is required, but +it has been removed. This occurs when a provider configuration is removed +while objects created by that provider still exist in the state. Re-add the provider configuration to destroy test_resource.secondary, after which you can remove the provider configuration again. `, @@ -690,9 +690,9 @@ Failure! 0 passed, 1 failed. Error: Provider configuration not present To work with test_resource.secondary its original provider configuration at -provider["registry.opentofu.org/opentofu/test"].secondary is required, but it -has been removed. This occurs when a provider configuration is removed while -objects created by that provider still exist in the state. Re-add the +provider["registry.opentofu.org/hashicorp/test"].secondary is required, but +it has been removed. This occurs when a provider configuration is removed +while objects created by that provider still exist in the state. Re-add the provider configuration to destroy test_resource.secondary, after which you can remove the provider configuration again. `, @@ -708,9 +708,9 @@ Failure! 1 passed, 1 failed. Error: Provider configuration not present To work with test_resource.secondary its original provider configuration at -provider["registry.opentofu.org/opentofu/test"].secondary is required, but it -has been removed. This occurs when a provider configuration is removed while -objects created by that provider still exist in the state. Re-add the +provider["registry.opentofu.org/hashicorp/test"].secondary is required, but +it has been removed. This occurs when a provider configuration is removed +while objects created by that provider still exist in the state. Re-add the provider configuration to destroy test_resource.secondary, after which you can remove the provider configuration again. `, diff --git a/internal/command/testdata/init-get-provider-detected-legacy/child/main.tf b/internal/command/testdata/init-get-provider-detected-legacy/child/main.tf index 528187ae59..6c8b883f42 100644 --- a/internal/command/testdata/init-get-provider-detected-legacy/child/main.tf +++ b/internal/command/testdata/init-get-provider-detected-legacy/child/main.tf @@ -1,3 +1,3 @@ -// This will try to install opentofu/baz, fail, and then suggest +// This will try to install hashicorp/baz, fail, and then suggest // terraform-providers/baz provider baz {} diff --git a/internal/command/testdata/init-get-provider-detected-legacy/main.tf b/internal/command/testdata/init-get-provider-detected-legacy/main.tf index e24c715834..4ba7ef4d32 100644 --- a/internal/command/testdata/init-get-provider-detected-legacy/main.tf +++ b/internal/command/testdata/init-get-provider-detected-legacy/main.tf @@ -1,7 +1,7 @@ -// This should result in installing opentofu/foo +// This should result in installing hashicorp/foo provider foo {} -// This will try to install opentofu/baz, fail, and then suggest +// This will try to install hashicorp/baz, fail, and then suggest // terraform-providers/baz provider baz {} diff --git a/internal/command/testdata/init-provider-now-unused/main.tf b/internal/command/testdata/init-provider-now-unused/main.tf index 8940e30d7e..e1f1ec18b9 100644 --- a/internal/command/testdata/init-provider-now-unused/main.tf +++ b/internal/command/testdata/init-provider-now-unused/main.tf @@ -1,3 +1,3 @@ # Intentionally blank, but intended to be used in a test case which -# uses an input lock file which already had an entry for the opentofu/test +# uses an input lock file which already had an entry for the hashicorp/test # provider, and should therefore detect it as no longer used. diff --git a/internal/command/testdata/init-with-tests-with-provider/main.tf b/internal/command/testdata/init-with-tests-with-provider/main.tf index 5ea9a687f6..fe11fd160e 100644 --- a/internal/command/testdata/init-with-tests-with-provider/main.tf +++ b/internal/command/testdata/init-with-tests-with-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" version = "1.0.2" } } diff --git a/internal/command/testdata/init-with-tests-with-provider/setup/main.tf b/internal/command/testdata/init-with-tests-with-provider/setup/main.tf index a9c9f829ee..b0d3436f4d 100644 --- a/internal/command/testdata/init-with-tests-with-provider/setup/main.tf +++ b/internal/command/testdata/init-with-tests-with-provider/setup/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" version = "1.0.1" } } diff --git a/internal/command/testdata/modules/terraform.tfstate b/internal/command/testdata/modules/terraform.tfstate index c29c0a8938..64337f1b37 100644 --- a/internal/command/testdata/modules/terraform.tfstate +++ b/internal/command/testdata/modules/terraform.tfstate @@ -10,7 +10,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/plan-existing-state/terraform.tfstate b/internal/command/testdata/plan-existing-state/terraform.tfstate index 51ec16e480..44f62a8d04 100644 --- a/internal/command/testdata/plan-existing-state/terraform.tfstate +++ b/internal/command/testdata/plan-existing-state/terraform.tfstate @@ -10,7 +10,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/providers-lock/append/.terraform.lock.hcl b/internal/command/testdata/providers-lock/append/.terraform.lock.hcl index 32ab5d2ebf..28f5d874ec 100644 --- a/internal/command/testdata/providers-lock/append/.terraform.lock.hcl +++ b/internal/command/testdata/providers-lock/append/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "terraform init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/test" { +provider "registry.opentofu.org/hashicorp/test" { version = "1.0.0" hashes = [ "h1:invalid", diff --git a/internal/command/testdata/providers-lock/append/fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/os_arch/terraform-provider-test b/internal/command/testdata/providers-lock/append/fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/os_arch/terraform-provider-test similarity index 100% rename from internal/command/testdata/providers-lock/append/fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/os_arch/terraform-provider-test rename to internal/command/testdata/providers-lock/append/fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/os_arch/terraform-provider-test diff --git a/internal/command/testdata/providers-lock/append/main.tf b/internal/command/testdata/providers-lock/append/main.tf index 70807701b3..d3de379059 100644 --- a/internal/command/testdata/providers-lock/append/main.tf +++ b/internal/command/testdata/providers-lock/append/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/command/testdata/providers-lock/basic/fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/os_arch/terraform-provider-test b/internal/command/testdata/providers-lock/basic/fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/os_arch/terraform-provider-test similarity index 100% rename from internal/command/testdata/providers-lock/basic/fs-mirror/registry.opentofu.org/opentofu/test/1.0.0/os_arch/terraform-provider-test rename to internal/command/testdata/providers-lock/basic/fs-mirror/registry.opentofu.org/hashicorp/test/1.0.0/os_arch/terraform-provider-test diff --git a/internal/command/testdata/providers-lock/basic/main.tf b/internal/command/testdata/providers-lock/basic/main.tf index 74622ec4eb..41b211f268 100644 --- a/internal/command/testdata/providers-lock/basic/main.tf +++ b/internal/command/testdata/providers-lock/basic/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } \ No newline at end of file diff --git a/internal/command/testdata/providers-schema/basic/output.json b/internal/command/testdata/providers-schema/basic/output.json index 62cff94c84..59caf0dce5 100644 --- a/internal/command/testdata/providers-schema/basic/output.json +++ b/internal/command/testdata/providers-schema/basic/output.json @@ -1,7 +1,7 @@ { "format_version": "1.0", "provider_schemas": { - "registry.opentofu.org/opentofu/test": { + "registry.opentofu.org/hashicorp/test": { "provider": { "version": 0, "block": { diff --git a/internal/command/testdata/providers-schema/required/output.json b/internal/command/testdata/providers-schema/required/output.json index 62cff94c84..59caf0dce5 100644 --- a/internal/command/testdata/providers-schema/required/output.json +++ b/internal/command/testdata/providers-schema/required/output.json @@ -1,7 +1,7 @@ { "format_version": "1.0", "provider_schemas": { - "registry.opentofu.org/opentofu/test": { + "registry.opentofu.org/hashicorp/test": { "provider": { "version": 0, "block": { diff --git a/internal/command/testdata/providers-schema/required/provider.tf b/internal/command/testdata/providers-schema/required/provider.tf index 52efc0ac55..a6475e1bcf 100644 --- a/internal/command/testdata/providers-schema/required/provider.tf +++ b/internal/command/testdata/providers-schema/required/provider.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/command/testdata/providers/state/terraform.tfstate b/internal/command/testdata/providers/state/terraform.tfstate index f3aee0870c..bca2d8510d 100644 --- a/internal/command/testdata/providers/state/terraform.tfstate +++ b/internal/command/testdata/providers/state/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "baz_instance", "name": "example", - "provider": "provider[\"registry.opentofu.org/opentofu/baz\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/baz\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json-sensitive/output.json b/internal/command/testdata/show-json-sensitive/output.json index 962a2e66bb..647a99d1ba 100644 --- a/internal/command/testdata/show-json-sensitive/output.json +++ b/internal/command/testdata/show-json-sensitive/output.json @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -37,7 +37,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -53,7 +53,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -85,7 +85,7 @@ "index": 0, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -108,7 +108,7 @@ "index": 1, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -131,7 +131,7 @@ "index": 2, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -166,7 +166,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" diff --git a/internal/command/testdata/show-json-state/basic/output.json b/internal/command/testdata/show-json-state/basic/output.json index 1922bbc444..47dc8611b8 100644 --- a/internal/command/testdata/show-json-state/basic/output.json +++ b/internal/command/testdata/show-json-state/basic/output.json @@ -10,7 +10,7 @@ "type": "test_instance", "name": "example", "index": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": null, @@ -24,7 +24,7 @@ "type": "test_instance", "name": "example", "index": 1, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": null, diff --git a/internal/command/testdata/show-json-state/basic/terraform.tfstate b/internal/command/testdata/show-json-state/basic/terraform.tfstate index 5f69a30ced..7477557af1 100644 --- a/internal/command/testdata/show-json-state/basic/terraform.tfstate +++ b/internal/command/testdata/show-json-state/basic/terraform.tfstate @@ -10,7 +10,7 @@ "type": "test_instance", "name": "example", "each": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "index_key": 0, diff --git a/internal/command/testdata/show-json-state/modules/output.json b/internal/command/testdata/show-json-state/modules/output.json index f74db8268e..4024aa284a 100644 --- a/internal/command/testdata/show-json-state/modules/output.json +++ b/internal/command/testdata/show-json-state/modules/output.json @@ -18,7 +18,7 @@ "mode": "managed", "type": "test_instance", "name": "example", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar-var", @@ -37,7 +37,7 @@ "type": "test_instance", "name": "example", "index": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo-var", diff --git a/internal/command/testdata/show-json-state/modules/terraform.tfstate b/internal/command/testdata/show-json-state/modules/terraform.tfstate index ac2ee88e59..74f1daf297 100644 --- a/internal/command/testdata/show-json-state/modules/terraform.tfstate +++ b/internal/command/testdata/show-json-state/modules/terraform.tfstate @@ -16,7 +16,7 @@ "type": "test_instance", "name": "example", "each": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "index_key": 0, @@ -33,7 +33,7 @@ "mode": "managed", "type": "test_instance", "name": "example", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json-state/sensitive-variables/output.json b/internal/command/testdata/show-json-state/sensitive-variables/output.json index 36bde87e23..c0e0423d85 100644 --- a/internal/command/testdata/show-json-state/sensitive-variables/output.json +++ b/internal/command/testdata/show-json-state/sensitive-variables/output.json @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "id": "621124146446964903", diff --git a/internal/command/testdata/show-json-state/sensitive-variables/terraform.tfstate b/internal/command/testdata/show-json-state/sensitive-variables/terraform.tfstate index 762f449144..dd132cc670 100644 --- a/internal/command/testdata/show-json-state/sensitive-variables/terraform.tfstate +++ b/internal/command/testdata/show-json-state/sensitive-variables/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/basic-create/output.json b/internal/command/testdata/show-json/basic-create/output.json index f9fabea869..a128533a6b 100644 --- a/internal/command/testdata/show-json/basic-create/output.json +++ b/internal/command/testdata/show-json/basic-create/output.json @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -34,7 +34,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -47,7 +47,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -76,7 +76,7 @@ "index": 0, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -98,7 +98,7 @@ "index": 1, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -120,7 +120,7 @@ "index": 2, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -154,7 +154,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" diff --git a/internal/command/testdata/show-json/basic-delete/output.json b/internal/command/testdata/show-json/basic-delete/output.json index 4195e51105..4d5f69dcc3 100644 --- a/internal/command/testdata/show-json/basic-delete/output.json +++ b/internal/command/testdata/show-json/basic-delete/output.json @@ -20,7 +20,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -36,7 +36,7 @@ "address": "test_instance.test", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -59,7 +59,7 @@ "address": "test_instance.test-delete", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test-delete", "action_reason": "delete_because_no_resource_config", "change": { @@ -107,7 +107,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "foo", "id": "placeholder" @@ -120,7 +120,7 @@ "mode": "managed", "type": "test_instance", "name": "test-delete", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "foo", "id": "placeholder" @@ -135,7 +135,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/basic-delete/terraform.tfstate b/internal/command/testdata/show-json/basic-delete/terraform.tfstate index 1c7e9a9b2a..01148b7561 100644 --- a/internal/command/testdata/show-json/basic-delete/terraform.tfstate +++ b/internal/command/testdata/show-json/basic-delete/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, @@ -24,7 +24,7 @@ "mode": "managed", "type": "test_instance", "name": "test-delete", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/basic-update/output.json b/internal/command/testdata/show-json/basic-update/output.json index 2539fa8222..0619b7efc8 100644 --- a/internal/command/testdata/show-json/basic-update/output.json +++ b/internal/command/testdata/show-json/basic-update/output.json @@ -20,7 +20,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -36,7 +36,7 @@ "address": "test_instance.test", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -86,7 +86,7 @@ "type": "test_instance", "name": "test", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "bar", "id": "placeholder" @@ -101,7 +101,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/basic-update/terraform.tfstate b/internal/command/testdata/show-json/basic-update/terraform.tfstate index fe8ae7cf5a..48e52b3fb4 100644 --- a/internal/command/testdata/show-json/basic-update/terraform.tfstate +++ b/internal/command/testdata/show-json/basic-update/terraform.tfstate @@ -14,7 +14,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/conditions/for-refresh.tfstate b/internal/command/testdata/show-json/conditions/for-refresh.tfstate index 08b09db508..e32f816d73 100644 --- a/internal/command/testdata/show-json/conditions/for-refresh.tfstate +++ b/internal/command/testdata/show-json/conditions/for-refresh.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "foo", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, @@ -24,7 +24,7 @@ "mode": "managed", "type": "test_instance", "name": "bar", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/conditions/output-refresh-only.json b/internal/command/testdata/show-json/conditions/output-refresh-only.json index 5ff2be27b5..9e13ab3cb1 100644 --- a/internal/command/testdata/show-json/conditions/output-refresh-only.json +++ b/internal/command/testdata/show-json/conditions/output-refresh-only.json @@ -49,7 +49,7 @@ "mode": "managed", "type": "test_instance", "name": "bar", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "ami-test", @@ -65,7 +65,7 @@ "mode": "managed", "type": "test_instance", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "ami-test", @@ -84,7 +84,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/conditions/output.json b/internal/command/testdata/show-json/conditions/output.json index e7449c712d..fa43118be2 100644 --- a/internal/command/testdata/show-json/conditions/output.json +++ b/internal/command/testdata/show-json/conditions/output.json @@ -22,7 +22,7 @@ "mode": "managed", "type": "test_instance", "name": "bar", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "ami-boop" @@ -34,7 +34,7 @@ "mode": "managed", "type": "test_instance", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "ami-test" @@ -50,7 +50,7 @@ "mode": "managed", "type": "test_instance", "name": "bar", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -71,7 +71,7 @@ "mode": "managed", "type": "test_instance", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -103,7 +103,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/drift/output.json b/internal/command/testdata/show-json/drift/output.json index 0b1856fb47..cde927e643 100644 --- a/internal/command/testdata/show-json/drift/output.json +++ b/internal/command/testdata/show-json/drift/output.json @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "no_refresh", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "should_refresh", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz", @@ -37,7 +37,7 @@ "address": "test_instance.should_refresh", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "should_refresh", "change": { "actions": [ @@ -62,7 +62,7 @@ "address": "test_instance.no_refresh", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "no_refresh", "change": { "actions": [ @@ -85,7 +85,7 @@ "address": "test_instance.should_refresh", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "should_refresh", "change": { "actions": [ @@ -116,7 +116,7 @@ "type": "test_instance", "name": "no_refresh", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "foo", "id": "placeholder" @@ -129,7 +129,7 @@ "type": "test_instance", "name": "should_refresh", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "refreshed", "id": "placeholder" @@ -144,7 +144,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/drift/terraform.tfstate b/internal/command/testdata/show-json/drift/terraform.tfstate index f12b6c20d3..94a0b40ffb 100644 --- a/internal/command/testdata/show-json/drift/terraform.tfstate +++ b/internal/command/testdata/show-json/drift/terraform.tfstate @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "no_refresh", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, @@ -23,7 +23,7 @@ "mode": "managed", "type": "test_instance", "name": "should_refresh", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/module-depends-on/output.json b/internal/command/testdata/show-json/module-depends-on/output.json index e9dcd59234..2679681b83 100644 --- a/internal/command/testdata/show-json/module-depends-on/output.json +++ b/internal/command/testdata/show-json/module-depends-on/output.json @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo-bar" @@ -25,7 +25,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -46,7 +46,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/modules/output.json b/internal/command/testdata/show-json/modules/output.json index 8d193acef5..40e0f7e7e4 100644 --- a/internal/command/testdata/show-json/modules/output.json +++ b/internal/command/testdata/show-json/modules/output.json @@ -17,7 +17,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar-var" @@ -35,7 +35,7 @@ "type": "test_instance", "name": "test", "index": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz" @@ -48,7 +48,7 @@ "type": "test_instance", "name": "test", "index": 1, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz" @@ -61,7 +61,7 @@ "type": "test_instance", "name": "test", "index": 2, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz" @@ -94,7 +94,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -115,7 +115,7 @@ "module_address": "module.module_test_foo", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "index": 0, "change": { @@ -138,7 +138,7 @@ "module_address": "module.module_test_foo", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "index": 1, "change": { @@ -161,7 +161,7 @@ "module_address": "module.module_test_foo", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "index": 2, "change": { @@ -294,12 +294,12 @@ "module.module_test_foo:test": { "module_address": "module.module_test_foo", "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" }, "module.module_test_bar:test": { "module_address": "module.module_test_bar", "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } } } diff --git a/internal/command/testdata/show-json/moved-drift/output.json b/internal/command/testdata/show-json/moved-drift/output.json index 9fd32a8fa4..1fd80e5e73 100644 --- a/internal/command/testdata/show-json/moved-drift/output.json +++ b/internal/command/testdata/show-json/moved-drift/output.json @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "no_refresh", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "should_refresh_with_move", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz", @@ -38,7 +38,7 @@ "mode": "managed", "type": "test_instance", "previous_address": "test_instance.should_refresh", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "should_refresh_with_move", "change": { "actions": [ @@ -63,7 +63,7 @@ "address": "test_instance.no_refresh", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "no_refresh", "change": { "actions": [ @@ -87,7 +87,7 @@ "mode": "managed", "type": "test_instance", "previous_address": "test_instance.should_refresh", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "should_refresh_with_move", "change": { "actions": [ @@ -118,7 +118,7 @@ "type": "test_instance", "name": "no_refresh", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "foo", "id": "placeholder" @@ -131,7 +131,7 @@ "type": "test_instance", "name": "should_refresh_with_move", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "refreshed", "id": "placeholder" @@ -146,7 +146,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/moved-drift/terraform.tfstate b/internal/command/testdata/show-json/moved-drift/terraform.tfstate index f12b6c20d3..94a0b40ffb 100644 --- a/internal/command/testdata/show-json/moved-drift/terraform.tfstate +++ b/internal/command/testdata/show-json/moved-drift/terraform.tfstate @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "no_refresh", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, @@ -23,7 +23,7 @@ "mode": "managed", "type": "test_instance", "name": "should_refresh", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/moved/output.json b/internal/command/testdata/show-json/moved/output.json index e83b6b9f8f..9b340d49f6 100644 --- a/internal/command/testdata/show-json/moved/output.json +++ b/internal/command/testdata/show-json/moved/output.json @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "baz", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz", @@ -25,7 +25,7 @@ "mode": "managed", "type": "test_instance", "previous_address": "test_instance.foo", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "baz", "change": { "actions": [ @@ -56,7 +56,7 @@ "type": "test_instance", "name": "baz", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "foo", "id": "placeholder" @@ -71,7 +71,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/moved/terraform.tfstate b/internal/command/testdata/show-json/moved/terraform.tfstate index 43cde9889f..8130d4c71d 100644 --- a/internal/command/testdata/show-json/moved/terraform.tfstate +++ b/internal/command/testdata/show-json/moved/terraform.tfstate @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "foo", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/multi-resource-update/output.json b/internal/command/testdata/show-json/multi-resource-update/output.json index 6e77bfd77e..0f6b26d130 100644 --- a/internal/command/testdata/show-json/multi-resource-update/output.json +++ b/internal/command/testdata/show-json/multi-resource-update/output.json @@ -22,7 +22,7 @@ "type": "test_instance", "name": "test", "index": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -36,7 +36,7 @@ "type": "test_instance", "name": "test", "index": 1, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -54,7 +54,7 @@ "name": "test", "index": 0, "previous_address": "test_instance.test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "no-op" @@ -78,7 +78,7 @@ "type": "test_instance", "name": "test", "index": 1, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -126,7 +126,7 @@ "type": "test_instance", "name": "test", "index": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar", @@ -142,7 +142,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/multi-resource-update/terraform.tfstate b/internal/command/testdata/show-json/multi-resource-update/terraform.tfstate index fe8ae7cf5a..48e52b3fb4 100644 --- a/internal/command/testdata/show-json/multi-resource-update/terraform.tfstate +++ b/internal/command/testdata/show-json/multi-resource-update/terraform.tfstate @@ -14,7 +14,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/nested-modules/output.json b/internal/command/testdata/show-json/nested-modules/output.json index d3355f7940..43d9dae9ce 100644 --- a/internal/command/testdata/show-json/nested-modules/output.json +++ b/internal/command/testdata/show-json/nested-modules/output.json @@ -13,7 +13,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar-var" @@ -35,7 +35,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": ["create"], "before": null, @@ -55,7 +55,7 @@ "module.my_module.module.more:test": { "module_address": "module.my_module.module.more", "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/plan-error/output.json b/internal/command/testdata/show-json/plan-error/output.json index c2f3567f65..50167b5e2c 100644 --- a/internal/command/testdata/show-json/plan-error/output.json +++ b/internal/command/testdata/show-json/plan-error/output.json @@ -7,7 +7,7 @@ "configuration": { "provider_config": { "test": { - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "name": "test" } }, diff --git a/internal/command/testdata/show-json/provider-aliasing-conflict/child/main.tf b/internal/command/testdata/show-json/provider-aliasing-conflict/child/main.tf index 1ca52880dd..2479df3359 100644 --- a/internal/command/testdata/show-json/provider-aliasing-conflict/child/main.tf +++ b/internal/command/testdata/show-json/provider-aliasing-conflict/child/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu2/test" + source = "hashicorp2/test" } } } diff --git a/internal/command/testdata/show-json/provider-aliasing-conflict/output.json b/internal/command/testdata/show-json/provider-aliasing-conflict/output.json index 1801974b6b..18a70b31f5 100644 --- a/internal/command/testdata/show-json/provider-aliasing-conflict/output.json +++ b/internal/command/testdata/show-json/provider-aliasing-conflict/output.json @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo" @@ -25,7 +25,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu2/test", + "provider_name": "registry.opentofu.org/hashicorp2/test", "schema_version": 0, "values": { "ami": "bar" @@ -44,7 +44,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -66,7 +66,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu2/test", + "provider_name": "registry.opentofu.org/hashicorp2/test", "change": { "actions": [ "create" @@ -87,7 +87,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" @@ -97,7 +97,7 @@ "module.child:test": { "module_address": "module.child", "name": "test", - "full_name": "registry.opentofu.org/opentofu2/test" + "full_name": "registry.opentofu.org/hashicorp2/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/provider-aliasing-default/child/main.tf b/internal/command/testdata/show-json/provider-aliasing-default/child/main.tf index e65ca8de53..b865e3e14a 100644 --- a/internal/command/testdata/show-json/provider-aliasing-default/child/main.tf +++ b/internal/command/testdata/show-json/provider-aliasing-default/child/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/command/testdata/show-json/provider-aliasing-default/child/nested/main.tf b/internal/command/testdata/show-json/provider-aliasing-default/child/nested/main.tf index 9eb3d0ee47..1590c5cea3 100644 --- a/internal/command/testdata/show-json/provider-aliasing-default/child/nested/main.tf +++ b/internal/command/testdata/show-json/provider-aliasing-default/child/nested/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/command/testdata/show-json/provider-aliasing-default/output.json b/internal/command/testdata/show-json/provider-aliasing-default/output.json index ac1e609b3a..2172f2a7d1 100644 --- a/internal/command/testdata/show-json/provider-aliasing-default/output.json +++ b/internal/command/testdata/show-json/provider-aliasing-default/output.json @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo" @@ -25,7 +25,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -42,7 +42,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "qux" @@ -59,7 +59,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "baz" @@ -80,7 +80,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -102,7 +102,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -124,7 +124,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -146,7 +146,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -167,7 +167,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" @@ -176,7 +176,7 @@ }, "test.backup": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "alias": "backup", "expressions": { "region": { diff --git a/internal/command/testdata/show-json/provider-aliasing/child/main.tf b/internal/command/testdata/show-json/provider-aliasing/child/main.tf index 6309b19bdb..42555752cf 100644 --- a/internal/command/testdata/show-json/provider-aliasing/child/main.tf +++ b/internal/command/testdata/show-json/provider-aliasing/child/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [test, test.second] } } diff --git a/internal/command/testdata/show-json/provider-aliasing/child/nested/main.tf b/internal/command/testdata/show-json/provider-aliasing/child/nested/main.tf index 9f22a814c7..ff1fe9a1af 100644 --- a/internal/command/testdata/show-json/provider-aliasing/child/nested/main.tf +++ b/internal/command/testdata/show-json/provider-aliasing/child/nested/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [test, test.alt] } } diff --git a/internal/command/testdata/show-json/provider-aliasing/output.json b/internal/command/testdata/show-json/provider-aliasing/output.json index a7be365c89..a246e12139 100755 --- a/internal/command/testdata/show-json/provider-aliasing/output.json +++ b/internal/command/testdata/show-json/provider-aliasing/output.json @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo" @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "test_backup", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "foo-backup" @@ -37,7 +37,7 @@ "mode": "managed", "type": "test_instance", "name": "test_primary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "primary" @@ -49,7 +49,7 @@ "mode": "managed", "type": "test_instance", "name": "test_secondary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "secondary" @@ -66,7 +66,7 @@ "mode": "managed", "type": "test_instance", "name": "test_alternate", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "secondary" @@ -78,7 +78,7 @@ "mode": "managed", "type": "test_instance", "name": "test_main", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "main" @@ -97,7 +97,7 @@ "mode": "managed", "type": "test_instance", "name": "test_primary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "primary" @@ -109,7 +109,7 @@ "mode": "managed", "type": "test_instance", "name": "test_secondary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "secondary" @@ -126,7 +126,7 @@ "mode": "managed", "type": "test_instance", "name": "test_alternate", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "secondary" @@ -138,7 +138,7 @@ "mode": "managed", "type": "test_instance", "name": "test_main", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "main" @@ -159,7 +159,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -180,7 +180,7 @@ "mode": "managed", "type": "test_instance", "name": "test_backup", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -202,7 +202,7 @@ "mode": "managed", "type": "test_instance", "name": "test_primary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -224,7 +224,7 @@ "mode": "managed", "type": "test_instance", "name": "test_secondary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -246,7 +246,7 @@ "mode": "managed", "type": "test_instance", "name": "test_primary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -268,7 +268,7 @@ "mode": "managed", "type": "test_instance", "name": "test_secondary", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -290,7 +290,7 @@ "mode": "managed", "type": "test_instance", "name": "test_alternate", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -312,7 +312,7 @@ "mode": "managed", "type": "test_instance", "name": "test_main", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -334,7 +334,7 @@ "mode": "managed", "type": "test_instance", "name": "test_alternate", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -356,7 +356,7 @@ "mode": "managed", "type": "test_instance", "name": "test_main", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "change": { "actions": [ "create" @@ -377,7 +377,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" @@ -386,7 +386,7 @@ }, "test.backup": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "alias": "backup", "expressions": { "region": { diff --git a/internal/command/testdata/show-json/provider-version-no-config/main.tf b/internal/command/testdata/show-json/provider-version-no-config/main.tf index 30f34719b2..c5df9bf79c 100644 --- a/internal/command/testdata/show-json/provider-version-no-config/main.tf +++ b/internal/command/testdata/show-json/provider-version-no-config/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" version = ">= 1.2.3" } } diff --git a/internal/command/testdata/show-json/provider-version-no-config/output.json b/internal/command/testdata/show-json/provider-version-no-config/output.json index 603152cdd5..79a8e8ba47 100644 --- a/internal/command/testdata/show-json/provider-version-no-config/output.json +++ b/internal/command/testdata/show-json/provider-version-no-config/output.json @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -34,7 +34,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -47,7 +47,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -76,7 +76,7 @@ "index": 0, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -98,7 +98,7 @@ "index": 1, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -120,7 +120,7 @@ "index": 2, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -154,7 +154,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "version_constraint": ">= 1.2.3" } }, diff --git a/internal/command/testdata/show-json/provider-version/main.tf b/internal/command/testdata/show-json/provider-version/main.tf index 111cf1fd7b..b6d3cb9745 100644 --- a/internal/command/testdata/show-json/provider-version/main.tf +++ b/internal/command/testdata/show-json/provider-version/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" version = ">= 1.2.3" } } diff --git a/internal/command/testdata/show-json/provider-version/output.json b/internal/command/testdata/show-json/provider-version/output.json index 957c4da679..1db796b6a8 100644 --- a/internal/command/testdata/show-json/provider-version/output.json +++ b/internal/command/testdata/show-json/provider-version/output.json @@ -21,7 +21,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -34,7 +34,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -47,7 +47,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "bar" @@ -76,7 +76,7 @@ "index": 0, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -98,7 +98,7 @@ "index": 1, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -120,7 +120,7 @@ "index": 2, "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -154,7 +154,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test", + "full_name": "registry.opentofu.org/hashicorp/test", "expressions": { "region": { "constant_value": "somewhere" diff --git a/internal/command/testdata/show-json/requires-replace/output.json b/internal/command/testdata/show-json/requires-replace/output.json index 3d953203a0..47ea143b70 100644 --- a/internal/command/testdata/show-json/requires-replace/output.json +++ b/internal/command/testdata/show-json/requires-replace/output.json @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "force-replace" @@ -23,7 +23,7 @@ "address": "test_instance.test", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -58,7 +58,7 @@ "type": "test_instance", "name": "test", "schema_version": 0, - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "values": { "ami": "bar", "id": "placeholder" @@ -73,7 +73,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/show-json/requires-replace/terraform.tfstate b/internal/command/testdata/show-json/requires-replace/terraform.tfstate index c7a368a663..02df6f1758 100644 --- a/internal/command/testdata/show-json/requires-replace/terraform.tfstate +++ b/internal/command/testdata/show-json/requires-replace/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "schema_version": 0, diff --git a/internal/command/testdata/show-json/sensitive-values/output.json b/internal/command/testdata/show-json/sensitive-values/output.json index 1f5ef00ab7..bba81db04f 100644 --- a/internal/command/testdata/show-json/sensitive-values/output.json +++ b/internal/command/testdata/show-json/sensitive-values/output.json @@ -20,7 +20,7 @@ "mode": "managed", "type": "test_instance", "name": "test", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0, "values": { "ami": "boop" @@ -37,7 +37,7 @@ "address": "test_instance.test", "mode": "managed", "type": "test_instance", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "name": "test", "change": { "actions": [ @@ -86,7 +86,7 @@ "provider_config": { "test": { "name": "test", - "full_name": "registry.opentofu.org/opentofu/test" + "full_name": "registry.opentofu.org/hashicorp/test" } }, "root_module": { diff --git a/internal/command/testdata/state-list-nested-modules/terraform.tfstate b/internal/command/testdata/state-list-nested-modules/terraform.tfstate index 209f15514e..4c08afdcf4 100644 --- a/internal/command/testdata/state-list-nested-modules/terraform.tfstate +++ b/internal/command/testdata/state-list-nested-modules/terraform.tfstate @@ -8,7 +8,7 @@ "mode": "managed", "type": "test_instance", "name": "root", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { @@ -22,7 +22,7 @@ "mode": "managed", "type": "test_instance", "name": "nest", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { @@ -36,7 +36,7 @@ "mode": "managed", "type": "test_instance", "name": "subnest", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { @@ -50,7 +50,7 @@ "mode": "managed", "type": "test_instance", "name": "child", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { @@ -64,7 +64,7 @@ "mode": "managed", "type": "test_instance", "name": "count", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { @@ -78,7 +78,7 @@ "mode": "managed", "type": "test_instance", "name": "count", - "provider": "provider[\"registry.opentofu.org/opentofu/test\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/test\"]", "instances": [ { "attributes": { diff --git a/internal/command/testdata/test/missing-provider-in-run-block/main.tf b/internal/command/testdata/test/missing-provider-in-run-block/main.tf index 3bf823fde1..ded2238470 100644 --- a/internal/command/testdata/test/missing-provider-in-run-block/main.tf +++ b/internal/command/testdata/test/missing-provider-in-run-block/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [ test.secondary ] } } diff --git a/internal/command/testdata/test/missing-provider-in-test-module/setup/main.tf b/internal/command/testdata/test/missing-provider-in-test-module/setup/main.tf index 3bf823fde1..ded2238470 100644 --- a/internal/command/testdata/test/missing-provider-in-test-module/setup/main.tf +++ b/internal/command/testdata/test/missing-provider-in-test-module/setup/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [ test.secondary ] } } diff --git a/internal/command/testdata/test/missing-provider/main.tf b/internal/command/testdata/test/missing-provider/main.tf index 3bf823fde1..ded2238470 100644 --- a/internal/command/testdata/test/missing-provider/main.tf +++ b/internal/command/testdata/test/missing-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [ test.secondary ] } } diff --git a/internal/command/testdata/test/no_providers_in_main/main.tf b/internal/command/testdata/test/no_providers_in_main/main.tf index 7ff25284c6..fe07905e58 100644 --- a/internal/command/testdata/test/no_providers_in_main/main.tf +++ b/internal/command/testdata/test/no_providers_in_main/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [test.primary, test.secondary] } } diff --git a/internal/command/untaint_test.go b/internal/command/untaint_test.go index 8b89e7d6ef..7e5607e181 100644 --- a/internal/command/untaint_test.go +++ b/internal/command/untaint_test.go @@ -54,7 +54,7 @@ func TestUntaint(t *testing.T) { expected := strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) testStateOutput(t, statePath, expected) } @@ -151,14 +151,14 @@ func TestUntaint_backup(t *testing.T) { testStateOutput(t, DefaultStateFilename+".backup", strings.TrimSpace(` test_instance.foo: (tainted) ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) // State is untainted testStateOutput(t, DefaultStateFilename, strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } @@ -210,7 +210,7 @@ func TestUntaint_backupDisable(t *testing.T) { testStateOutput(t, DefaultStateFilename, strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } @@ -276,7 +276,7 @@ func TestUntaint_defaultState(t *testing.T) { testStateOutput(t, DefaultStateFilename, strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } @@ -323,7 +323,7 @@ func TestUntaint_defaultWorkspaceState(t *testing.T) { testStateOutput(t, path, strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } @@ -461,12 +461,12 @@ func TestUntaint_stateOut(t *testing.T) { testStateOutput(t, DefaultStateFilename, strings.TrimSpace(` test_instance.foo: (tainted) ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) testStateOutput(t, "foo", strings.TrimSpace(` test_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } @@ -525,11 +525,11 @@ func TestUntaint_module(t *testing.T) { testStateOutput(t, statePath, strings.TrimSpace(` test_instance.foo: (tainted) ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] module.child: test_instance.blah: ID = bar - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `)) } diff --git a/internal/command/version_test.go b/internal/command/version_test.go index 4411edf452..67e8bc2c23 100644 --- a/internal/command/version_test.go +++ b/internal/command/version_test.go @@ -57,7 +57,7 @@ func TestVersion(t *testing.T) { } actual := strings.TrimSpace(ui.OutputWriter.String()) - expected := "OpenTofu v4.5.6-foo\non aros_riscv64\n+ provider registry.opentofu.org/opentofu/test1 v7.8.9-beta.2\n+ provider registry.opentofu.org/opentofu/test2 v1.2.3" + expected := "OpenTofu v4.5.6-foo\non aros_riscv64\n+ provider registry.opentofu.org/hashicorp/test1 v7.8.9-beta.2\n+ provider registry.opentofu.org/hashicorp/test2 v1.2.3" if actual != expected { t.Fatalf("wrong output\ngot:\n%s\nwant:\n%s", actual, expected) } @@ -160,8 +160,8 @@ func TestVersion_json(t *testing.T) { "terraform_version": "4.5.6-foo", "platform": "aros_riscv64", "provider_selections": { - "registry.opentofu.org/opentofu/test1": "7.8.9-beta.2", - "registry.opentofu.org/opentofu/test2": "1.2.3" + "registry.opentofu.org/hashicorp/test1": "7.8.9-beta.2", + "registry.opentofu.org/hashicorp/test2": "1.2.3" } } `) diff --git a/internal/command/views/show_test.go b/internal/command/views/show_test.go index 53318d293b..31e4ca9e30 100644 --- a/internal/command/views/show_test.go +++ b/internal/command/views/show_test.go @@ -53,7 +53,7 @@ func TestShowHuman(t *testing.T) { Redacted: true, Mode: plans.NormalMode, Qualities: []plans.Quality{}, - RunHeader: "[reset][yellow]To view this run in a browser, visit:\nhttps://app.example.com/app/example_org/example_workspace/runs/run-run-bugsBUGSbugsBUGS[reset]", + RunHeader: "[reset][yellow]To view this run in a browser, visit:\nhttps://app.terraform.io/app/example_org/example_workspace/runs/run-run-bugsBUGSbugsBUGS[reset]", RunFooter: "[reset][green]Run status: planned and saved (confirmable)[reset]\n[green]Workspace is unlocked[reset]", }, nil, @@ -139,7 +139,7 @@ func TestShowJSON(t *testing.T) { Redacted: false, Mode: plans.NormalMode, Qualities: []plans.Quality{}, - RunHeader: "[reset][yellow]To view this run in a browser, visit:\nhttps://app.example.com/app/example_org/example_workspace/runs/run-run-bugsBUGSbugsBUGS[reset]", + RunHeader: "[reset][yellow]To view this run in a browser, visit:\nhttps://app.terraform.io/app/example_org/example_workspace/runs/run-run-bugsBUGSbugsBUGS[reset]", RunFooter: "[reset][green]Run status: planned and saved (confirmable)[reset]\n[green]Workspace is unlocked[reset]", }, nil, diff --git a/internal/command/views/test_test.go b/internal/command/views/test_test.go index 45e21ef183..de159f8fd7 100644 --- a/internal/command/views/test_test.go +++ b/internal/command/views/test_test.go @@ -568,7 +568,7 @@ something bad happened during this test Module: addrs.RootModule, Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, }, @@ -592,7 +592,7 @@ something bad happened during this test Providers: map[addrs.Provider]providers.ProviderSchema{ addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }: { ResourceTypes: map[string]providers.Schema{ @@ -654,7 +654,7 @@ Plan: 1 to add, 0 to change, 0 to destroy. Module: addrs.RootModule, Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, }) @@ -663,7 +663,7 @@ Plan: 1 to add, 0 to change, 0 to destroy. Providers: map[addrs.Provider]providers.ProviderSchema{ addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }: { ResourceTypes: map[string]providers.Schema{ @@ -2537,7 +2537,7 @@ func TestTestJSON_Run(t *testing.T) { Module: addrs.RootModule, Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, }, @@ -2565,7 +2565,7 @@ func TestTestJSON_Run(t *testing.T) { Providers: map[addrs.Provider]providers.ProviderSchema{ addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }: { ResourceTypes: map[string]providers.Schema{ @@ -2615,7 +2615,7 @@ func TestTestJSON_Run(t *testing.T) { "address": "test_resource.creating", "mode": "managed", "name": "creating", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0.0, "sensitive_values": map[string]interface{}{}, "type": "test_resource", @@ -2641,7 +2641,7 @@ func TestTestJSON_Run(t *testing.T) { }, "mode": "managed", "name": "creating", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "type": "test_resource", }, }, @@ -2678,7 +2678,7 @@ func TestTestJSON_Run(t *testing.T) { Module: addrs.RootModule, Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, }) @@ -2689,7 +2689,7 @@ func TestTestJSON_Run(t *testing.T) { Providers: map[addrs.Provider]providers.ProviderSchema{ addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }: { ResourceTypes: map[string]providers.Schema{ @@ -2735,7 +2735,7 @@ func TestTestJSON_Run(t *testing.T) { "address": "test_resource.creating", "mode": "managed", "name": "creating", - "provider_name": "registry.opentofu.org/opentofu/test", + "provider_name": "registry.opentofu.org/hashicorp/test", "schema_version": 0.0, "sensitive_values": map[string]interface{}{}, "type": "test_resource", diff --git a/internal/command/views/testdata/plans/redacted-plan.json b/internal/command/views/testdata/plans/redacted-plan.json index aaeebd3faa..3e3b067798 100644 --- a/internal/command/views/testdata/plans/redacted-plan.json +++ b/internal/command/views/testdata/plans/redacted-plan.json @@ -7,7 +7,7 @@ "mode": "managed", "type": "null_resource", "name": "foo", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "change": { "actions": [ "create" @@ -27,7 +27,7 @@ "relevant_attributes": [], "output_changes": {}, "provider_schemas": { - "registry.opentofu.org/opentofu/null": { + "registry.opentofu.org/hashicorp/null": { "provider": { "version": 0, "block": { diff --git a/internal/configs/config_test.go b/internal/configs/config_test.go index 0af7d2f23c..fcadc2a4fb 100644 --- a/internal/configs/config_test.go +++ b/internal/configs/config_test.go @@ -137,7 +137,7 @@ func TestConfigProviderRequirements(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) happycloudProvider := addrs.NewProvider( svchost.Hostname("tf.example.com"), @@ -180,7 +180,7 @@ func TestConfigProviderRequirementsInclTests(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) nullProvider := addrs.NewDefaultProvider("null") randomProvider := addrs.NewDefaultProvider("random") @@ -222,7 +222,7 @@ func TestConfigProviderRequirementsShallow(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) nullProvider := addrs.NewDefaultProvider("null") randomProvider := addrs.NewDefaultProvider("random") @@ -258,7 +258,7 @@ func TestConfigProviderRequirementsShallowInclTests(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) impliedProvider := addrs.NewDefaultProvider("implied") terraformProvider := addrs.NewBuiltInProvider("terraform") @@ -289,7 +289,7 @@ func TestConfigProviderRequirementsByModule(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) happycloudProvider := addrs.NewProvider( svchost.Hostname("tf.example.com"), @@ -361,7 +361,7 @@ func TestConfigProviderRequirementsByModuleInclTests(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) nullProvider := addrs.NewDefaultProvider("null") randomProvider := addrs.NewDefaultProvider("random") @@ -421,7 +421,7 @@ func TestVerifyDependencySelections(t *testing.T) { tlsProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "tls", + "hashicorp", "tls", ) happycloudProvider := addrs.NewProvider( svchost.Hostname("tf.example.com"), @@ -442,12 +442,12 @@ func TestVerifyDependencySelections(t *testing.T) { // Intentionally blank }, []string{ - `provider registry.opentofu.org/opentofu/configured: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/grandchild: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/implied: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/null: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/random: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/tls: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/configured: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/grandchild: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/implied: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/null: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/random: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/tls: required by this configuration but no version is selected`, `provider tf.example.com/awesomecorp/happycloud: required by this configuration but no version is selected`, }, }, @@ -474,7 +474,7 @@ func TestVerifyDependencySelections(t *testing.T) { locks.SetProvider(happycloudProvider, getproviders.MustParseVersion("0.0.1"), nil, nil) }, []string{ - `provider registry.opentofu.org/opentofu/null: locked version selection 3.0.0 doesn't match the updated version constraints "~> 2.0.0, 2.0.1"`, + `provider registry.opentofu.org/hashicorp/null: locked version selection 3.0.0 doesn't match the updated version constraints "~> 2.0.0, 2.0.1"`, }, }, "null provider lock changed": { @@ -492,7 +492,7 @@ func TestVerifyDependencySelections(t *testing.T) { locks.SetProvider(happycloudProvider, getproviders.MustParseVersion("0.0.1"), nil, nil) }, []string{ - `provider registry.opentofu.org/opentofu/null: version constraints "~> 2.0.0, 2.0.1" don't match the locked version selection 3.0.0`, + `provider registry.opentofu.org/hashicorp/null: version constraints "~> 2.0.0, 2.0.1" don't match the locked version selection 3.0.0`, }, }, "overridden provider": { @@ -501,12 +501,12 @@ func TestVerifyDependencySelections(t *testing.T) { }, []string{ // We still catch all of the other ones, because only happycloud was overridden - `provider registry.opentofu.org/opentofu/configured: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/grandchild: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/implied: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/null: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/random: required by this configuration but no version is selected`, - `provider registry.opentofu.org/opentofu/tls: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/configured: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/grandchild: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/implied: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/null: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/random: required by this configuration but no version is selected`, + `provider registry.opentofu.org/hashicorp/tls: required by this configuration but no version is selected`, }, }, } diff --git a/internal/configs/configload/testdata/add-version-constraint/.terraform/modules/modules.json b/internal/configs/configload/testdata/add-version-constraint/.terraform/modules/modules.json index 067a94068d..c02f40016b 100644 --- a/internal/configs/configload/testdata/add-version-constraint/.terraform/modules/modules.json +++ b/internal/configs/configload/testdata/add-version-constraint/.terraform/modules/modules.json @@ -7,7 +7,7 @@ }, { "Key": "child", - "Source": "opentofu/module-installer-acctest/aws", + "Source": "hashicorp/module-installer-acctest/aws", "Dir": "testdata/add-version-constraint/.terraform/modules/child" } ] diff --git a/internal/configs/configload/testdata/add-version-constraint/add-version-constraint.tf b/internal/configs/configload/testdata/add-version-constraint/add-version-constraint.tf index a6ab0f1e5f..2d407a4d61 100644 --- a/internal/configs/configload/testdata/add-version-constraint/add-version-constraint.tf +++ b/internal/configs/configload/testdata/add-version-constraint/add-version-constraint.tf @@ -5,6 +5,6 @@ # registry does not need to be accessed when this test is successful. module "child" { - source = "opentofu/module-installer-acctest/aws" + source = "hashicorp/module-installer-acctest/aws" version = "0.0.1" } diff --git a/internal/configs/module_call_test.go b/internal/configs/module_call_test.go index 592b148127..c16f380e77 100644 --- a/internal/configs/module_call_test.go +++ b/internal/configs/module_call_test.go @@ -50,17 +50,17 @@ func TestLoadModuleCall(t *testing.T) { SourceAddr: addrs.ModuleSourceRegistry{ Package: addrs.ModuleRegistryPackage{ Host: addrs.DefaultModuleRegistryHost, - Namespace: "opentofu", + Namespace: "hashicorp", Name: "bar", TargetSystem: "aws", }, }, - SourceAddrRaw: "opentofu/bar/aws", + SourceAddrRaw: "hashicorp/bar/aws", SourceSet: true, SourceAddrRange: hcl.Range{ Filename: "module-calls.tf", Start: hcl.Pos{Line: 8, Column: 12, Byte: 113}, - End: hcl.Pos{Line: 8, Column: 30, Byte: 131}, + End: hcl.Pos{Line: 8, Column: 31, Byte: 132}, }, DeclRange: hcl.Range{ Filename: "module-calls.tf", @@ -77,8 +77,8 @@ func TestLoadModuleCall(t *testing.T) { SourceSet: true, SourceAddrRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 15, Column: 12, Byte: 192}, - End: hcl.Pos{Line: 15, Column: 39, Byte: 219}, + Start: hcl.Pos{Line: 15, Column: 12, Byte: 193}, + End: hcl.Pos{Line: 15, Column: 39, Byte: 220}, }, DependsOn: []hcl.Traversal{ { @@ -86,16 +86,16 @@ func TestLoadModuleCall(t *testing.T) { Name: "module", SrcRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 23, Column: 5, Byte: 294}, - End: hcl.Pos{Line: 23, Column: 11, Byte: 300}, + Start: hcl.Pos{Line: 23, Column: 5, Byte: 295}, + End: hcl.Pos{Line: 23, Column: 11, Byte: 301}, }, }, hcl.TraverseAttr{ Name: "bar", SrcRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 23, Column: 11, Byte: 300}, - End: hcl.Pos{Line: 23, Column: 15, Byte: 304}, + Start: hcl.Pos{Line: 23, Column: 11, Byte: 301}, + End: hcl.Pos{Line: 23, Column: 15, Byte: 305}, }, }, }, @@ -106,30 +106,30 @@ func TestLoadModuleCall(t *testing.T) { Name: "aws", NameRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 27, Column: 5, Byte: 331}, - End: hcl.Pos{Line: 27, Column: 8, Byte: 334}, + Start: hcl.Pos{Line: 27, Column: 5, Byte: 332}, + End: hcl.Pos{Line: 27, Column: 8, Byte: 335}, }, }, InParent: &ProviderConfigRef{ Name: "aws", NameRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 27, Column: 11, Byte: 337}, - End: hcl.Pos{Line: 27, Column: 14, Byte: 340}, + Start: hcl.Pos{Line: 27, Column: 11, Byte: 338}, + End: hcl.Pos{Line: 27, Column: 14, Byte: 341}, }, Alias: "foo", AliasRange: &hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 27, Column: 14, Byte: 340}, - End: hcl.Pos{Line: 27, Column: 18, Byte: 344}, + Start: hcl.Pos{Line: 27, Column: 14, Byte: 341}, + End: hcl.Pos{Line: 27, Column: 18, Byte: 345}, }, }, }, }, DeclRange: hcl.Range{ Filename: "module-calls.tf", - Start: hcl.Pos{Line: 14, Column: 1, Byte: 166}, - End: hcl.Pos{Line: 14, Column: 13, Byte: 178}, + Start: hcl.Pos{Line: 14, Column: 1, Byte: 167}, + End: hcl.Pos{Line: 14, Column: 13, Byte: 179}, }, }, } diff --git a/internal/configs/testdata/config-diagnostics/empty-configs/main.tf b/internal/configs/testdata/config-diagnostics/empty-configs/main.tf index 1a12873eba..c0edba2753 100644 --- a/internal/configs/testdata/config-diagnostics/empty-configs/main.tf +++ b/internal/configs/testdata/config-diagnostics/empty-configs/main.tf @@ -1,10 +1,10 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" } baz = { - source = "opentofu/baz" + source = "hashicorp/baz" } } } diff --git a/internal/configs/testdata/config-diagnostics/empty-configs/mod/main.tf b/internal/configs/testdata/config-diagnostics/empty-configs/mod/main.tf index 542edb5de2..50995ca0bd 100644 --- a/internal/configs/testdata/config-diagnostics/empty-configs/mod/main.tf +++ b/internal/configs/testdata/config-diagnostics/empty-configs/mod/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" configuration_aliases = [ foo.bar ] } } diff --git a/internal/configs/testdata/config-diagnostics/incorrect-type/errors b/internal/configs/testdata/config-diagnostics/incorrect-type/errors index 8aee3955c0..97a31fe526 100644 --- a/internal/configs/testdata/config-diagnostics/incorrect-type/errors +++ b/internal/configs/testdata/config-diagnostics/incorrect-type/errors @@ -1 +1 @@ -incorrect-type/main.tf:15,11-14: Provider type mismatch; The local name "foo" in the root module represents provider "opentofu/foo", but "foo" in module.mod represents "example.com/vendor/foo". +incorrect-type/main.tf:15,11-14: Provider type mismatch; The local name "foo" in the root module represents provider "hashicorp/foo", but "foo" in module.mod represents "example.com/vendor/foo". diff --git a/internal/configs/testdata/config-diagnostics/incorrect-type/main.tf b/internal/configs/testdata/config-diagnostics/incorrect-type/main.tf index 7e1d4c136f..074cc8422d 100644 --- a/internal/configs/testdata/config-diagnostics/incorrect-type/main.tf +++ b/internal/configs/testdata/config-diagnostics/incorrect-type/main.tf @@ -1,10 +1,10 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" } baz = { - source = "opentofu/baz" + source = "hashicorp/baz" } } } diff --git a/internal/configs/testdata/config-diagnostics/incorrect-type/warnings b/internal/configs/testdata/config-diagnostics/incorrect-type/warnings index b68558298d..040ad4f4dd 100644 --- a/internal/configs/testdata/config-diagnostics/incorrect-type/warnings +++ b/internal/configs/testdata/config-diagnostics/incorrect-type/warnings @@ -1 +1 @@ -incorrect-type/main.tf:16,5-8: Reference to undefined provider; There is no explicit declaration for local provider name "baz" in module.mod, so OpenTofu is assuming you mean to pass a configuration for "opentofu/baz". +incorrect-type/main.tf:16,5-8: Reference to undefined provider; There is no explicit declaration for local provider name "baz" in module.mod, so OpenTofu is assuming you mean to pass a configuration for "hashicorp/baz". diff --git a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod/main.tf b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod/main.tf index 5e92979d33..e0d142d553 100644 --- a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod/main.tf +++ b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod2/main.tf b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod2/main.tf index 3c61a7ebe6..0b7361691d 100644 --- a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod2/main.tf +++ b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/mod2/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [test.foo] } } diff --git a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/warnings b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/warnings index f41673b7f6..692e14ecf6 100644 --- a/internal/configs/testdata/config-diagnostics/pass-inherited-provider/warnings +++ b/internal/configs/testdata/config-diagnostics/pass-inherited-provider/warnings @@ -1 +1 @@ -pass-inherited-provider/main.tf:5,1-13: Missing required provider configuration; The configuration for module.mod expects to inherit a configuration for provider opentofu/test with local name "test", but the root module doesn't pass a configuration under that name. +pass-inherited-provider/main.tf:5,1-13: Missing required provider configuration; The configuration for module.mod expects to inherit a configuration for provider hashicorp/test with local name "test", but the root module doesn't pass a configuration under that name. diff --git a/internal/configs/testdata/config-diagnostics/required-alias/errors b/internal/configs/testdata/config-diagnostics/required-alias/errors index 6b1f7ea4c8..b010244325 100644 --- a/internal/configs/testdata/config-diagnostics/required-alias/errors +++ b/internal/configs/testdata/config-diagnostics/required-alias/errors @@ -1 +1 @@ -required-alias/main.tf:1,1-13: Missing required provider configuration; The child module requires an additional configuration for provider opentofu/foo, with the local name "foo.bar". +required-alias/main.tf:1,1-13: Missing required provider configuration; The child module requires an additional configuration for provider hashicorp/foo, with the local name "foo.bar". diff --git a/internal/configs/testdata/config-diagnostics/required-alias/mod/main.tf b/internal/configs/testdata/config-diagnostics/required-alias/mod/main.tf index 41fdc52840..0f2a52168c 100644 --- a/internal/configs/testdata/config-diagnostics/required-alias/mod/main.tf +++ b/internal/configs/testdata/config-diagnostics/required-alias/mod/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" version = "1.0.0" configuration_aliases = [ foo.bar ] } diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/errors b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/errors index 32d5bf2f2c..d860e2e465 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/errors +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/errors @@ -1,3 +1,3 @@ -testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:2,1-15: Provider type mismatch; The provider "foo" in main.tftest.hcl represents provider "registry.opentofu.org/opentofu/bar", but "foo" in the root module represents "registry.opentofu.org/opentofu/foo".\n\nThis means the provider definition for "foo" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. -testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:4,1-15: Provider type mismatch; The provider "foo.bar" in main.tftest.hcl represents provider "registry.opentofu.org/opentofu/bar", but "foo.bar" in the root module represents "registry.opentofu.org/opentofu/foo".\n\nThis means the provider definition for "foo.bar" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. -testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:8,1-15: Provider type mismatch; The provider "bar" in main.tftest.hcl represents provider "registry.opentofu.org/opentofu/foo", but "bar" in the root module represents "registry.opentofu.org/opentofu/bar".\n\nThis means the provider definition for "bar" within main.tftest.hcl has been referenced by multiple run blocks and assigned to different provider types. \ No newline at end of file +testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:2,1-15: Provider type mismatch; The provider "foo" in main.tftest.hcl represents provider "registry.opentofu.org/hashicorp/bar", but "foo" in the root module represents "registry.opentofu.org/hashicorp/foo".\n\nThis means the provider definition for "foo" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. +testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:4,1-15: Provider type mismatch; The provider "foo.bar" in main.tftest.hcl represents provider "registry.opentofu.org/hashicorp/bar", but "foo.bar" in the root module represents "registry.opentofu.org/hashicorp/foo".\n\nThis means the provider definition for "foo.bar" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. +testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tftest.hcl:8,1-15: Provider type mismatch; The provider "bar" in main.tftest.hcl represents provider "registry.opentofu.org/hashicorp/foo", but "bar" in the root module represents "registry.opentofu.org/hashicorp/bar".\n\nThis means the provider definition for "bar" within main.tftest.hcl has been referenced by multiple run blocks and assigned to different provider types. \ No newline at end of file diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tf b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tf index 61cb4324ac..3b15ce42c7 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tf +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" configuration_aliases = [foo.bar] } } diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/setup/main.tf b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/setup/main.tf index 58ffd026c8..beb7059325 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/setup/main.tf +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch-with-module/setup/main.tf @@ -1,11 +1,11 @@ terraform { required_providers { foo = { - source = "opentofu/bar" + source = "hashicorp/bar" configuration_aliases = [ foo.bar ] } bar = { - source = "opentofu/foo" + source = "hashicorp/foo" } } } diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/errors b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/errors index 2ad40e7399..c96e5ded82 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/errors +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/errors @@ -1 +1 @@ -testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl:27,11-14: Provider type mismatch; The local name "bar" in main.tftest.hcl represents provider "registry.opentofu.org/opentofu/bar", but "foo" in the root module represents "registry.opentofu.org/opentofu/foo".\n\nThis means the provider definition for "bar" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. \ No newline at end of file +testdata/config-diagnostics/tests-provider-mismatch/main.tftest.hcl:27,11-14: Provider type mismatch; The local name "bar" in main.tftest.hcl represents provider "registry.opentofu.org/hashicorp/bar", but "foo" in the root module represents "registry.opentofu.org/hashicorp/foo".\n\nThis means the provider definition for "bar" within main.tftest.hcl, or other provider definitions with the same name, have been referenced by multiple run blocks and assigned to different provider types. \ No newline at end of file diff --git a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tf b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tf index 61cb4324ac..3b15ce42c7 100644 --- a/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tf +++ b/internal/configs/testdata/config-diagnostics/tests-provider-mismatch/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" configuration_aliases = [foo.bar] } } diff --git a/internal/configs/testdata/config-diagnostics/unexpected-provider/main.tf b/internal/configs/testdata/config-diagnostics/unexpected-provider/main.tf index 992b4528cc..cd859a7268 100644 --- a/internal/configs/testdata/config-diagnostics/unexpected-provider/main.tf +++ b/internal/configs/testdata/config-diagnostics/unexpected-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" version = "1.0.0" } } diff --git a/internal/configs/testdata/config-diagnostics/unexpected-provider/warnings b/internal/configs/testdata/config-diagnostics/unexpected-provider/warnings index 4800a4fbaa..515fb86c94 100644 --- a/internal/configs/testdata/config-diagnostics/unexpected-provider/warnings +++ b/internal/configs/testdata/config-diagnostics/unexpected-provider/warnings @@ -1 +1 @@ -unexpected-provider/main.tf:13,5-8: Reference to undefined provider; There is no explicit declaration for local provider name "foo" in module.mod, so OpenTofu is assuming you mean to pass a configuration for "opentofu/foo". +unexpected-provider/main.tf:13,5-8: Reference to undefined provider; There is no explicit declaration for local provider name "foo" in module.mod, so OpenTofu is assuming you mean to pass a configuration for "hashicorp/foo". diff --git a/internal/configs/testdata/config-diagnostics/unknown-root-provider/warnings b/internal/configs/testdata/config-diagnostics/unknown-root-provider/warnings index f5730bddec..a076a5d7e0 100644 --- a/internal/configs/testdata/config-diagnostics/unknown-root-provider/warnings +++ b/internal/configs/testdata/config-diagnostics/unknown-root-provider/warnings @@ -1 +1 @@ -unknown-root-provider/main.tf:5,11-14: Reference to undefined provider; There is no explicit declaration for local provider name "bar" in the root module, so OpenTofu is assuming you mean to pass a configuration for provider "opentofu/bar". +unknown-root-provider/main.tf:5,11-14: Reference to undefined provider; There is no explicit declaration for local provider name "bar" in the root module, so OpenTofu is assuming you mean to pass a configuration for provider "hashicorp/bar". diff --git a/internal/configs/testdata/config-diagnostics/with-depends-on/main.tf b/internal/configs/testdata/config-diagnostics/with-depends-on/main.tf index 73ec03b98b..49c2dcd6e7 100644 --- a/internal/configs/testdata/config-diagnostics/with-depends-on/main.tf +++ b/internal/configs/testdata/config-diagnostics/with-depends-on/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" } } } diff --git a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/main.tf b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/main.tf index 93cb57e255..c318484b5b 100644 --- a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/main.tf +++ b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" } } } diff --git a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/main.tf b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/main.tf index 3f207ec50c..eaa3550bd7 100644 --- a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/main.tf +++ b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" } } } diff --git a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/mod3/main.tf b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/mod3/main.tf index ffda679634..b1827126d5 100644 --- a/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/mod3/main.tf +++ b/internal/configs/testdata/config-diagnostics/with-depends-on/mod1/mod2/mod3/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" configuration_aliases = [ foo.bar ] } } diff --git a/internal/configs/testdata/duplicate-local-name/main.tf b/internal/configs/testdata/duplicate-local-name/main.tf index 0dd68250e2..9bac5451cd 100644 --- a/internal/configs/testdata/duplicate-local-name/main.tf +++ b/internal/configs/testdata/duplicate-local-name/main.tf @@ -1,17 +1,17 @@ terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } dupe = { - source = "opentofu/test" + source = "hashicorp/test" } other = { - source = "opentofu/default" + source = "hashicorp/default" } wrong-name = { - source = "opentofu/foo" + source = "hashicorp/foo" } } } diff --git a/internal/configs/testdata/invalid-files/module-calls.tf b/internal/configs/testdata/invalid-files/module-calls.tf index ce4820bd99..dbf29feef6 100644 --- a/internal/configs/testdata/invalid-files/module-calls.tf +++ b/internal/configs/testdata/invalid-files/module-calls.tf @@ -5,7 +5,7 @@ module "foo" { } module "bar" { - source = "opentofu/bar/aws" + source = "hashicorp/bar/aws" boom = "🎆" yes = true diff --git a/internal/configs/testdata/invalid-files/provider-localname-normalization.tf b/internal/configs/testdata/invalid-files/provider-localname-normalization.tf index 98ee9d56ef..34c6e62bab 100644 --- a/internal/configs/testdata/invalid-files/provider-localname-normalization.tf +++ b/internal/configs/testdata/invalid-files/provider-localname-normalization.tf @@ -15,6 +15,6 @@ resource test_resource "test" { } resource test_resource "TEST" { - // this resource is (explicitly) provided by "opentofu/test" + // this resource is (explicitly) provided by "hashicorp/test" provider = TEST } diff --git a/internal/configs/testdata/provider-reqs-with-tests/provider-reqs-root.tf b/internal/configs/testdata/provider-reqs-with-tests/provider-reqs-root.tf index 9e1918e148..3ebcbbd658 100644 --- a/internal/configs/testdata/provider-reqs-with-tests/provider-reqs-root.tf +++ b/internal/configs/testdata/provider-reqs-with-tests/provider-reqs-root.tf @@ -1,20 +1,20 @@ terraform { required_providers { tls = { - source = "opentofu/tls" + source = "hashicorp/tls" version = "~> 3.0" } } } # There is no provider in required_providers called "implied", so this -# implicitly declares a dependency on "opentofu/implied". +# implicitly declares a dependency on "hashicorp/implied". resource "implied_foo" "bar" { } # There is no provider in required_providers called "terraform", but for # this name in particular we imply terraform.io/builtin/terraform instead, # to avoid selecting the now-unmaintained -# registry.opentofu.org/opentofu/terraform. +# registry.opentofu.org/hashicorp/terraform. data "terraform_remote_state" "bar" { } diff --git a/internal/configs/testdata/provider-reqs/child/grandchild/provider-reqs-grandchild.tf b/internal/configs/testdata/provider-reqs/child/grandchild/provider-reqs-grandchild.tf index 25dbeff0f6..5ac9dfab4d 100644 --- a/internal/configs/testdata/provider-reqs/child/grandchild/provider-reqs-grandchild.tf +++ b/internal/configs/testdata/provider-reqs/child/grandchild/provider-reqs-grandchild.tf @@ -1,4 +1,4 @@ # There is no provider in required_providers called "grandchild", so this -# implicitly declares a dependency on "opentofu/grandchild". +# implicitly declares a dependency on "hashicorp/grandchild". resource "grandchild_foo" "bar" { } diff --git a/internal/configs/testdata/provider-reqs/provider-reqs-root.tf b/internal/configs/testdata/provider-reqs/provider-reqs-root.tf index d2077ab900..0c72476dd0 100644 --- a/internal/configs/testdata/provider-reqs/provider-reqs-root.tf +++ b/internal/configs/testdata/provider-reqs/provider-reqs-root.tf @@ -5,14 +5,14 @@ terraform { version = "~> 1.2.0" } tls = { - source = "opentofu/tls" + source = "hashicorp/tls" version = "~> 3.0" } } } # There is no provider in required_providers called "implied", so this -# implicitly declares a dependency on "opentofu/implied". +# implicitly declares a dependency on "hashicorp/implied". resource "implied_foo" "bar" { } @@ -23,7 +23,7 @@ module "kinder" { # There is no provider in required_providers called "terraform", but for # this name in particular we imply terraform.io/builtin/terraform instead, # to avoid selecting the now-unmaintained -# registry.opentofu.org/opentofu/terraform. +# registry.opentofu.org/hashicorp/terraform. data "terraform_remote_state" "bar" { } diff --git a/internal/configs/testdata/valid-files/providers-explicit-implied.tf b/internal/configs/testdata/valid-files/providers-explicit-implied.tf index 7e097e7c81..49c063a1e2 100644 --- a/internal/configs/testdata/valid-files/providers-explicit-implied.tf +++ b/internal/configs/testdata/valid-files/providers-explicit-implied.tf @@ -28,7 +28,7 @@ import { terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } diff --git a/internal/configs/testdata/valid-modules/implied-providers/resources.tf b/internal/configs/testdata/valid-modules/implied-providers/resources.tf index 3ed1b4b7ad..6b4a8af87a 100644 --- a/internal/configs/testdata/valid-modules/implied-providers/resources.tf +++ b/internal/configs/testdata/valid-modules/implied-providers/resources.tf @@ -2,7 +2,7 @@ resource foo_resource "a" {} data foo_resource "b" {} -// These resources map to a default "opentofu/bar" provider +// These resources map to a default "hashicorp/bar" provider resource bar_resource "c" {} data bar_resource "d" {} diff --git a/internal/configs/testdata/valid-modules/importable-resource/providers.tf b/internal/configs/testdata/valid-modules/importable-resource/providers.tf index 40ce5becf9..4124dcaee0 100644 --- a/internal/configs/testdata/valid-modules/importable-resource/providers.tf +++ b/internal/configs/testdata/valid-modules/importable-resource/providers.tf @@ -1,7 +1,7 @@ terraform { required_providers { local = { - source = "opentofu/local" + source = "hashicorp/local" } } } diff --git a/internal/configs/testdata/valid-modules/override-resource-provider/base.tf b/internal/configs/testdata/valid-modules/override-resource-provider/base.tf index a32eb10089..0ea12dde56 100644 --- a/internal/configs/testdata/valid-modules/override-resource-provider/base.tf +++ b/internal/configs/testdata/valid-modules/override-resource-provider/base.tf @@ -13,5 +13,5 @@ resource "test_instance" "explicit" { provider = foo-test } -// the provider for this resource should default to "opentofu/test" +// the provider for this resource should default to "hashicorp/test" resource "test_instance" "default" {} diff --git a/internal/depsfile/testdata/locks-files/invalid-provider-addrs.hcl b/internal/depsfile/testdata/locks-files/invalid-provider-addrs.hcl index 377819b870..db5e402adf 100644 --- a/internal/depsfile/testdata/locks-files/invalid-provider-addrs.hcl +++ b/internal/depsfile/testdata/locks-files/invalid-provider-addrs.hcl @@ -2,7 +2,7 @@ provider "" { # ERROR: Invalid provider source address } -provider "opentofu/aws" { # ERROR: Non-normalized provider source address +provider "hashicorp/aws" { # ERROR: Non-normalized provider source address } diff --git a/internal/getproviders/didyoumean.go b/internal/getproviders/didyoumean.go index 1411ad0ddf..3ec8022740 100644 --- a/internal/getproviders/didyoumean.go +++ b/internal/getproviders/didyoumean.go @@ -34,8 +34,8 @@ import ( // replacement for the given provider. // // In practice today this function only knows how to suggest alternatives for -// "default" providers, which is to say ones that are in the opentofu -// namespace in the OpenTofu registry. It will always return no result for +// "default" providers, which is to say ones that are in the hashicorp +// namespace in the Terraform registry. It will always return no result for // any other provider. That might change in future if we introduce other ways // to discover provider suggestions. // diff --git a/internal/getproviders/didyoumean_test.go b/internal/getproviders/didyoumean_test.go index dad1bb41cb..0b4961c8d7 100644 --- a/internal/getproviders/didyoumean_test.go +++ b/internal/getproviders/didyoumean_test.go @@ -49,7 +49,7 @@ func TestMissingProviderSuggestion(t *testing.T) { defer close() // testRegistrySource handles -/moved as a valid legacy provider - // lookup mapping to opentofu/moved but with an additional "redirect" + // lookup mapping to hashicorp/moved but with an additional "redirect" // to acme/moved. This mimics how for some providers there is both // a copy under terraform-providers for v0.12 compatibility _and_ a // copy in some other namespace for v0.13 or later to use. Our naming @@ -151,7 +151,7 @@ func TestMissingProviderSuggestion(t *testing.T) { defer close() // Because this provider address isn't in - // registry.opentofu.org/opentofu/..., MissingProviderSuggestion + // registry.opentofu.org/hashicorp/..., MissingProviderSuggestion // will provide the same addr since there's no alternative in Requirements want := addrs.Provider{ Hostname: defaultRegistryHost, @@ -174,7 +174,7 @@ func TestMissingProviderSuggestion(t *testing.T) { // but different namespace, we can suggest that foo := addrs.Provider{ Hostname: defaultRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "foo", } realFoo := addrs.Provider{ diff --git a/internal/getproviders/errors.go b/internal/getproviders/errors.go index f005c998d9..7a99b9402c 100644 --- a/internal/getproviders/errors.go +++ b/internal/getproviders/errors.go @@ -100,7 +100,7 @@ func (err ErrProviderNotFound) Error() string { // A caller serving requests from an end-user should recognize this error type // and use it to produce user-friendly hints for common errors such as failing // to specify an explicit source for a provider not in the default namespace -// (one not under registry.opentofu.org/opentofu/). The default error message +// (one not under registry.opentofu.org/hashicorp/). The default error message // for this type is a direct description of the problem with no such hints, // because we expect that the caller will have better context to decide what // hints are appropriate, e.g. by looking at the configuration given by the diff --git a/internal/getproviders/filesystem_mirror_source_test.go b/internal/getproviders/filesystem_mirror_source_test.go index 017cf0f5de..f3f43de97a 100644 --- a/internal/getproviders/filesystem_mirror_source_test.go +++ b/internal/getproviders/filesystem_mirror_source_test.go @@ -28,28 +28,28 @@ func TestFilesystemMirrorSourceAllAvailablePackages(t *testing.T) { Version: versions.MustParseVersion("2.0.0"), TargetPlatform: Platform{"darwin", "amd64"}, Filename: "terraform-provider-null_2.0.0_darwin_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64"), }, { Provider: nullProvider, Version: versions.MustParseVersion("2.0.0"), TargetPlatform: Platform{"linux", "amd64"}, Filename: "terraform-provider-null_2.0.0_linux_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64"), }, { Provider: nullProvider, Version: versions.MustParseVersion("2.1.0"), TargetPlatform: Platform{"linux", "amd64"}, Filename: "terraform-provider-null_2.1.0_linux_amd64.zip", - Location: PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip"), + Location: PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip"), }, { Provider: nullProvider, Version: versions.MustParseVersion("2.0.0"), TargetPlatform: Platform{"windows", "amd64"}, Filename: "terraform-provider-null_2.0.0_windows_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64"), }, }, randomBetaProvider: { @@ -58,7 +58,7 @@ func TestFilesystemMirrorSourceAllAvailablePackages(t *testing.T) { Version: versions.MustParseVersion("1.2.0"), TargetPlatform: Platform{"linux", "amd64"}, Filename: "terraform-provider-random-beta_1.2.0_linux_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64"), }, }, randomProvider: { @@ -67,7 +67,7 @@ func TestFilesystemMirrorSourceAllAvailablePackages(t *testing.T) { Version: versions.MustParseVersion("1.2.0"), TargetPlatform: Platform{"linux", "amd64"}, Filename: "terraform-provider-random_1.2.0_linux_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64"), }, }, @@ -141,7 +141,7 @@ func TestFilesystemMirrorSourcePackageMeta(t *testing.T) { Version: versions.MustParseVersion("2.0.0"), TargetPlatform: Platform{"linux", "amd64"}, Filename: "terraform-provider-null_2.0.0_linux_amd64.zip", - Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64"), + Location: PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64"), } if diff := cmp.Diff(want, got); diff != "" { @@ -184,17 +184,17 @@ func TestFilesystemMirrorSourcePackageMeta(t *testing.T) { var nullProvider = addrs.Provider{ Hostname: svchost.Hostname("registry.opentofu.org"), - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "null", } var randomProvider = addrs.Provider{ Hostname: svchost.Hostname("registry.opentofu.org"), - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "random", } var randomBetaProvider = addrs.Provider{ Hostname: svchost.Hostname("registry.opentofu.org"), - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "random-beta", } var happycloudProvider = addrs.Provider{ diff --git a/internal/getproviders/filesystem_search.go b/internal/getproviders/filesystem_search.go index 547127a591..0e09f3a73b 100644 --- a/internal/getproviders/filesystem_search.go +++ b/internal/getproviders/filesystem_search.go @@ -51,8 +51,8 @@ func SearchLocalDirectory(baseDir string) (map[addrs.Provider]PackageMetaList, e } // There are two valid directory structures that we support here... - // Unpacked: registry.opentofu.org/opentofu/aws/2.0.0/linux_amd64 (a directory) - // Packed: registry.opentofu.org/opentofu/aws/terraform-provider-aws_2.0.0_linux_amd64.zip (a file) + // Unpacked: registry.opentofu.org/hashicorp/aws/2.0.0/linux_amd64 (a directory) + // Packed: registry.opentofu.org/hashicorp/aws/terraform-provider-aws_2.0.0_linux_amd64.zip (a file) // // Both of these give us enough information to identify the package // metadata. diff --git a/internal/getproviders/multi_source_test.go b/internal/getproviders/multi_source_test.go index 8a4f85b840..6564e59ed3 100644 --- a/internal/getproviders/multi_source_test.go +++ b/internal/getproviders/multi_source_test.go @@ -126,11 +126,11 @@ func TestMultiSourceAvailableVersions(t *testing.T) { multi := MultiSource{ { Source: s1, - Include: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, { Source: s2, - Include: mustParseMultiSourceMatchingPatterns("opentofu/bar"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/bar"), }, } @@ -177,7 +177,7 @@ func TestMultiSourceAvailableVersions(t *testing.T) { t.Fatal("expected error, got success") } - wantErr := `provider registry registry.opentofu.org does not have a provider named registry.opentofu.org/opentofu/foo` + wantErr := `provider registry registry.opentofu.org does not have a provider named registry.opentofu.org/hashicorp/foo` if err.Error() != wantErr { t.Fatalf("wrong error.\ngot: %s\nwant: %s\n", err, wantErr) @@ -392,7 +392,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with include constraint that matches it exactly": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/foo"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/foo"), }, addrs.NewDefaultProvider("foo"), true, @@ -400,7 +400,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with include constraint that matches it via type wildcard": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, addrs.NewDefaultProvider("foo"), true, @@ -416,7 +416,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with non-normalized include constraint that matches it via type wildcard": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("OpenTofu/*"), + Include: mustParseMultiSourceMatchingPatterns("HashiCorp/*"), }, addrs.NewDefaultProvider("foo"), true, @@ -424,7 +424,7 @@ func TestMultiSourceSelector(t *testing.T) { "built-in provider with exact include constraint that does not match it": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/foo"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/foo"), }, addrs.NewBuiltInProvider("bar"), false, @@ -432,7 +432,7 @@ func TestMultiSourceSelector(t *testing.T) { "built-in provider with type-wild include constraint that does not match it": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, addrs.NewBuiltInProvider("bar"), false, @@ -460,7 +460,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exclude constraint that matches it exactly": { MultiSourceSelector{ Source: emptySource, - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/foo"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/foo"), }, addrs.NewDefaultProvider("foo"), false, @@ -468,7 +468,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exclude constraint that matches it via type wildcard": { MultiSourceSelector{ Source: emptySource, - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, addrs.NewDefaultProvider("foo"), false, @@ -476,7 +476,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exact exclude constraint that doesn't match it": { MultiSourceSelector{ Source: emptySource, - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/bar"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/bar"), }, addrs.NewDefaultProvider("foo"), true, @@ -484,7 +484,7 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with non-normalized exclude constraint that matches it via type wildcard": { MultiSourceSelector{ Source: emptySource, - Exclude: mustParseMultiSourceMatchingPatterns("OpenTofu/*"), + Exclude: mustParseMultiSourceMatchingPatterns("HashiCorp/*"), }, addrs.NewDefaultProvider("foo"), false, @@ -494,8 +494,8 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exclude wildcard overriding include exact": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/foo"), - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/foo"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, addrs.NewDefaultProvider("foo"), false, @@ -503,8 +503,8 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exclude wildcard overriding irrelevant include exact": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/bar"), - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/*"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/bar"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/*"), }, addrs.NewDefaultProvider("foo"), false, @@ -512,8 +512,8 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with exclude exact overriding include wildcard": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/*"), - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/foo"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/*"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/foo"), }, addrs.NewDefaultProvider("foo"), false, @@ -521,8 +521,8 @@ func TestMultiSourceSelector(t *testing.T) { "default provider with irrelevant exclude exact overriding include wildcard": { MultiSourceSelector{ Source: emptySource, - Include: mustParseMultiSourceMatchingPatterns("opentofu/*"), - Exclude: mustParseMultiSourceMatchingPatterns("opentofu/bar"), + Include: mustParseMultiSourceMatchingPatterns("hashicorp/*"), + Exclude: mustParseMultiSourceMatchingPatterns("hashicorp/bar"), }, addrs.NewDefaultProvider("foo"), true, diff --git a/internal/getproviders/package_authentication_test.go b/internal/getproviders/package_authentication_test.go index c36c4b75fa..48b267a25f 100644 --- a/internal/getproviders/package_authentication_test.go +++ b/internal/getproviders/package_authentication_test.go @@ -98,7 +98,7 @@ func TestPackageAuthenticationAll_failure(t *testing.T) { // result should be "verified checksum". func TestPackageHashAuthentication_success(t *testing.T) { // Location must be a PackageLocalArchive path - location := PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64") + location := PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64") wantHashes := []Hash{ // Known-good HashV1 result for this directory @@ -128,11 +128,11 @@ func TestPackageHashAuthentication_failure(t *testing.T) { "failed to verify provider package checksums: lstat testdata/no-package-here.zip: no such file or directory", }, "checksum mismatch": { - PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64"), + PackageLocalDir("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64"), "provider package doesn't match the expected checksum \"h1:invalid\"", }, "invalid zip file": { - PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip"), + PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip"), "failed to verify provider package checksums: zip: not a valid zip file", }, } @@ -158,7 +158,7 @@ func TestPackageHashAuthentication_failure(t *testing.T) { // SHA256 hash. The result should be "verified checksum". func TestArchiveChecksumAuthentication_success(t *testing.T) { // Location must be a PackageLocalArchive path - location := PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip") + location := PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip") // Known-good SHA256 hash for this archive wantSHA256Sum := [sha256.Size]byte{ @@ -193,7 +193,7 @@ func TestArchiveChecksumAuthentication_failure(t *testing.T) { "failed to compute checksum for testdata/no-package-here.zip: lstat testdata/no-package-here.zip: no such file or directory", }, "checksum mismatch": { - PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip"), + PackageLocalArchive("testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip"), "archive has incorrect checksum zh:4fb39849f2e138eb16a18ba0c682635d781cb8c3b25901dd5a792ade9711f501 (expected zh:0000000000000000000000000000000000000000000000000000000000000000)", }, "invalid location": { diff --git a/internal/getproviders/registry_client_test.go b/internal/getproviders/registry_client_test.go index b70b6c96ce..24539971d0 100644 --- a/internal/getproviders/registry_client_test.go +++ b/internal/getproviders/registry_client_test.go @@ -238,7 +238,7 @@ func fakeRegistryHandler(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Content-Type", "application/json") resp.WriteHeader(200) // This response is used for testing LookupLegacyProvider - resp.Write([]byte(`{"id":"opentofu/moved","moved_to":"acme/moved"}`)) + resp.Write([]byte(`{"id":"hashicorp/moved","moved_to":"acme/moved"}`)) case "-/changetype": resp.Header().Set("Content-Type", "application/json") resp.WriteHeader(200) diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/2.0.0/linux_amd64/terraform-provider-null b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/2.0.0/linux_amd64/terraform-provider-null rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/invalid b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/invalid similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/invalid rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/invalid diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_invalid.zip b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_invalid.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_invalid.zip rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_invalid.zip diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta diff --git a/internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/random/1.2.0/linux_amd64/terraform-provider-random b/internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror-invalid/opentofu/random/1.2.0/linux_amd64/terraform-provider-random rename to internal/getproviders/testdata/filesystem-mirror-invalid/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64/terraform-provider-null b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64/terraform-provider-null rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64/terraform-provider-null.exe b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64/terraform-provider-null.exe similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64/terraform-provider-null.exe rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64/terraform-provider-null.exe diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/invalid b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/invalid similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/invalid rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/invalid diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid.zip b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid.zip rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid.zip diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta diff --git a/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64/terraform-provider-random b/internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random similarity index 100% rename from internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64/terraform-provider-random rename to internal/getproviders/testdata/filesystem-mirror/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random diff --git a/internal/httpclient/client.go b/internal/httpclient/client.go index 6e3f6298e0..67a844c7d4 100644 --- a/internal/httpclient/client.go +++ b/internal/httpclient/client.go @@ -4,8 +4,6 @@ package httpclient import ( - "crypto/tls" - "crypto/x509" "net/http" cleanhttp "github.com/hashicorp/go-cleanhttp" @@ -22,29 +20,3 @@ func New() *http.Client { } return cli } - -// NewWithCustomTrustedCertificates is identical to New but trusts the provided certificate pool instead of the default -// system pool. This is useful mainly for testing against mock servers with dynamically generated certificates. -func NewWithCustomTrustedCertificates(pool *x509.CertPool) *http.Client { - return &http.Client{ - Transport: NewTransportWithCustomTrustedCertificates(pool), - } -} - -// NewTransportWithCustomTrustedCertificates returns an HTTP transport usable with an HTTP client with a custom -// trusted certificate pool. This is useful mainly for testing against mock servers with dynamically generated -// certificates. -func NewTransportWithCustomTrustedCertificates(pool *x509.CertPool) http.RoundTripper { - transport := cleanhttp.DefaultPooledTransport() - if transport.TLSClientConfig == nil { - transport.TLSClientConfig = &tls.Config{ - MinVersion: tls.VersionTLS12, - } - } - transport.TLSClientConfig.RootCAs = pool - - return &userAgentRoundTripper{ - userAgent: OpenTofuUserAgent(version.Version), - inner: transport, - } -} diff --git a/internal/initwd/from_module_test.go b/internal/initwd/from_module_test.go index d123cfc454..39d2b2fb98 100644 --- a/internal/initwd/from_module_test.go +++ b/internal/initwd/from_module_test.go @@ -43,7 +43,7 @@ func TestDirFromModule_registry(t *testing.T) { reg := registry.NewClient(nil, nil) loader, cleanup := configload.NewLoaderForTests(t) defer cleanup() - diags := DirFromModule(context.Background(), loader, dir, modsDir, "opentofu/module-installer-acctest/aws//examples/main", reg, hooks) + diags := DirFromModule(context.Background(), loader, dir, modsDir, "hashicorp/module-installer-acctest/aws//examples/main", reg, hooks) assertNoDiagnostics(t, diags) v := version.Must(version.NewVersion("0.0.2")) @@ -62,7 +62,7 @@ func TestDirFromModule_registry(t *testing.T) { { Name: "Download", ModuleAddr: "root", - PackageAddr: "registry.opentofu.org/opentofu/module-installer-acctest/aws", + PackageAddr: "registry.opentofu.org/hashicorp/module-installer-acctest/aws", Version: v, }, { diff --git a/internal/initwd/module_install_test.go b/internal/initwd/module_install_test.go index 8fae2e36b6..ea3ad30c05 100644 --- a/internal/initwd/module_install_test.go +++ b/internal/initwd/module_install_test.go @@ -847,7 +847,7 @@ func TestLoadInstallModules_registryFromTest(t *testing.T) { //check that the registry reponses were cached packageAddr := addrs.ModuleRegistryPackage{ - Host: addrs.DefaultProviderRegistryHost, + Host: svchost.Hostname("registry.opentofu.org"), Namespace: "hashicorp", Name: "module-installer-acctest", TargetSystem: "aws", diff --git a/internal/initwd/testdata/local-module-missing-provider/main.tf b/internal/initwd/testdata/local-module-missing-provider/main.tf index 7b9e4cbb39..0ef917dc7c 100644 --- a/internal/initwd/testdata/local-module-missing-provider/main.tf +++ b/internal/initwd/testdata/local-module-missing-provider/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { foo = { - source = "opentofu/foo" + source = "hashicorp/foo" // since this module declares an alias with no config, it is not valid as // a root module. configuration_aliases = [ foo.alternate ] diff --git a/internal/initwd/testdata/prerelease-version-constraint/root.tf b/internal/initwd/testdata/prerelease-version-constraint/root.tf index 7797716797..8ff3dd68da 100644 --- a/internal/initwd/testdata/prerelease-version-constraint/root.tf +++ b/internal/initwd/testdata/prerelease-version-constraint/root.tf @@ -3,6 +3,6 @@ # prerelease. module "acctest_partial" { - source = "opentofu/module-installer-acctest/aws" + source = "hashicorp/module-installer-acctest/aws" version = "<=0.0.3-alpha.1" } diff --git a/internal/initwd/testdata/registry-module-from-test/main.tftest.hcl b/internal/initwd/testdata/registry-module-from-test/main.tftest.hcl index 562ad0b3c9..da19708133 100644 --- a/internal/initwd/testdata/registry-module-from-test/main.tftest.hcl +++ b/internal/initwd/testdata/registry-module-from-test/main.tftest.hcl @@ -2,7 +2,7 @@ run "setup" { # We have a dedicated repo for this test module. # See ../registry-modules/root.tf for more info. module { - source = "opentofu/module-installer-acctest/aws" + source = "hashicorp/module-installer-acctest/aws" version = "0.0.1" } } diff --git a/internal/lang/globalref/analyzer_test.go b/internal/lang/globalref/analyzer_test.go index 4b71981d92..f7e76b92a4 100644 --- a/internal/lang/globalref/analyzer_test.go +++ b/internal/lang/globalref/analyzer_test.go @@ -88,7 +88,7 @@ func testAnalyzer(t *testing.T, fixtureName string) *Analyzer { }, } schemas := map[addrs.Provider]providers.ProviderSchema{ - addrs.MustParseProviderSourceString("opentofu/test"): { + addrs.MustParseProviderSourceString("hashicorp/test"): { ResourceTypes: map[string]providers.Schema{ "test_thing": { Block: resourceTypeSchema, diff --git a/internal/plans/planfile/testdata/cloudplan.json b/internal/plans/planfile/testdata/cloudplan.json index b3f8d8c3f2..0a1c73302a 100644 --- a/internal/plans/planfile/testdata/cloudplan.json +++ b/internal/plans/planfile/testdata/cloudplan.json @@ -1,5 +1,5 @@ { "remote_plan_format": 1, "run_id": "run-GXfuHMkbyHccAGUg", - "hostname": "app.example.com" + "hostname": "app.terraform.io" } diff --git a/internal/providercache/cached_provider_test.go b/internal/providercache/cached_provider_test.go index c43248565b..0c8951abbf 100644 --- a/internal/providercache/cached_provider_test.go +++ b/internal/providercache/cached_provider_test.go @@ -14,11 +14,11 @@ func TestCachedProviderHash(t *testing.T) { cp := &CachedProvider{ Provider: addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "null", + "hashicorp", "null", ), Version: getproviders.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64", } want := getproviders.MustParseHash("h1:qjsREM4DqEWECD43FcPqddZ9oxCG+IaMTxvWPciS05g=") @@ -44,11 +44,11 @@ func TestCachedProviderHash(t *testing.T) { cp2 := &CachedProvider{ Provider: addrs.NewProvider( addrs.DefaultProviderRegistryHost, - "opentofu", "null", + "hashicorp", "null", ), Version: getproviders.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", } gotMatches, err = cp2.MatchesHash(want) if err != nil { @@ -68,19 +68,19 @@ func TestExecutableFile(t *testing.T) { }{ "linux": { cp: &CachedProvider{ - Provider: addrs.NewProvider(addrs.DefaultProviderRegistryHost, "opentofu", "null"), + Provider: addrs.NewProvider(addrs.DefaultProviderRegistryHost, "hashicorp", "null"), Version: getproviders.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64", }, - file: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64/terraform-provider-null", + file: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null", }, "windows": { cp: &CachedProvider{ - Provider: addrs.NewProvider(addrs.DefaultProviderRegistryHost, "opentofu", "null"), + Provider: addrs.NewProvider(addrs.DefaultProviderRegistryHost, "hashicorp", "null"), Version: getproviders.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", }, - file: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64/terraform-provider-null.exe", + file: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64/terraform-provider-null.exe", }, "missing-executable": { cp: &CachedProvider{ diff --git a/internal/providercache/dir_modify_test.go b/internal/providercache/dir_modify_test.go index fab5729b34..d8616cd273 100644 --- a/internal/providercache/dir_modify_test.go +++ b/internal/providercache/dir_modify_test.go @@ -26,7 +26,7 @@ func TestInstallPackage(t *testing.T) { Arch: "amd64", } nullProvider := addrs.NewProvider( - addrs.DefaultProviderRegistryHost, "opentofu", "null", + addrs.DefaultProviderRegistryHost, "hashicorp", "null", ) tmpDir := NewDirWithPlatform(tmpDirPath, linuxPlatform) @@ -59,7 +59,7 @@ func TestInstallPackage(t *testing.T) { Version: versions.MustParseVersion("2.1.0"), - PackageDir: tmpDirPath + "/registry.opentofu.org/opentofu/null/2.1.0/linux_amd64", + PackageDir: tmpDirPath + "/registry.opentofu.org/hashicorp/null/2.1.0/linux_amd64", }, }, } @@ -80,7 +80,7 @@ func TestLinkFromOtherCache(t *testing.T) { Arch: "amd64", } nullProvider := addrs.NewProvider( - addrs.DefaultProviderRegistryHost, "opentofu", "null", + addrs.DefaultProviderRegistryHost, "hashicorp", "null", ) srcDir := NewDirWithPlatform(srcDirPath, windowsPlatform) @@ -100,7 +100,7 @@ func TestLinkFromOtherCache(t *testing.T) { // still packed and thus not considered to be a cache member. Version: versions.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", }, }, } @@ -136,7 +136,7 @@ func TestLinkFromOtherCache(t *testing.T) { // still packed and thus not considered to be a cache member. Version: versions.MustParseVersion("2.0.0"), - PackageDir: tmpDirPath + "/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: tmpDirPath + "/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", }, }, } diff --git a/internal/providercache/dir_test.go b/internal/providercache/dir_test.go index 090c95cc15..12bcee1bff 100644 --- a/internal/providercache/dir_test.go +++ b/internal/providercache/dir_test.go @@ -28,13 +28,13 @@ func TestDirReading(t *testing.T) { } nullProvider := addrs.NewProvider( - addrs.DefaultProviderRegistryHost, addrs.DefaultProviderNamespace, "null", + addrs.DefaultProviderRegistryHost, "hashicorp", "null", ) randomProvider := addrs.NewProvider( - addrs.DefaultProviderRegistryHost, addrs.DefaultProviderNamespace, "random", + addrs.DefaultProviderRegistryHost, "hashicorp", "random", ) randomBetaProvider := addrs.NewProvider( - addrs.DefaultProviderRegistryHost, addrs.DefaultProviderNamespace, "random-beta", + addrs.DefaultProviderRegistryHost, "hashicorp", "random-beta", ) nonExistProvider := addrs.NewProvider( addrs.DefaultProviderRegistryHost, "bloop", "nonexist", @@ -56,7 +56,7 @@ func TestDirReading(t *testing.T) { // still packed and thus not considered to be a cache member. Version: versions.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", } if diff := cmp.Diff(want, got); diff != "" { @@ -96,7 +96,7 @@ func TestDirReading(t *testing.T) { Provider: nullProvider, Version: versions.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64", } if diff := cmp.Diff(want, got); diff != "" { @@ -154,21 +154,21 @@ func TestDirReading(t *testing.T) { { Provider: nullProvider, Version: versions.MustParseVersion("2.0.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64", }, }, randomProvider: { { Provider: randomProvider, Version: versions.MustParseVersion("1.2.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64", }, }, randomBetaProvider: { { Provider: randomBetaProvider, Version: versions.MustParseVersion("1.2.0"), - PackageDir: "testdata/cachedir/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64", + PackageDir: "testdata/cachedir/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64", }, }, missingExecutableProvider: { diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/darwin_amd64/terraform-provider-null rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/darwin_amd64/terraform-provider-null diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64/terraform-provider-null b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/linux_amd64/terraform-provider-null rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/linux_amd64/terraform-provider-null diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64/terraform-provider-null.exe b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64/terraform-provider-null.exe similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/2.0.0/windows_amd64/terraform-provider-null.exe rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/2.0.0/windows_amd64/terraform-provider-null.exe diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/invalid b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/invalid similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/invalid rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/invalid diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_2.1.0_linux_amd64.zip rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_2.1.0_linux_amd64.zip diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid.zip b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid.zip similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid.zip rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid.zip diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/null/terraform-provider-null_invalid_invalid_invalid.zip rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/null/terraform-provider-null_invalid_invalid_invalid.zip diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/random-beta/1.2.0/linux_amd64/terraform-provider-random-beta diff --git a/internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64/terraform-provider-random b/internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random similarity index 100% rename from internal/providercache/testdata/cachedir/registry.opentofu.org/opentofu/random/1.2.0/linux_amd64/terraform-provider-random rename to internal/providercache/testdata/cachedir/registry.opentofu.org/hashicorp/random/1.2.0/linux_amd64/terraform-provider-random diff --git a/internal/refactoring/move_statement_test.go b/internal/refactoring/move_statement_test.go index d6153e7ca3..98374df248 100644 --- a/internal/refactoring/move_statement_test.go +++ b/internal/refactoring/move_statement_test.go @@ -36,7 +36,7 @@ func TestImpliedMoveStatements(t *testing.T) { } providerAddr := addrs.AbsProviderConfig{ Module: addrs.RootModule, - Provider: addrs.MustParseProviderSourceString("opentofu/foo"), + Provider: addrs.MustParseProviderSourceString("hashicorp/foo"), } rootCfg, _ := loadRefactoringFixture(t, "testdata/move-statement-implied") diff --git a/internal/registry/regsrc/friendly_host_test.go b/internal/registry/regsrc/friendly_host_test.go index 9a2e8323f6..f286b8037a 100644 --- a/internal/registry/regsrc/friendly_host_test.go +++ b/internal/registry/regsrc/friendly_host_test.go @@ -35,10 +35,10 @@ func TestFriendlyHost(t *testing.T) { }, { name: "IDN", - source: "ʎɹʇsıƃǝɹ.nɟoʇuǝdo.io", - wantHost: "ʎɹʇsıƃǝɹ.nɟoʇuǝdo.io", - wantDisplay: "ʎɹʇsıƃǝɹ.nɟoʇuǝdo.io", - wantNorm: "xn--s-fka0wmm0zea7g8b.xn--noudo-6yb12ggj.io", + source: "ʎɹʇsıƃǝɹ.ɯɹoɟɐɹɹǝʇ.io", + wantHost: "ʎɹʇsıƃǝɹ.ɯɹoɟɐɹɹǝʇ.io", + wantDisplay: "ʎɹʇsıƃǝɹ.ɯɹoɟɐɹɹǝʇ.io", + wantNorm: "xn--s-fka0wmm0zea7g8b.xn--o-8ta85a3b1dwcda1k.io", wantValid: true, }, { @@ -59,9 +59,9 @@ func TestFriendlyHost(t *testing.T) { }, { name: "Punycode is invalid as an input format", - source: "xn--s-fka0wmm0zea7g8b.xn--noudo-6yb12ggj.io", - wantHost: "xn--s-fka0wmm0zea7g8b.xn--noudo-6yb12ggj.io", - wantDisplay: "ʎɹʇsıƃǝɹ.nɟoʇuǝdo.io", + source: "xn--s-fka0wmm0zea7g8b.xn--o-8ta85a3b1dwcda1k.io", + wantHost: "xn--s-fka0wmm0zea7g8b.xn--o-8ta85a3b1dwcda1k.io", + wantDisplay: "ʎɹʇsıƃǝɹ.ɯɹoɟɐɹɹǝʇ.io", wantNorm: InvalidHostString, wantValid: false, }, diff --git a/internal/states/statefile/testdata/roundtrip/v3-builtin.in.tfstate b/internal/states/statefile/testdata/roundtrip/v3-builtin.in.tfstate index d256a0c913..2e1ea0c666 100644 --- a/internal/states/statefile/testdata/roundtrip/v3-builtin.in.tfstate +++ b/internal/states/statefile/testdata/roundtrip/v3-builtin.in.tfstate @@ -18,7 +18,7 @@ "attributes": { "backend": "remote", "config.#": "1", - "config.345861710.organization": "opentofu", + "config.345861710.organization": "hashicorp", "config.345861710.workspaces.#": "1", "config.345861710.workspaces.0.%": "1", "config.345861710.workspaces.0.name": "test", diff --git a/internal/states/statefile/testdata/roundtrip/v3-builtin.out.tfstate b/internal/states/statefile/testdata/roundtrip/v3-builtin.out.tfstate index d17ecdbfd9..baef96941b 100644 --- a/internal/states/statefile/testdata/roundtrip/v3-builtin.out.tfstate +++ b/internal/states/statefile/testdata/roundtrip/v3-builtin.out.tfstate @@ -16,7 +16,7 @@ "attributes_flat": { "backend": "remote", "config.#": "1", - "config.345861710.organization": "opentofu", + "config.345861710.organization": "hashicorp", "config.345861710.workspaces.#": "1", "config.345861710.workspaces.0.%": "1", "config.345861710.workspaces.0.name": "test", diff --git a/internal/tofu/context_apply2_test.go b/internal/tofu/context_apply2_test.go index 9a63ba9b44..ec8bcf0e50 100644 --- a/internal/tofu/context_apply2_test.go +++ b/internal/tofu/context_apply2_test.go @@ -43,7 +43,7 @@ func TestContext2Apply_createBeforeDestroy_deposedKeyPreApply(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -52,7 +52,7 @@ func TestContext2Apply_createBeforeDestroy_deposedKeyPreApply(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) hook := new(MockHook) @@ -227,7 +227,7 @@ resource "test_instance" "a" { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"a","value":"old","type":"test"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) // test_instance.b depended on test_instance.a, and therefor should be // destroyed before any changes to test_instance.a @@ -235,7 +235,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"b"}`), Status: states.ObjectReady, Dependencies: []addrs.ConfigResource{addrA.ContainingResource().Config()}, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -276,7 +276,7 @@ func TestApply_updateDependencies(t *testing.T) { bazAddr.ContainingResource().Config(), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( binAddr.Resource, @@ -287,7 +287,7 @@ func TestApply_updateDependencies(t *testing.T) { bazAddr.ContainingResource().Config(), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( bazAddr.Resource, @@ -299,7 +299,7 @@ func TestApply_updateDependencies(t *testing.T) { bamAddr.ContainingResource().Config(), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( barAddr.Resource, @@ -307,7 +307,7 @@ func TestApply_updateDependencies(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) m := testModuleInline(t, map[string]string{ @@ -426,7 +426,7 @@ resource "test_resource" "b" { }, }, Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) }) @@ -584,7 +584,7 @@ resource "test_object" "x" { Status: states.ObjectTainted, AttrsJSON: []byte(`{"test_string":"deposed"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -712,7 +712,7 @@ resource "test_object" "b" { Status: states.ObjectTainted, AttrsJSON: []byte(`{"test_string":"ok"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.b").Resource, @@ -720,7 +720,7 @@ resource "test_object" "b" { Status: states.ObjectTainted, AttrsJSON: []byte(`{"test_string":"ok"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1422,7 +1422,7 @@ resource "test_object" "x" { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"ok"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1472,7 +1472,7 @@ resource "test_object" "y" { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"x"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1628,7 +1628,7 @@ output "from_resource" { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"wrong_val"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1683,7 +1683,7 @@ output "from_resource" { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"wrong val"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) mod.SetOutputValue("from_resource", cty.StringVal("wrong val"), false) @@ -1753,7 +1753,7 @@ resource "test_object" "y" { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"y"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ diff --git a/internal/tofu/context_apply_test.go b/internal/tofu/context_apply_test.go index d545fe26e2..40720703dd 100644 --- a/internal/tofu/context_apply_test.go +++ b/internal/tofu/context_apply_test.go @@ -330,7 +330,7 @@ func TestContext2Apply_escape(t *testing.T) { checkStateString(t, state, ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = "bar" type = aws_instance `) @@ -356,7 +356,7 @@ func TestContext2Apply_resourceCountOneList(t *testing.T) { got := strings.TrimSpace(state.String()) want := strings.TrimSpace(`null_resource.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/null"] + provider = provider["registry.opentofu.org/hashicorp/null"] Outputs: @@ -459,7 +459,7 @@ func TestContext2Apply_resourceDependsOnModuleStateOnly(t *testing.T) { AttrsJSON: []byte(`{"id":"parent"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("module.child.aws_instance.child")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) child.SetResourceInstanceCurrent( @@ -468,7 +468,7 @@ func TestContext2Apply_resourceDependsOnModuleStateOnly(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"child"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) { @@ -716,7 +716,7 @@ amis_from_module = {eu-west-1:ami-789012 eu-west-2:ami-989484 us-west-1:ami-1234 module.test: null_resource.noop: ID = foo - provider = provider["registry.opentofu.org/opentofu/null"] + provider = provider["registry.opentofu.org/hashicorp/null"] Outputs: @@ -889,7 +889,7 @@ func TestContext2Apply_providerWarning(t *testing.T) { expected := strings.TrimSpace(` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance `) if actual != expected { @@ -941,7 +941,7 @@ func TestContext2Apply_createBeforeDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "require_new": "abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1010,7 +1010,7 @@ func TestContext2Apply_createBeforeDestroyUpdate(t *testing.T) { AttrsJSON: []byte(`{"id":"foo","foo":"bar"}`), CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -1020,7 +1020,7 @@ func TestContext2Apply_createBeforeDestroyUpdate(t *testing.T) { CreateBeforeDestroy: true, Dependencies: []addrs.ConfigResource{fooAddr.ContainingResource().Config()}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1069,7 +1069,7 @@ func TestContext2Apply_createBeforeDestroy_dependsNonCBD(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "require_new": "abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo").Resource, @@ -1077,7 +1077,7 @@ func TestContext2Apply_createBeforeDestroy_dependsNonCBD(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo", "require_new": "abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1101,7 +1101,7 @@ func TestContext2Apply_createBeforeDestroy_dependsNonCBD(t *testing.T) { checkStateString(t, state, ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = yes type = aws_instance value = foo @@ -1110,7 +1110,7 @@ aws_instance.bar: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = yes type = aws_instance `) @@ -1130,7 +1130,7 @@ func TestContext2Apply_createBeforeDestroy_hook(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "require_new": "abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) var actual []cty.Value @@ -1191,7 +1191,7 @@ func TestContext2Apply_createBeforeDestroy_deposedCount(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.bar[0]").Resource, @@ -1200,7 +1200,7 @@ func TestContext2Apply_createBeforeDestroy_deposedCount(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[1]").Resource, @@ -1208,7 +1208,7 @@ func TestContext2Apply_createBeforeDestroy_deposedCount(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.bar[1]").Resource, @@ -1217,7 +1217,7 @@ func TestContext2Apply_createBeforeDestroy_deposedCount(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1241,12 +1241,12 @@ func TestContext2Apply_createBeforeDestroy_deposedCount(t *testing.T) { checkStateString(t, state, ` aws_instance.bar.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance `) @@ -1268,7 +1268,7 @@ func TestContext2Apply_createBeforeDestroy_deposedOnly(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -1277,7 +1277,7 @@ func TestContext2Apply_createBeforeDestroy_deposedOnly(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1301,7 +1301,7 @@ func TestContext2Apply_createBeforeDestroy_deposedOnly(t *testing.T) { checkStateString(t, state, ` aws_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance `) } @@ -1318,7 +1318,7 @@ func TestContext2Apply_destroyComputed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo", "output": "value"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1364,7 +1364,7 @@ func testContext2Apply_destroyDependsOn(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo").Resource, @@ -1373,7 +1373,7 @@ func testContext2Apply_destroyDependsOn(t *testing.T) { AttrsJSON: []byte(`{"id":"foo"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.bar")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) // Record the order we see Apply @@ -1660,7 +1660,7 @@ func TestContext2Apply_destroyData(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"-"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/null"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/null"]`), ) hook := &testHook{} @@ -1719,7 +1719,7 @@ func TestContext2Apply_destroySkipsCBD(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -1727,7 +1727,7 @@ func TestContext2Apply_destroySkipsCBD(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1765,7 +1765,7 @@ func TestContext2Apply_destroyModuleVarProviderConfig(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1841,7 +1841,7 @@ func getContextForApply_destroyCrossProviders(t *testing.T, m *configs.Config, p Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"test"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) child.SetResourceInstanceCurrent( @@ -1850,7 +1850,7 @@ func getContextForApply_destroyCrossProviders(t *testing.T, m *configs.Config, p Status: states.ObjectReady, AttrsJSON: []byte(`{"id": "vpc-aaabbb12", "value":"test"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2026,7 +2026,7 @@ func TestContext2Apply_cancelBlock(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -2103,7 +2103,7 @@ func TestContext2Apply_cancelProvisioner(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: (tainted) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -2196,7 +2196,7 @@ func TestContext2Apply_countDecrease(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo": "foo","type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -2204,7 +2204,7 @@ func TestContext2Apply_countDecrease(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo": "foo","type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -2212,7 +2212,7 @@ func TestContext2Apply_countDecrease(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "foo": "foo", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2246,7 +2246,7 @@ func TestContext2Apply_countDecreaseToOneX(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "foo": "foo", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -2254,7 +2254,7 @@ func TestContext2Apply_countDecreaseToOneX(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -2262,7 +2262,7 @@ func TestContext2Apply_countDecreaseToOneX(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2316,7 +2316,7 @@ func TestContext2Apply_countDecreaseToOneCorrupted(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "foo": "foo", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -2324,7 +2324,7 @@ func TestContext2Apply_countDecreaseToOneCorrupted(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2392,7 +2392,7 @@ func TestContext2Apply_countTainted(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar", "type": "aws_instance", "foo": "foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -2426,12 +2426,12 @@ CREATE: aws_instance.foo[1] want := strings.TrimSpace(` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance `) @@ -2649,7 +2649,7 @@ func TestContext2Apply_moduleDestroyOrder(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"a"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root := state.EnsureModule(addrs.RootModuleInstance) root.SetResourceInstanceCurrent( @@ -2659,7 +2659,7 @@ func TestContext2Apply_moduleDestroyOrder(t *testing.T) { AttrsJSON: []byte(`{"id":"b"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("module.child.aws_instance.a")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2731,7 +2731,7 @@ func TestContext2Apply_moduleInheritAlias(t *testing.T) { module.child: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"].eu + provider = provider["registry.opentofu.org/hashicorp/aws"].eu type = aws_instance `) } @@ -2856,7 +2856,7 @@ func TestContext2Apply_moduleOrphanInheritAlias(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2919,7 +2919,7 @@ func TestContext2Apply_moduleOrphanProvider(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2959,7 +2959,7 @@ func TestContext2Apply_moduleOrphanGrandchildProvider(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3128,7 +3128,7 @@ func TestContext2Apply_moduleProviderCloseNested(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3165,7 +3165,7 @@ func TestContext2Apply_moduleVarRefExisting(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo","foo":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3293,7 +3293,7 @@ func TestContext2Apply_moduleTarget(t *testing.T) { module.A: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance @@ -3303,7 +3303,7 @@ module.A: module.B: aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance @@ -4450,7 +4450,7 @@ func TestContext2Apply_provisionerFail_createBeforeDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","require_new":"abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4489,7 +4489,7 @@ func TestContext2Apply_error_createBeforeDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "require_new": "abc","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4535,7 +4535,7 @@ func TestContext2Apply_errorDestroy_createBeforeDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar", "require_new": "abc"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4593,7 +4593,7 @@ func TestContext2Apply_multiDepose_createBeforeDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) p.PlanResourceChangeFn = testDiffFn @@ -4644,7 +4644,7 @@ func TestContext2Apply_multiDepose_createBeforeDestroy(t *testing.T) { checkStateString(t, state, ` aws_instance.web: (1 deposed) ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = yes Deposed ID 1 = foo `) @@ -4739,7 +4739,7 @@ aws_instance.web: (1 deposed) checkStateString(t, state, ` aws_instance.web: (1 deposed) ID = qux - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = qux Deposed ID 1 = bar `) @@ -4772,7 +4772,7 @@ aws_instance.web: (1 deposed) checkStateString(t, state, ` aws_instance.web: ID = quux - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = quux `) } @@ -4811,7 +4811,7 @@ func TestContext2Apply_provisionerFailContinue(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance `) @@ -4882,7 +4882,7 @@ func TestContext2Apply_provisionerDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4929,7 +4929,7 @@ func TestContext2Apply_provisionerDestroyFail(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4952,7 +4952,7 @@ func TestContext2Apply_provisionerDestroyFail(t *testing.T) { checkStateString(t, state, ` aws_instance.foo["a"]: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar `) @@ -4993,7 +4993,7 @@ func TestContext2Apply_provisionerDestroyFailContinue(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5060,7 +5060,7 @@ func TestContext2Apply_provisionerDestroyFailContinueFail(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5085,7 +5085,7 @@ func TestContext2Apply_provisionerDestroyFailContinueFail(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] `) // Verify apply was invoked @@ -5126,7 +5126,7 @@ func TestContext2Apply_provisionerDestroyTainted(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5159,7 +5159,7 @@ func TestContext2Apply_provisionerDestroyTainted(t *testing.T) { checkStateString(t, state, ` aws_instance.foo["a"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance `) @@ -5572,7 +5572,7 @@ func TestContext2Apply_outputDiffVars(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5793,7 +5793,7 @@ func TestContext2Apply_destroyNestedModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5831,7 +5831,7 @@ func TestContext2Apply_destroyDeeplyNestedModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6230,7 +6230,7 @@ func TestContext2Apply_destroyOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -6268,7 +6268,7 @@ func TestContext2Apply_destroyTaintedProvisioner(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6403,7 +6403,7 @@ func TestContext2Apply_errorDestroy(t *testing.T) { expected := strings.TrimSpace(` test_thing.foo: ID = baz - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] `) // test_thing.foo is still here, even though provider returned no new state along with its error if actual != expected { t.Fatalf("expected:\n%s\n\ngot:\n%s", expected, actual) @@ -6570,7 +6570,7 @@ func TestContext2Apply_errorPartial(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6654,7 +6654,7 @@ func TestContext2Apply_hookOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6893,7 +6893,7 @@ func TestContext2Apply_taintX(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"baz","num": "2", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6939,7 +6939,7 @@ func TestContext2Apply_taintDep(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"baz","num": "2", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -6948,7 +6948,7 @@ func TestContext2Apply_taintDep(t *testing.T) { AttrsJSON: []byte(`{"id":"bar","num": "2", "type": "aws_instance", "foo": "baz"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6990,7 +6990,7 @@ func TestContext2Apply_taintDepRequiresNew(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"baz","num": "2", "type": "aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -6999,7 +6999,7 @@ func TestContext2Apply_taintDepRequiresNew(t *testing.T) { AttrsJSON: []byte(`{"id":"bar","num": "2", "type": "aws_instance", "foo": "baz"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -7061,7 +7061,7 @@ func TestContext2Apply_targeted(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -7096,15 +7096,15 @@ func TestContext2Apply_targetedCount(t *testing.T) { checkStateString(t, state, ` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance `) } @@ -7138,7 +7138,7 @@ func TestContext2Apply_targetedCountIndex(t *testing.T) { checkStateString(t, state, ` aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance `) } @@ -7156,7 +7156,7 @@ func TestContext2Apply_targetedDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetOutputValue("out", cty.StringVal("bar"), false) @@ -7167,7 +7167,7 @@ func TestContext2Apply_targetedDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-bcd345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -7241,7 +7241,7 @@ func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-bcd345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -7250,7 +7250,7 @@ func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { AttrsJSON: []byte(`{"id":"i-abc123"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -7291,7 +7291,7 @@ func TestContext2Apply_targetedDestroyModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-bcd345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -7299,7 +7299,7 @@ func TestContext2Apply_targetedDestroyModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) child.SetResourceInstanceCurrent( @@ -7308,7 +7308,7 @@ func TestContext2Apply_targetedDestroyModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-bcd345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -7316,7 +7316,7 @@ func TestContext2Apply_targetedDestroyModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -7343,15 +7343,15 @@ func TestContext2Apply_targetedDestroyModule(t *testing.T) { checkStateString(t, state, ` aws_instance.bar: ID = i-abc123 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo: ID = i-bcd345 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] module.child: aws_instance.bar: ID = i-abc123 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] `) } @@ -7374,32 +7374,32 @@ func TestContext2Apply_targetedDestroyCountIndex(t *testing.T) { root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, foo, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, foo, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, foo, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[0]").Resource, bar, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[1]").Resource, bar, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[2]").Resource, bar, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -7429,16 +7429,16 @@ func TestContext2Apply_targetedDestroyCountIndex(t *testing.T) { checkStateString(t, state, ` aws_instance.bar.0: ID = i-abc123 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.bar.2: ID = i-abc123 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo.0: ID = i-bcd345 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo.1: ID = i-bcd345 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] `) } @@ -7479,12 +7479,12 @@ func TestContext2Apply_targetedModule(t *testing.T) { module.child: aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -7524,7 +7524,7 @@ func TestContext2Apply_targetedModuleDep(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance @@ -7534,7 +7534,7 @@ aws_instance.foo: module.child: aws_instance.mod: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Outputs: @@ -7586,7 +7586,7 @@ child2_id = foo module.child2: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Outputs: @@ -7631,7 +7631,7 @@ func TestContext2Apply_targetedModuleResource(t *testing.T) { module.child: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -7650,7 +7650,7 @@ func TestContext2Apply_targetedResourceOrphanModule(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -8176,7 +8176,7 @@ func TestContext2Apply_issue5254(t *testing.T) { expected := strings.TrimSpace(` template_file.child: ID = foo - provider = provider["registry.opentofu.org/opentofu/template"] + provider = provider["registry.opentofu.org/hashicorp/template"] __template_requires_new = true template = Hi type = template_file @@ -8185,7 +8185,7 @@ template_file.child: template_file.parent template_file.parent.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/template"] + provider = provider["registry.opentofu.org/hashicorp/template"] template = Hi type = template_file `) @@ -8208,7 +8208,7 @@ func TestContext2Apply_targetedWithTaintedInState(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"ifailedprovisioners"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -8253,11 +8253,11 @@ func TestContext2Apply_targetedWithTaintedInState(t *testing.T) { expected := strings.TrimSpace(` aws_instance.iambeingadded: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.ifailedprovisioners: (tainted) ID = ifailedprovisioners - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] `) if actual != expected { t.Fatalf("expected state: \n%s\ngot: \n%s", expected, actual) @@ -8306,7 +8306,7 @@ func TestContext2Apply_ignoreChangesCreate(t *testing.T) { expected := strings.TrimSpace(` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] required_field = set type = aws_instance `) @@ -8341,7 +8341,7 @@ func TestContext2Apply_ignoreChangesWithDep(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123","ami":"ami-abcd1234"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -8349,7 +8349,7 @@ func TestContext2Apply_ignoreChangesWithDep(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-bcd234","ami":"i-bcd234"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_eip.foo[0]").Resource, @@ -8367,7 +8367,7 @@ func TestContext2Apply_ignoreChangesWithDep(t *testing.T) { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_eip.foo[1]").Resource, @@ -8385,7 +8385,7 @@ func TestContext2Apply_ignoreChangesWithDep(t *testing.T) { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -8446,7 +8446,7 @@ func TestContext2Apply_ignoreChangesAll(t *testing.T) { expected := strings.TrimSpace(` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] required_field = set type = aws_instance `) @@ -8738,7 +8738,7 @@ func TestContext2Apply_targetedModuleRecursive(t *testing.T) { module.child.subchild: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance `) @@ -8784,7 +8784,7 @@ func TestContext2Apply_destroyWithLocals(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetOutputValue("name", cty.StringVal("test-bar"), false) @@ -8879,7 +8879,7 @@ func TestContext2Apply_destroyWithProviders(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"].baz`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"].baz`), ) ctx := testContext2(t, &ContextOpts{ @@ -8894,7 +8894,7 @@ func TestContext2Apply_destroyWithProviders(t *testing.T) { } // correct the state - state.Modules["module.mod.module.removed"].Resources["aws_instance.child"].ProviderConfig = mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"].bar`) + state.Modules["module.mod.module.removed"].Resources["aws_instance.child"].ProviderConfig = mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"].bar`) ctx = testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -8933,7 +8933,7 @@ func TestContext2Apply_providersFromState(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) aliasedProviderState := states.NewState() @@ -8944,7 +8944,7 @@ func TestContext2Apply_providersFromState(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"].bar`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"].bar`), ) moduleProviderState := states.NewState() @@ -8955,7 +8955,7 @@ func TestContext2Apply_providersFromState(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`module.child.provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`module.child.provider["registry.opentofu.org/hashicorp/aws"]`), ) for _, tc := range []struct { @@ -9034,7 +9034,7 @@ func TestContext2Apply_plannedInterpolatedCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -9084,7 +9084,7 @@ func TestContext2Apply_plannedDestroyInterpolatedCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.a[1]").Resource, @@ -9092,7 +9092,7 @@ func TestContext2Apply_plannedDestroyInterpolatedCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetOutputValue("out", cty.ListVal([]cty.Value{cty.StringVal("foo"), cty.StringVal("foo")}), false) @@ -9147,7 +9147,7 @@ func TestContext2Apply_scaleInMultivarRef(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.two").Resource, @@ -9155,7 +9155,7 @@ func TestContext2Apply_scaleInMultivarRef(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -10268,7 +10268,7 @@ func TestContext2Apply_ProviderMeta_plan_setNoSchema(t *testing.T) { var rootErr, subErr bool errorSummary := "The resource test_%s.bar belongs to a provider that doesn't support provider_meta blocks" for _, diag := range diags { - if diag.Description().Summary != "Provider registry.opentofu.org/opentofu/test doesn't support provider_meta" { + if diag.Description().Summary != "Provider registry.opentofu.org/hashicorp/test doesn't support provider_meta" { t.Errorf("Unexpected error: %+v", diag.Description()) } switch diag.Description().Detail { @@ -10462,7 +10462,7 @@ func TestContext2Apply_ProviderMeta_refresh_setNoSchema(t *testing.T) { var rootErr, subErr bool errorSummary := "The resource test_%s.bar belongs to a provider that doesn't support provider_meta blocks" for _, diag := range diags { - if diag.Description().Summary != "Provider registry.opentofu.org/opentofu/test doesn't support provider_meta" { + if diag.Description().Summary != "Provider registry.opentofu.org/hashicorp/test doesn't support provider_meta" { t.Errorf("Unexpected error: %+v", diag.Description()) } switch diag.Description().Detail { @@ -10743,7 +10743,7 @@ func TestContext2Apply_ProviderMeta_refreshdata_setNoSchema(t *testing.T) { var rootErr, subErr bool errorSummary := "The resource data.test_%s.foo belongs to a provider that doesn't support provider_meta blocks" for _, diag := range diags { - if diag.Description().Summary != "Provider registry.opentofu.org/opentofu/test doesn't support provider_meta" { + if diag.Description().Summary != "Provider registry.opentofu.org/hashicorp/test doesn't support provider_meta" { t.Errorf("Unexpected error: %+v", diag.Description()) } switch diag.Description().Detail { @@ -10873,7 +10873,7 @@ output "out" { module.mod1["a"]: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = default type = aws_instance @@ -10883,7 +10883,7 @@ module.mod1["a"]: module.mod2: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance @@ -11191,7 +11191,7 @@ locals { Dependencies: []addrs.ConfigResource{}, CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_instance.a[1]").Resource, @@ -11201,7 +11201,7 @@ locals { Dependencies: []addrs.ConfigResource{}, CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_instance.b").Resource, @@ -11211,7 +11211,7 @@ locals { Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_instance.a")}, CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_instance.c").Resource, @@ -11224,7 +11224,7 @@ locals { }, CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) p := testProvider("test") @@ -12627,7 +12627,7 @@ func TestContext2Apply_errorRestorePrivateData(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), Private: []byte("private"), - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -12672,7 +12672,7 @@ func TestContext2Apply_errorRestoreStatus(t *testing.T) { AttrsJSON: []byte(`{"test_string":"foo"}`), Private: []byte("private"), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.b")}, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ diff --git a/internal/tofu/context_import_test.go b/internal/tofu/context_import_test.go index eb690e3dfb..ea56288fff 100644 --- a/internal/tofu/context_import_test.go +++ b/internal/tofu/context_import_test.go @@ -172,7 +172,7 @@ func TestContextImport_collision(t *testing.T) { actual := strings.TrimSpace(state.String()) expected := `aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"]` + provider = provider["registry.opentofu.org/hashicorp/aws"]` if actual != expected { t.Fatalf("bad: \n%s", actual) @@ -439,7 +439,7 @@ func TestContextImport_providerConfigResources(t *testing.T) { if !diags.HasErrors() { t.Fatal("should error") } - if got, want := diags.Err().Error(), `The configuration for provider["registry.opentofu.org/opentofu/aws"] depends on values that cannot be determined until apply.`; !strings.Contains(got, want) { + if got, want := diags.Err().Error(), `The configuration for provider["registry.opentofu.org/hashicorp/aws"] depends on values that cannot be determined until apply.`; !strings.Contains(got, want) { t.Errorf("wrong error\n got: %s\nwant: %s", got, want) } } @@ -1055,22 +1055,22 @@ func TestContextImport_33572(t *testing.T) { const testImportStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportStrWithDataSource = ` data.aws_data_source.bar: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportCountIndexStr = ` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportModuleStr = ` @@ -1078,7 +1078,7 @@ const testImportModuleStr = ` module.child[0]: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportModuleDepth2Str = ` @@ -1086,33 +1086,33 @@ const testImportModuleDepth2Str = ` module.child[0].nested: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportMultiStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance_thing.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportMultiSameStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance_thing.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance_thing.foo-1: ID = qux - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testImportRefreshStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar ` diff --git a/internal/tofu/context_plan2_test.go b/internal/tofu/context_plan2_test.go index 662e1e05ee..d5fe942666 100644 --- a/internal/tofu/context_plan2_test.go +++ b/internal/tofu/context_plan2_test.go @@ -77,7 +77,7 @@ resource "test_object" "a" { s.SetResourceInstanceCurrent(addr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"previous_run"}`), Status: states.ObjectTainted, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -205,7 +205,7 @@ data "test_data_source" "foo" { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -248,7 +248,7 @@ output "out" { s.SetResourceInstanceCurrent(mustResourceInstanceAddr(`data.test_object.a["old"]`), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"test_string":"foo"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -292,7 +292,7 @@ module "mod" { terraform { required_providers { test = { - source = "registry.opentofu.org/opentofu/test" + source = "registry.opentofu.org/hashicorp/test" configuration_aliases = [ test.x ] } } @@ -371,21 +371,21 @@ resource "test_resource" "b" { &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"a"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) s.SetResourceInstanceCurrent( mustResourceInstanceAddr(`module.mod["old"].test_resource.b`), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"b","value":"d"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) s.SetResourceInstanceCurrent( oldDataAddr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"d"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) }) @@ -670,7 +670,7 @@ data "test_data_source" "a" { // configuration change would make this object become valid. AttrsJSON: []byte(`{"id":"boop","valid":false}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) }) @@ -882,14 +882,14 @@ resource "test_resource" "b" { // configuration change would make this object become valid. AttrsJSON: []byte(`{"id":"main","valid":false}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) s.SetResourceInstanceCurrent( managedAddrB, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"checker","valid":true}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) }) @@ -983,7 +983,7 @@ resource "test_object" "a" { s.SetResourceInstanceCurrent(addr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -1083,7 +1083,7 @@ resource "test_object" "a" { s.SetResourceInstanceCurrent(addr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -1223,7 +1223,7 @@ provider "test" { s.SetResourceInstanceCurrent(addr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"test_string":"foo"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -1259,7 +1259,7 @@ func TestContext2Plan_movedResourceBasic(t *testing.T) { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1323,11 +1323,11 @@ func TestContext2Plan_movedResourceCollision(t *testing.T) { s.SetResourceInstanceCurrent(addrNoKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addrZeroKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1429,11 +1429,11 @@ func TestContext2Plan_movedResourceCollisionDestroy(t *testing.T) { s.SetResourceInstanceCurrent(addrNoKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addrZeroKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1541,7 +1541,7 @@ func TestContext2Plan_movedResourceUntargeted(t *testing.T) { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1729,12 +1729,12 @@ resource "test_object" "b" { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addrB, &states.ResourceInstanceObjectSrc{ // old_list is no longer in the schema AttrsJSON: []byte(`{"old_list":["used to be","a list here"]}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1787,7 +1787,7 @@ func TestContext2Plan_movedResourceRefreshOnly(t *testing.T) { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1859,7 +1859,7 @@ func TestContext2Plan_refreshOnlyMode(t *testing.T) { s.SetResourceInstanceCurrent(addr, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -1995,7 +1995,7 @@ func TestContext2Plan_refreshOnlyMode_deposed(t *testing.T) { s.SetResourceInstanceDeposed(addr, deposedKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -2132,11 +2132,11 @@ func TestContext2Plan_refreshOnlyMode_orphan(t *testing.T) { s.SetResourceInstanceCurrent(addr.Instance(addrs.IntKey(0)), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addr.Instance(addrs.IntKey(1)), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"arg":"before"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -2348,7 +2348,7 @@ data "test_data_source" "foo" { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_instance.bar").Resource, @@ -2362,7 +2362,7 @@ data "test_data_source" "foo" { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2406,11 +2406,11 @@ func TestContext2Plan_forceReplace(t *testing.T) { s.SetResourceInstanceCurrent(addrA, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addrB, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -2474,11 +2474,11 @@ func TestContext2Plan_forceReplaceIncompleteAddr(t *testing.T) { s.SetResourceInstanceCurrent(addr0, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) s.SetResourceInstanceCurrent(addr1, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -2593,7 +2593,7 @@ output "output" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo","value":"a"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) one.SetResourceInstanceCurrent( mustResourceInstanceAddr(`data.test_data_source.d`).Resource, @@ -2601,7 +2601,7 @@ output "output" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"data"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) two.SetResourceInstanceCurrent( mustResourceInstanceAddr(`test_resource.x`).Resource, @@ -2609,7 +2609,7 @@ output "output" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo","value":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) two.SetResourceInstanceCurrent( mustResourceInstanceAddr(`data.test_data_source.d`).Resource, @@ -2617,7 +2617,7 @@ output "output" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"data"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2685,7 +2685,7 @@ func TestContext2Plan_moduleExpandOrphansResourceInstance(t *testing.T) { s.SetResourceInstanceCurrent(addrNoKey, &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p := simpleMockProvider() @@ -2860,7 +2860,7 @@ resource "test_resource" "a" { s.SetResourceInstanceCurrent(mustResourceInstanceAddr("test_resource.a"), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"value":"boop","output":"blorp"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) _, diags := ctx.Plan(m, state, &PlanOpts{ Mode: plans.RefreshOnlyMode, @@ -2929,7 +2929,7 @@ resource "test_resource" "a" { s.SetResourceInstanceCurrent(mustResourceInstanceAddr("test_resource.a"), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"value":"boop","output":"blorp"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p.ReadResourceFn = func(req providers.ReadResourceRequest) (resp providers.ReadResourceResponse) { newVal, err := cty.Transform(req.PriorState, func(path cty.Path, v cty.Value) (cty.Value, error) { @@ -2982,7 +2982,7 @@ resource "test_resource" "a" { s.SetResourceInstanceCurrent(mustResourceInstanceAddr("test_resource.a"), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"value":"boop","output":"blorp"}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) p.ReadResourceFn = func(req providers.ReadResourceRequest) (resp providers.ReadResourceResponse) { newVal, err := cty.Transform(req.PriorState, func(path cty.Path, v cty.Value) (cty.Value, error) { @@ -3612,7 +3612,7 @@ resource "test_object" "b" { AttrsJSON: []byte(`{"test_string":"old"}`), Status: states.ObjectReady, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) s.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.b[0]"), @@ -3620,7 +3620,7 @@ resource "test_object" "b" { AttrsJSON: []byte(`{}`), Status: states.ObjectReady, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) }) @@ -3699,7 +3699,7 @@ data "test_object" "a" { s.SetResourceInstanceCurrent(mustResourceInstanceAddr(`data.test_object.a`), &states.ResourceInstanceObjectSrc{ AttrsJSON: []byte(`{"id":"old","obj":[{"args":["string"]}]}`), Status: states.ObjectReady, - }, mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`)) + }, mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`)) }) ctx := testContext2(t, &ContextOpts{ @@ -3739,7 +3739,7 @@ resource "test_object" "b" { AttrsJSON: []byte(`{"test_string":"a"}`), Dependencies: []addrs.ConfigResource{mustResourceInstanceAddr("test_object.b").ContainingResource().Config()}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.b").Resource, @@ -3747,7 +3747,7 @@ resource "test_object" "b" { Status: states.ObjectTainted, AttrsJSON: []byte(`{"test_string":"b"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3860,7 +3860,7 @@ resource "test_object" "b" { AttrsJSON: []byte(`{"test_string":"old"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.a[0]").Resource, @@ -3869,7 +3869,7 @@ resource "test_object" "b" { AttrsJSON: []byte(`{"test_string":"current"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4039,7 +4039,7 @@ output "out" { AttrsJSON: []byte(`{"test_string":"current"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) mod.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.a[1]").Resource, @@ -4048,7 +4048,7 @@ output "out" { AttrsJSON: []byte(`{"test_string":"current"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4182,7 +4182,7 @@ resource "test_object" "a" { AttrsJSON: []byte(`{"map":{"prior":"value"}}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -4329,7 +4329,7 @@ import { Status: states.ObjectReady, AttrsJSON: []byte(`{"test_string":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) plan, diags := ctx.Plan(m, state, DefaultPlanOpts) diff --git a/internal/tofu/context_plan_test.go b/internal/tofu/context_plan_test.go index 631dea9ab4..f4ddcce840 100644 --- a/internal/tofu/context_plan_test.go +++ b/internal/tofu/context_plan_test.go @@ -91,7 +91,7 @@ func TestContext2Plan_createBefore_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.foo").Resource, @@ -100,7 +100,7 @@ func TestContext2Plan_createBefore_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -118,7 +118,7 @@ func TestContext2Plan_createBefore_deposed(t *testing.T) { expectedState := strings.TrimSpace(` aws_instance.foo: (1 deposed) ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Deposed ID 1 = foo`) @@ -806,7 +806,7 @@ func TestContext2Plan_moduleOrphans(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -856,7 +856,7 @@ func TestContext2Plan_moduleOrphans(t *testing.T) { module.child: aws_instance.foo: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"]` + provider = provider["registry.opentofu.org/hashicorp/aws"]` if plan.PriorState.String() != expectedState { t.Fatalf("\nexpected state: %q\n\ngot: %q", expectedState, plan.PriorState.String()) @@ -878,7 +878,7 @@ func TestContext2Plan_moduleOrphansWithProvisioner(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"top","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child1 := state.EnsureModule(addrs.RootModuleInstance.Child("parent", addrs.NoKey).Child("child1", addrs.NoKey)) child1.SetResourceInstanceCurrent( @@ -887,7 +887,7 @@ func TestContext2Plan_moduleOrphansWithProvisioner(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child2 := state.EnsureModule(addrs.RootModuleInstance.Child("parent", addrs.NoKey).Child("child2", addrs.NoKey)) child2.SetResourceInstanceCurrent( @@ -896,7 +896,7 @@ func TestContext2Plan_moduleOrphansWithProvisioner(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -947,18 +947,18 @@ func TestContext2Plan_moduleOrphansWithProvisioner(t *testing.T) { expectedState := `aws_instance.top: ID = top - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance module.parent.child1: aws_instance.foo: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance module.parent.child2: aws_instance.foo: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance` if expectedState != plan.PriorState.String() { @@ -1372,7 +1372,7 @@ func TestContext2Plan_preventDestroy_bad(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1405,7 +1405,7 @@ func TestContext2Plan_preventDestroy_good(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1436,7 +1436,7 @@ func TestContext2Plan_preventDestroy_countBad(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -1444,7 +1444,7 @@ func TestContext2Plan_preventDestroy_countBad(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1486,7 +1486,7 @@ func TestContext2Plan_preventDestroy_countGood(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -1494,7 +1494,7 @@ func TestContext2Plan_preventDestroy_countGood(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc345"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1537,7 +1537,7 @@ func TestContext2Plan_preventDestroy_countGoodNoChange(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123","current":"0","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1568,7 +1568,7 @@ func TestContext2Plan_preventDestroy_destroyPlan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -1965,7 +1965,7 @@ func TestContext2Plan_dataResourceBecomesComputed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123","foo":"baz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2587,7 +2587,7 @@ func TestContext2Plan_countDecreaseToOne(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"foo","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -2595,7 +2595,7 @@ func TestContext2Plan_countDecreaseToOne(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -2603,7 +2603,7 @@ func TestContext2Plan_countDecreaseToOne(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2659,15 +2659,15 @@ func TestContext2Plan_countDecreaseToOne(t *testing.T) { expectedState := `aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo.1: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo.2: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"]` + provider = provider["registry.opentofu.org/hashicorp/aws"]` if plan.PriorState.String() != expectedState { t.Fatalf("epected state:\n%q\n\ngot state:\n%q\n", expectedState, plan.PriorState.String()) @@ -2687,7 +2687,7 @@ func TestContext2Plan_countIncreaseFromNotSet(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","type":"aws_instance","foo":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2764,7 +2764,7 @@ func TestContext2Plan_countIncreaseFromOne(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"foo","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2847,7 +2847,7 @@ func TestContext2Plan_countIncreaseFromOneCorrupted(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"foo","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -2855,7 +2855,7 @@ func TestContext2Plan_countIncreaseFromOneCorrupted(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo":"foo","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -2955,7 +2955,7 @@ func TestContext2Plan_countIncreaseWithSplatReference(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","name":"foo 0"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -2963,7 +2963,7 @@ func TestContext2Plan_countIncreaseWithSplatReference(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","name":"foo 1"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[0]").Resource, @@ -2971,7 +2971,7 @@ func TestContext2Plan_countIncreaseWithSplatReference(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo_name":"foo 0"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[1]").Resource, @@ -2979,7 +2979,7 @@ func TestContext2Plan_countIncreaseWithSplatReference(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","foo_name":"foo 1"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3119,7 +3119,7 @@ func TestContext2Plan_destroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.two").Resource, @@ -3127,7 +3127,7 @@ func TestContext2Plan_destroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"baz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3180,7 +3180,7 @@ func TestContext2Plan_moduleDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) child.SetResourceInstanceCurrent( @@ -3189,7 +3189,7 @@ func TestContext2Plan_moduleDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3242,7 +3242,7 @@ func TestContext2Plan_moduleDestroyCycle(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"a"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) bModule := state.EnsureModule(addrs.RootModuleInstance.Child("b_module", addrs.NoKey)) bModule.SetResourceInstanceCurrent( @@ -3251,7 +3251,7 @@ func TestContext2Plan_moduleDestroyCycle(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"b"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3304,7 +3304,7 @@ func TestContext2Plan_moduleDestroyMultivar(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar0"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -3312,7 +3312,7 @@ func TestContext2Plan_moduleDestroyMultivar(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar1"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3425,7 +3425,7 @@ func TestContext2Plan_diffVar(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","num":"2","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3540,7 +3540,7 @@ func TestContext2Plan_orphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3622,7 +3622,7 @@ func TestContext2Plan_state(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -3724,7 +3724,7 @@ func TestContext2Plan_requiresReplace(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"v":"hello"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3782,7 +3782,7 @@ func TestContext2Plan_taint(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","num":"2","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar").Resource, @@ -3790,7 +3790,7 @@ func TestContext2Plan_taint(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"baz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3868,7 +3868,7 @@ func TestContext2Plan_taintIgnoreChanges(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"foo","vars":"foo","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -3932,7 +3932,7 @@ func TestContext2Plan_taintDestroyInterpolatedCountRace(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -3940,7 +3940,7 @@ func TestContext2Plan_taintDestroyInterpolatedCountRace(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -3948,7 +3948,7 @@ func TestContext2Plan_taintDestroyInterpolatedCountRace(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) for i := 0; i < 100; i++ { @@ -4170,7 +4170,7 @@ func TestContext2Plan_targetedOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-789xyz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.nottargeted").Resource, @@ -4178,7 +4178,7 @@ func TestContext2Plan_targetedOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4236,7 +4236,7 @@ func TestContext2Plan_targetedModuleOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-789xyz"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.nottargeted").Resource, @@ -4244,7 +4244,7 @@ func TestContext2Plan_targetedModuleOrphan(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"i-abc123"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4392,7 +4392,7 @@ func TestContext2Plan_targetedOverTen(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(attrs), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) } @@ -4490,7 +4490,7 @@ func TestContext2Plan_ignoreChanges(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","ami":"ami-abcd1234","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4562,7 +4562,7 @@ func TestContext2Plan_ignoreChangesWildcard(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","ami":"ami-abcd1234","instance":"t2.micro","type":"aws_instance","foo":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -4684,7 +4684,7 @@ func TestContext2Plan_ignoreChangesSensitive(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"bar","ami":"ami-abcd1234","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5075,7 +5075,7 @@ func TestContext2Plan_ignoreChangesWithFlatmaps(t *testing.T) { "lst":["j"] }`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -5146,7 +5146,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo0","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -5154,7 +5154,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo1","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[0]").Resource, @@ -5163,7 +5163,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { AttrsJSON: []byte(`{"id":"bar0","type":"aws_instance"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.bar[1]").Resource, @@ -5172,7 +5172,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { AttrsJSON: []byte(`{"id":"bar1","type":"aws_instance"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.baz[0]").Resource, @@ -5181,7 +5181,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { AttrsJSON: []byte(`{"id":"baz0","type":"aws_instance"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.bar")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.baz[1]").Resource, @@ -5190,7 +5190,7 @@ func TestContext2Plan_resourceNestedCount(t *testing.T) { AttrsJSON: []byte(`{"id":"baz1","type":"aws_instance"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("aws_instance.bar")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -5811,7 +5811,7 @@ resource "aws_instance" "foo" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"child","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) state.EnsureModule(addrs.RootModuleInstance.Child("mod", addrs.IntKey(1))).SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo").Resource, @@ -5819,7 +5819,7 @@ resource "aws_instance" "foo" { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"child","type":"aws_instance"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) p := testProvider("aws") @@ -6098,7 +6098,7 @@ data "test_data_source" "foo" {} Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"data_id", "foo":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6147,7 +6147,7 @@ resource "test_instance" "b" { AttrsJSON: []byte(`{"id":"a0"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_instance.b").Resource, @@ -6156,7 +6156,7 @@ resource "test_instance" "b" { AttrsJSON: []byte(`{"id":"b"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_instance.a")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6443,7 +6443,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"a","type":"test_instance"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6615,7 +6615,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"a","data":"foo"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6678,7 +6678,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"a","data":"foo"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6736,7 +6736,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"orig","data":"orig"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -6775,7 +6775,7 @@ resource "test_instance" "a" { AttrsJSON: []byte(`{"id":"a","data":"foo"}`), Dependencies: []addrs.ConfigResource{}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) // the provider for this data source is no longer in the config, but that diff --git a/internal/tofu/context_refresh_test.go b/internal/tofu/context_refresh_test.go index fe14001239..7860660f53 100644 --- a/internal/tofu/context_refresh_test.go +++ b/internal/tofu/context_refresh_test.go @@ -33,7 +33,7 @@ func TestContext2Refresh(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo","foo":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) ctx := testContext2(t, &ContextOpts{ @@ -256,10 +256,10 @@ func TestContext2Refresh_targeted(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) m := testModule(t, "refresh-targeted") ctx := testContext2(t, &ContextOpts{ @@ -336,12 +336,12 @@ func TestContext2Refresh_targetedCount(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[0]", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[1]", `{"id":"i-cde567"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[2]", `{"id":"i-cde789"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[0]", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[1]", `{"id":"i-cde567"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[2]", `{"id":"i-cde789"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) m := testModule(t, "refresh-targeted-count") ctx := testContext2(t, &ContextOpts{ @@ -426,12 +426,12 @@ func TestContext2Refresh_targetedCountIndex(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[0]", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[1]", `{"id":"i-cde567"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.me[2]", `{"id":"i-cde789"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_vpc.metoo", `{"id":"vpc-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.notme", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[0]", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[1]", `{"id":"i-cde567"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.me[2]", `{"id":"i-cde789"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_elb.meneither", `{"id":"lb-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) m := testModule(t, "refresh-targeted-count") ctx := testContext2(t, &ContextOpts{ @@ -506,7 +506,7 @@ func TestContext2Refresh_delete(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -560,7 +560,7 @@ func TestContext2Refresh_hook(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Hooks: []Hook{h}, @@ -586,9 +586,9 @@ func TestContext2Refresh_modules(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceTainted(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceTainted(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) - testSetResourceInstanceCurrent(child, "aws_instance.web", `{"id":"baz"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(child, "aws_instance.web", `{"id":"baz"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -720,7 +720,7 @@ func TestContext2Refresh_output(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo","foo":"bar"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo","foo":"bar"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) root.SetOutputValue("foo", cty.StringVal("foo"), false) ctx := testContext2(t, &ContextOpts{ @@ -769,7 +769,7 @@ func TestContext2Refresh_outputPartial(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.foo", `{}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.foo", `{}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -795,7 +795,7 @@ func TestContext2Refresh_stateBasic(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1000,7 +1000,7 @@ func TestContext2Refresh_tainted(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceTainted(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceTainted(root, "aws_instance.web", `{"id":"bar"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1041,7 +1041,7 @@ func TestContext2Refresh_unknownProvider(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) c, diags := NewContext(&ContextOpts{ Providers: map[addrs.Provider]providers.Factory{}, @@ -1082,7 +1082,7 @@ func TestContext2Refresh_vars(t *testing.T) { m := testModule(t, "refresh-vars") state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.web", `{"id":"foo"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1163,7 +1163,7 @@ func TestContext2Refresh_orphanModule(t *testing.T) { {Module: addrs.Module{"module.child"}}, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) child := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey)) child.SetResourceInstanceCurrent( @@ -1173,10 +1173,10 @@ func TestContext2Refresh_orphanModule(t *testing.T) { AttrsJSON: []byte(`{"id":"i-bcd23"}`), Dependencies: []addrs.ConfigResource{{Module: addrs.Module{"module.grandchild"}}}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) grandchild := state.EnsureModule(addrs.RootModuleInstance.Child("child", addrs.NoKey).Child("grandchild", addrs.NoKey)) - testSetResourceInstanceCurrent(grandchild, "aws_instance.baz", `{"id":"i-cde345"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(grandchild, "aws_instance.baz", `{"id":"i-cde345"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1237,7 +1237,7 @@ func TestContext2Refresh_updateProviderInState(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.bar", `{"id":"foo"}`, `provider["registry.opentofu.org/opentofu/aws"].baz`) + testSetResourceInstanceCurrent(root, "aws_instance.bar", `{"id":"foo"}`, `provider["registry.opentofu.org/hashicorp/aws"].baz`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1248,7 +1248,7 @@ func TestContext2Refresh_updateProviderInState(t *testing.T) { expected := strings.TrimSpace(` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"].foo`) + provider = provider["registry.opentofu.org/hashicorp/aws"].foo`) s, diags := ctx.Refresh(m, state, &PlanOpts{Mode: plans.NormalMode}) if diags.HasErrors() { @@ -1336,7 +1336,7 @@ func TestContext2Refresh_schemaUpgradeFlatmap(t *testing.T) { want := strings.TrimSpace(` test_thing.bar: ID = - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] name = foo `) if got != want { @@ -1416,7 +1416,7 @@ func TestContext2Refresh_schemaUpgradeJSON(t *testing.T) { want := strings.TrimSpace(` test_thing.bar: ID = - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] name = foo `) if got != want { @@ -1490,7 +1490,7 @@ func TestContext2Refresh_dataResourceDependsOn(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "test_resource.a", `{"id":"a"}`, `provider["registry.opentofu.org/opentofu/test"]`) + testSetResourceInstanceCurrent(root, "test_resource.a", `{"id":"a"}`, `provider["registry.opentofu.org/hashicorp/test"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ diff --git a/internal/tofu/context_test.go b/internal/tofu/context_test.go index 0a63a77b90..89b2de4e7a 100644 --- a/internal/tofu/context_test.go +++ b/internal/tofu/context_test.go @@ -232,12 +232,12 @@ resource "implicit_thing" "b" { tfdiags.Sourceless( tfdiags.Error, "Missing required provider", - "This configuration requires provider registry.opentofu.org/opentofu/implicit, but that provider isn't available. You may be able to install it automatically by running:\n tofu init", + "This configuration requires provider registry.opentofu.org/hashicorp/implicit, but that provider isn't available. You may be able to install it automatically by running:\n tofu init", ), tfdiags.Sourceless( tfdiags.Error, "Missing required provider", - "This configuration requires provider registry.opentofu.org/opentofu/implicit2, but that provider isn't available. You may be able to install it automatically by running:\n tofu init", + "This configuration requires provider registry.opentofu.org/hashicorp/implicit2, but that provider isn't available. You may be able to install it automatically by running:\n tofu init", ), tfdiags.Sourceless( tfdiags.Error, @@ -1011,18 +1011,18 @@ func logDiagnostics(t *testing.T, diags tfdiags.Diagnostics) { const testContextRefreshModuleStr = ` aws_instance.web: (tainted) ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] module.child: aws_instance.web: ID = new - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` const testContextRefreshOutputStr = ` aws_instance.web: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar Outputs: @@ -1037,5 +1037,5 @@ const testContextRefreshOutputPartialStr = ` const testContextRefreshTaintedStr = ` aws_instance.web: (tainted) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ` diff --git a/internal/tofu/context_validate_test.go b/internal/tofu/context_validate_test.go index 28c5170708..d4350470a8 100644 --- a/internal/tofu/context_validate_test.go +++ b/internal/tofu/context_validate_test.go @@ -660,7 +660,7 @@ func TestContext2Validate_providerConfig_good(t *testing.T) { } } -// In this test there is a mismatch between the provider's fqn (opentofu/test) +// In this test there is a mismatch between the provider's fqn (hashicorp/test) // and it's local name set in required_providers (arbitrary). func TestContext2Validate_requiredProviderConfig(t *testing.T) { m := testModule(t, "validate-required-provider-config") @@ -994,8 +994,8 @@ func TestContext2Validate_targetedDestroy(t *testing.T) { state := states.NewState() root := state.EnsureModule(addrs.RootModuleInstance) - testSetResourceInstanceCurrent(root, "aws_instance.foo", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/opentofu/aws"]`) - testSetResourceInstanceCurrent(root, "aws_instance.bar", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/opentofu/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.foo", `{"id":"i-bcd345"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) + testSetResourceInstanceCurrent(root, "aws_instance.bar", `{"id":"i-abc123"}`, `provider["registry.opentofu.org/hashicorp/aws"]`) ctx := testContext2(t, &ContextOpts{ Providers: map[addrs.Provider]providers.Factory{ @@ -1948,7 +1948,7 @@ func TestContext2Validate_passInheritedProvider(t *testing.T) { terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } @@ -1968,7 +1968,7 @@ module "first" { terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" } } } @@ -1984,7 +1984,7 @@ module "second" { terraform { required_providers { test = { - source = "opentofu/test" + source = "hashicorp/test" configuration_aliases = [test.alias] } } diff --git a/internal/tofu/evaluate_test.go b/internal/tofu/evaluate_test.go index 44864e6664..47336e0491 100644 --- a/internal/tofu/evaluate_test.go +++ b/internal/tofu/evaluate_test.go @@ -247,7 +247,7 @@ func TestEvaluatorGetResource(t *testing.T) { }), Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, } @@ -494,7 +494,7 @@ func TestEvaluatorGetResource_changes(t *testing.T) { Name: "foo", Provider: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "test", }, }, diff --git a/internal/tofu/graph_builder_apply_test.go b/internal/tofu/graph_builder_apply_test.go index b75841e7f8..fe6bbb5db7 100644 --- a/internal/tofu/graph_builder_apply_test.go +++ b/internal/tofu/graph_builder_apply_test.go @@ -101,7 +101,7 @@ func TestApplyGraphBuilder_depCbd(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -110,7 +110,7 @@ func TestApplyGraphBuilder_depCbd(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) b := &ApplyGraphBuilder{ @@ -267,7 +267,7 @@ func TestApplyGraphBuilder_destroyStateOnly(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -276,7 +276,7 @@ func TestApplyGraphBuilder_destroyStateOnly(t *testing.T) { AttrsJSON: []byte(`{"id":"bar"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("module.child.test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) b := &ApplyGraphBuilder{ @@ -329,7 +329,7 @@ func TestApplyGraphBuilder_destroyCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"B"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -338,7 +338,7 @@ func TestApplyGraphBuilder_destroyCount(t *testing.T) { AttrsJSON: []byte(`{"id":"B"}`), Dependencies: []addrs.ConfigResource{addrA.ContainingResource().Config()}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) b := &ApplyGraphBuilder{ @@ -390,7 +390,7 @@ func TestApplyGraphBuilder_moduleDestroy(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) modB := state.EnsureModule(addrs.RootModuleInstance.Child("B", addrs.NoKey)) modB.SetResourceInstanceCurrent( @@ -400,7 +400,7 @@ func TestApplyGraphBuilder_moduleDestroy(t *testing.T) { AttrsJSON: []byte(`{"id":"foo","value":"foo"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("module.A.test_object.foo")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) b := &ApplyGraphBuilder{ @@ -611,7 +611,7 @@ func TestApplyGraphBuilder_updateFromCBDOrphan(t *testing.T) { AttrsJSON: []byte(`{"id":"a_id"}`), CreateBeforeDestroy: true, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( addrs.Resource{ @@ -633,7 +633,7 @@ func TestApplyGraphBuilder_updateFromCBDOrphan(t *testing.T) { }, }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) b := &ApplyGraphBuilder{ @@ -683,7 +683,7 @@ func TestApplyGraphBuilder_orphanedWithProvider(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"].foo`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"].foo`), ) b := &ApplyGraphBuilder{ @@ -771,20 +771,20 @@ aws_instance.baz (expand) aws_instance.foo aws_instance.foo (expand) aws_instance.foo (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] check.my_check (expand) data.aws_data_source.bar data.aws_data_source.bar (execute checks) data.aws_data_source.bar (expand) data.aws_data_source.bar (expand) - provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] (close) data.aws_data_source.bar root check.my_check (expand) - provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/aws"] (close) ` const testApplyGraphBuilderStr = ` @@ -795,22 +795,22 @@ module.child.test_object.create module.child.test_object.create (expand) module.child.test_object.create (expand) module.child (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] module.child.test_object.other module.child.test_object.other (expand) module.child.test_object.other (expand) module.child.test_object.create -provider["registry.opentofu.org/opentofu/test"] -provider["registry.opentofu.org/opentofu/test"] (close) +provider["registry.opentofu.org/hashicorp/test"] +provider["registry.opentofu.org/hashicorp/test"] (close) module.child.test_object.other test_object.other root module.child (close) - provider["registry.opentofu.org/opentofu/test"] (close) + provider["registry.opentofu.org/hashicorp/test"] (close) test_object.create test_object.create (expand) test_object.create (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_object.other test_object.other (expand) test_object.other (expand) @@ -818,15 +818,15 @@ test_object.other (expand) ` const testApplyGraphBuilderDestroyCountStr = ` -provider["registry.opentofu.org/opentofu/test"] -provider["registry.opentofu.org/opentofu/test"] (close) +provider["registry.opentofu.org/hashicorp/test"] +provider["registry.opentofu.org/hashicorp/test"] (close) test_object.B root - provider["registry.opentofu.org/opentofu/test"] (close) + provider["registry.opentofu.org/hashicorp/test"] (close) test_object.A (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_object.A[1] (destroy) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_object.B test_object.A[1] (destroy) test_object.B (expand) diff --git a/internal/tofu/graph_builder_plan_test.go b/internal/tofu/graph_builder_plan_test.go index c9baa9c0db..6b22817f89 100644 --- a/internal/tofu/graph_builder_plan_test.go +++ b/internal/tofu/graph_builder_plan_test.go @@ -101,15 +101,15 @@ func TestPlanGraphBuilder_dynamicBlock(t *testing.T) { // the graph builders changes. got := strings.TrimSpace(g.String()) want := strings.TrimSpace(` -provider["registry.opentofu.org/opentofu/test"] -provider["registry.opentofu.org/opentofu/test"] (close) +provider["registry.opentofu.org/hashicorp/test"] +provider["registry.opentofu.org/hashicorp/test"] (close) test_thing.c (expand) root - provider["registry.opentofu.org/opentofu/test"] (close) + provider["registry.opentofu.org/hashicorp/test"] (close) test_thing.a (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_thing.b (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_thing.c (expand) test_thing.a (expand) test_thing.b (expand) @@ -157,13 +157,13 @@ func TestPlanGraphBuilder_attrAsBlocks(t *testing.T) { // type "nested" along with an attribute named "nested". got := strings.TrimSpace(g.String()) want := strings.TrimSpace(` -provider["registry.opentofu.org/opentofu/test"] -provider["registry.opentofu.org/opentofu/test"] (close) +provider["registry.opentofu.org/hashicorp/test"] +provider["registry.opentofu.org/hashicorp/test"] (close) test_thing.b (expand) root - provider["registry.opentofu.org/opentofu/test"] (close) + provider["registry.opentofu.org/hashicorp/test"] (close) test_thing.a (expand) - provider["registry.opentofu.org/opentofu/test"] + provider["registry.opentofu.org/hashicorp/test"] test_thing.b (expand) test_thing.a (expand) `) @@ -189,7 +189,7 @@ func TestPlanGraphBuilder_targetModule(t *testing.T) { t.Logf("Graph: %s", g.String()) - testGraphNotContains(t, g, `module.child1.provider["registry.opentofu.org/opentofu/test"]`) + testGraphNotContains(t, g, `module.child1.provider["registry.opentofu.org/hashicorp/test"]`) testGraphNotContains(t, g, "module.child1.test_object.foo") } @@ -231,46 +231,46 @@ aws_instance.web (expand) aws_load_balancer.weblb (expand) aws_instance.web (expand) aws_security_group.firewall (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] local.instance_id (expand) aws_instance.web (expand) openstack_floating_ip.random (expand) - provider["registry.opentofu.org/opentofu/openstack"] + provider["registry.opentofu.org/hashicorp/openstack"] output.instance_id (expand) local.instance_id (expand) -provider["registry.opentofu.org/opentofu/aws"] +provider["registry.opentofu.org/hashicorp/aws"] openstack_floating_ip.random (expand) -provider["registry.opentofu.org/opentofu/aws"] (close) +provider["registry.opentofu.org/hashicorp/aws"] (close) aws_load_balancer.weblb (expand) -provider["registry.opentofu.org/opentofu/openstack"] -provider["registry.opentofu.org/opentofu/openstack"] (close) +provider["registry.opentofu.org/hashicorp/openstack"] +provider["registry.opentofu.org/hashicorp/openstack"] (close) openstack_floating_ip.random (expand) root output.instance_id (expand) - provider["registry.opentofu.org/opentofu/aws"] (close) - provider["registry.opentofu.org/opentofu/openstack"] (close) + provider["registry.opentofu.org/hashicorp/aws"] (close) + provider["registry.opentofu.org/hashicorp/openstack"] (close) var.foo ` const testPlanGraphBuilderForEachStr = ` aws_instance.bar (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] aws_instance.bar2 (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] aws_instance.bat (expand) aws_instance.boo (expand) aws_instance.baz (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] aws_instance.boo (expand) - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] aws_instance.foo (expand) - provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] (close) aws_instance.bar (expand) aws_instance.bar2 (expand) aws_instance.bat (expand) aws_instance.baz (expand) aws_instance.foo (expand) root - provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/aws"] (close) ` diff --git a/internal/tofu/node_provider_test.go b/internal/tofu/node_provider_test.go index bbcc5e6885..70a40f3029 100644 --- a/internal/tofu/node_provider_test.go +++ b/internal/tofu/node_provider_test.go @@ -104,7 +104,7 @@ func TestNodeApplyableProviderExecute_unknownImport(t *testing.T) { t.Fatal("expected error, got success") } - detail := `Invalid provider configuration: The configuration for provider["registry.opentofu.org/opentofu/foo"] depends on values that cannot be determined until apply.` + detail := `Invalid provider configuration: The configuration for provider["registry.opentofu.org/hashicorp/foo"] depends on values that cannot be determined until apply.` if got, want := diags.Err().Error(), detail; got != want { t.Errorf("wrong diagnostic detail\n got: %q\nwant: %q", got, want) } @@ -280,7 +280,7 @@ func TestNodeApplyableProvider_Validate(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } @@ -301,7 +301,7 @@ func TestNodeApplyableProvider_Validate(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } @@ -315,7 +315,7 @@ func TestNodeApplyableProvider_Validate(t *testing.T) { t.Run("empty config", func(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -362,7 +362,7 @@ func TestNodeApplyableProvider_ConfigProvider(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } @@ -376,7 +376,7 @@ func TestNodeApplyableProvider_ConfigProvider(t *testing.T) { t.Run("missing required config (no config at all)", func(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -396,7 +396,7 @@ func TestNodeApplyableProvider_ConfigProvider(t *testing.T) { } node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } @@ -451,7 +451,7 @@ func TestNodeApplyableProvider_ConfigProvider_config_fn_err(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } @@ -465,7 +465,7 @@ func TestNodeApplyableProvider_ConfigProvider_config_fn_err(t *testing.T) { t.Run("missing required config (no config at all)", func(t *testing.T) { node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -485,7 +485,7 @@ func TestNodeApplyableProvider_ConfigProvider_config_fn_err(t *testing.T) { } node := NodeApplyableProvider{ NodeAbstractProvider: &NodeAbstractProvider{ - Addr: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + Addr: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), Config: config, }, } diff --git a/internal/tofu/node_resource_abstract_instance_test.go b/internal/tofu/node_resource_abstract_instance_test.go index c9fe04fc82..a062be3175 100644 --- a/internal/tofu/node_resource_abstract_instance_test.go +++ b/internal/tofu/node_resource_abstract_instance_test.go @@ -29,7 +29,7 @@ func TestNodeAbstractResourceInstanceProvider(t *testing.T) { }.Instance(addrs.NoKey).Absolute(addrs.RootModuleInstance), Want: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "null", }, }, @@ -167,7 +167,7 @@ func TestNodeAbstractResourceInstance_WriteResourceInstanceState(t *testing.T) { Addr: mustResourceInstanceAddr("aws_instance.foo"), // instanceState: obj, NodeAbstractResource: NodeAbstractResource{ - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } ctx.ProviderProvider = mockProvider @@ -181,6 +181,6 @@ func TestNodeAbstractResourceInstance_WriteResourceInstanceState(t *testing.T) { checkStateString(t, state, ` aws_instance.foo: ID = i-abc123 - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] `) } diff --git a/internal/tofu/node_resource_abstract_test.go b/internal/tofu/node_resource_abstract_test.go index 43357fbae3..7567d4b1ae 100644 --- a/internal/tofu/node_resource_abstract_test.go +++ b/internal/tofu/node_resource_abstract_test.go @@ -29,7 +29,7 @@ func TestNodeAbstractResourceProvider(t *testing.T) { }.InModule(addrs.RootModule), Want: addrs.Provider{ Hostname: addrs.DefaultProviderRegistryHost, - Namespace: addrs.DefaultProviderNamespace, + Namespace: "hashicorp", Type: "null", }, }, @@ -219,7 +219,7 @@ func TestNodeAbstractResource_ReadResourceInstanceState(t *testing.T) { }), Node: &NodeAbstractResource{ Addr: mustConfigResourceAddr("aws_instance.bar"), - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, ExpectedInstanceId: "i-abc123", }, @@ -285,7 +285,7 @@ func TestNodeAbstractResource_ReadResourceInstanceStateDeposed(t *testing.T) { }), Node: &NodeAbstractResource{ Addr: mustConfigResourceAddr("aws_instance.bar"), - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, ExpectedInstanceId: "i-abc123", }, diff --git a/internal/tofu/node_resource_destroy_deposed_test.go b/internal/tofu/node_resource_destroy_deposed_test.go index 205d0f8deb..c606542e0e 100644 --- a/internal/tofu/node_resource_destroy_deposed_test.go +++ b/internal/tofu/node_resource_destroy_deposed_test.go @@ -25,7 +25,7 @@ func TestNodePlanDeposedResourceInstanceObject_Execute(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) p := testProvider("test") @@ -61,7 +61,7 @@ func TestNodePlanDeposedResourceInstanceObject_Execute(t *testing.T) { NodeAbstractResourceInstance: &NodeAbstractResourceInstance{ Addr: absResource, NodeAbstractResource: NodeAbstractResource{ - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), }, }, DeposedKey: deposedKey, @@ -95,7 +95,7 @@ func TestNodeDestroyDeposedResourceInstanceObject_Execute(t *testing.T) { Status: states.ObjectTainted, AttrsJSON: []byte(`{"id":"bar"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) schema := providers.ProviderSchema{ @@ -133,7 +133,7 @@ func TestNodeDestroyDeposedResourceInstanceObject_Execute(t *testing.T) { NodeAbstractResourceInstance: &NodeAbstractResourceInstance{ Addr: absResource, NodeAbstractResource: NodeAbstractResource{ - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), }, }, DeposedKey: deposedKey, @@ -174,7 +174,7 @@ func TestNodeDestroyDeposedResourceInstanceObject_WriteResourceInstanceState(t * node := &NodeDestroyDeposedResourceInstanceObject{ NodeAbstractResourceInstance: &NodeAbstractResourceInstance{ NodeAbstractResource: NodeAbstractResource{ - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, Addr: mustResourceInstanceAddr("aws_instance.foo"), }, @@ -188,7 +188,7 @@ func TestNodeDestroyDeposedResourceInstanceObject_WriteResourceInstanceState(t * checkStateString(t, state, ` aws_instance.foo: (1 deposed) ID = - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] Deposed ID 1 = i-abc123 `) } @@ -206,7 +206,7 @@ func TestNodeDestroyDeposedResourceInstanceObject_ExecuteMissingState(t *testing NodeAbstractResourceInstance: &NodeAbstractResourceInstance{ Addr: mustResourceInstanceAddr("test_object.foo"), NodeAbstractResource: NodeAbstractResource{ - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), }, }, DeposedKey: states.NewDeposedKey(), diff --git a/internal/tofu/node_resource_validate_test.go b/internal/tofu/node_resource_validate_test.go index 2d1be858c7..407b3929ee 100644 --- a/internal/tofu/node_resource_validate_test.go +++ b/internal/tofu/node_resource_validate_test.go @@ -187,7 +187,7 @@ func TestNodeValidatableResource_ValidateResource_managedResource(t *testing.T) NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -255,7 +255,7 @@ func TestNodeValidatableResource_ValidateResource_managedResourceCount(t *testin NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -301,7 +301,7 @@ func TestNodeValidatableResource_ValidateResource_dataSource(t *testing.T) { NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -337,7 +337,7 @@ func TestNodeValidatableResource_ValidateResource_valid(t *testing.T) { NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_object.foo"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -374,7 +374,7 @@ func TestNodeValidatableResource_ValidateResource_warningsAndErrorsPassedThrough NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -436,7 +436,7 @@ func TestNodeValidatableResource_ValidateResource_invalidDependsOn(t *testing.T) NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -520,7 +520,7 @@ func TestNodeValidatableResource_ValidateResource_invalidIgnoreChangesNonexisten NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } @@ -603,7 +603,7 @@ func TestNodeValidatableResource_ValidateResource_invalidIgnoreChangesComputed(t NodeAbstractResource: &NodeAbstractResource{ Addr: mustConfigResourceAddr("test_foo.bar"), Config: rc, - ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + ResolvedProvider: mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), }, } diff --git a/internal/tofu/opentf_test.go b/internal/tofu/opentf_test.go index bbd6b24f8e..6486befdc6 100644 --- a/internal/tofu/opentf_test.go +++ b/internal/tofu/opentf_test.go @@ -282,7 +282,7 @@ func (h *HookRecordApplyOrder) PreApply(addr addrs.AbsResourceInstance, gen stat const testTerraformInputProviderOnlyStr = ` aws_instance.foo: ID = - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = us-west-2 type = ` @@ -290,12 +290,12 @@ aws_instance.foo: const testTerraformApplyStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -303,13 +303,13 @@ aws_instance.foo: const testTerraformApplyDataBasicStr = ` data.null_data_source.testing: ID = yo - provider = provider["registry.opentofu.org/opentofu/null"] + provider = provider["registry.opentofu.org/hashicorp/null"] ` const testTerraformApplyRefCountStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = 3 type = aws_instance @@ -317,27 +317,27 @@ aws_instance.bar: aws_instance.foo aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` const testTerraformApplyProviderAliasStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"].bar + provider = provider["registry.opentofu.org/hashicorp/aws"].bar foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -345,11 +345,11 @@ aws_instance.foo: const testTerraformApplyProviderAliasConfigStr = ` another_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/another"].two + provider = provider["registry.opentofu.org/hashicorp/another"].two type = another_instance another_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/another"] + provider = provider["registry.opentofu.org/hashicorp/another"] type = another_instance ` @@ -363,7 +363,7 @@ end = XXXX const testTerraformApplyDependsCreateBeforeStr = ` aws_instance.lb: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] instance = foo type = aws_instance @@ -371,7 +371,7 @@ aws_instance.lb: aws_instance.web aws_instance.web: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = ami-new type = aws_instance ` @@ -379,7 +379,7 @@ aws_instance.web: const testTerraformApplyCreateBeforeStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = xyz type = aws_instance ` @@ -387,7 +387,7 @@ aws_instance.bar: const testTerraformApplyCreateBeforeUpdateStr = ` aws_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = baz type = aws_instance ` @@ -395,7 +395,7 @@ aws_instance.bar: const testTerraformApplyCancelStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance value = 2 ` @@ -403,7 +403,7 @@ aws_instance.foo: const testTerraformApplyComputeStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = computed_value type = aws_instance @@ -411,7 +411,7 @@ aws_instance.bar: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] compute = value compute_value = 1 num = 2 @@ -422,17 +422,17 @@ aws_instance.foo: const testTerraformApplyCountDecStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo.0: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo.1: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance ` @@ -440,7 +440,7 @@ aws_instance.foo.1: const testTerraformApplyCountDecToOneStr = ` aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance ` @@ -448,7 +448,7 @@ aws_instance.foo: const testTerraformApplyCountDecToOneCorruptedStr = ` aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance ` @@ -466,24 +466,24 @@ STATE: aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo.0: ID = baz - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` const testTerraformApplyCountVariableStr = ` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance ` @@ -491,7 +491,7 @@ aws_instance.foo.1: const testTerraformApplyCountVariableRefStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = 2 type = aws_instance @@ -499,47 +499,47 @@ aws_instance.bar: aws_instance.foo aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` const testTerraformApplyForEachVariableStr = ` aws_instance.foo["b15c6d616d6143248c575900dff57325eb1de498"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo["c3de47d34b0a9f13918dd705c141d579dd6555fd"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.foo["e30a7edcc42a846684f2a4eea5f3cd261d33c46d"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo type = aws_instance aws_instance.one["a"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.one["b"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.two["a"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Dependencies: aws_instance.one aws_instance.two["b"]: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Dependencies: @@ -547,30 +547,30 @@ aws_instance.two["b"]: const testTerraformApplyMinimalStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` const testTerraformApplyModuleStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance module.child: aws_instance.baz: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance ` @@ -578,7 +578,7 @@ module.child: const testTerraformApplyModuleBoolStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = true type = aws_instance ` @@ -590,12 +590,12 @@ const testTerraformApplyModuleDestroyOrderStr = ` const testTerraformApplyMultiProviderStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance do_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/do"] + provider = provider["registry.opentofu.org/hashicorp/do"] num = 2 type = do_instance ` @@ -605,11 +605,11 @@ const testTerraformApplyModuleOnlyProviderStr = ` module.child: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance test_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/test"] + provider = provider["registry.opentofu.org/hashicorp/test"] type = test_instance ` @@ -618,21 +618,21 @@ const testTerraformApplyModuleProviderAliasStr = ` module.child: aws_instance.foo: ID = foo - provider = module.child.provider["registry.opentofu.org/opentofu/aws"].eu + provider = module.child.provider["registry.opentofu.org/hashicorp/aws"].eu type = aws_instance ` const testTerraformApplyModuleVarRefExistingStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance module.child: aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance value = bar @@ -654,14 +654,14 @@ const testTerraformApplyOutputOrphanModuleStr = ` const testTerraformApplyProvisionerStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Dependencies: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] compute = value compute_value = 1 num = 2 @@ -674,18 +674,18 @@ const testTerraformApplyProvisionerModuleStr = ` module.child: aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` const testTerraformApplyProvisionerFailStr = ` aws_instance.bar: (tainted) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -693,7 +693,7 @@ aws_instance.foo: const testTerraformApplyProvisionerFailCreateStr = ` aws_instance.bar: (tainted) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` @@ -704,7 +704,7 @@ const testTerraformApplyProvisionerFailCreateNoIdStr = ` const testTerraformApplyProvisionerFailCreateBeforeDestroyStr = ` aws_instance.bar: (tainted) (1 deposed) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = xyz type = aws_instance Deposed ID 1 = bar @@ -713,7 +713,7 @@ aws_instance.bar: (tainted) (1 deposed) const testTerraformApplyProvisionerResourceRefStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -721,7 +721,7 @@ aws_instance.bar: const testTerraformApplyProvisionerSelfRefStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance ` @@ -729,17 +729,17 @@ aws_instance.foo: const testTerraformApplyProvisionerMultiSelfRefStr = ` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 0 type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 1 type = aws_instance aws_instance.foo.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 2 type = aws_instance ` @@ -747,17 +747,17 @@ aws_instance.foo.2: const testTerraformApplyProvisionerMultiSelfRefSingleStr = ` aws_instance.foo.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 0 type = aws_instance aws_instance.foo.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 1 type = aws_instance aws_instance.foo.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = number 2 type = aws_instance ` @@ -765,7 +765,7 @@ aws_instance.foo.2: const testTerraformApplyProvisionerDiffStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance ` @@ -773,7 +773,7 @@ aws_instance.bar: const testTerraformApplyProvisionerSensitiveStr = ` aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance ` @@ -784,14 +784,14 @@ const testTerraformApplyDestroyStr = ` const testTerraformApplyErrorStr = ` aws_instance.bar: (tainted) ID = - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = 2 Dependencies: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance value = 2 ` @@ -799,7 +799,7 @@ aws_instance.foo: const testTerraformApplyErrorCreateBeforeDestroyStr = ` aws_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = abc type = aws_instance ` @@ -807,7 +807,7 @@ aws_instance.bar: const testTerraformApplyErrorDestroyCreateBeforeDestroyStr = ` aws_instance.bar: (1 deposed) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] require_new = xyz type = aws_instance Deposed ID 1 = bar @@ -816,14 +816,14 @@ aws_instance.bar: (1 deposed) const testTerraformApplyErrorPartialStr = ` aws_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance Dependencies: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] type = aws_instance value = 2 ` @@ -831,7 +831,7 @@ aws_instance.foo: const testTerraformApplyResourceDependsOnModuleStr = ` aws_instance.a: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = parent type = aws_instance @@ -841,7 +841,7 @@ aws_instance.a: module.child: aws_instance.child: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = child type = aws_instance ` @@ -849,7 +849,7 @@ module.child: const testTerraformApplyResourceDependsOnModuleDeepStr = ` aws_instance.a: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = parent type = aws_instance @@ -859,7 +859,7 @@ aws_instance.a: module.child.grandchild: aws_instance.c: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = grandchild type = aws_instance ` @@ -869,7 +869,7 @@ const testTerraformApplyResourceDependsOnModuleInModuleStr = ` module.child: aws_instance.b: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = child type = aws_instance @@ -878,7 +878,7 @@ module.child: module.child.grandchild: aws_instance.c: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] ami = grandchild type = aws_instance ` @@ -886,7 +886,7 @@ module.child.grandchild: const testTerraformApplyTaintStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -894,7 +894,7 @@ aws_instance.bar: const testTerraformApplyTaintDepStr = ` aws_instance.bar: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo num = 2 type = aws_instance @@ -903,7 +903,7 @@ aws_instance.bar: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -911,7 +911,7 @@ aws_instance.foo: const testTerraformApplyTaintDepRequireNewStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo require_new = yes type = aws_instance @@ -920,7 +920,7 @@ aws_instance.bar: aws_instance.foo aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -928,12 +928,12 @@ aws_instance.foo: const testTerraformApplyOutputStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance @@ -945,12 +945,12 @@ foo_num = 2 const testTerraformApplyOutputAddStr = ` aws_instance.test.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo0 type = aws_instance aws_instance.test.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = foo1 type = aws_instance @@ -963,22 +963,22 @@ secondOutput = foo1 const testTerraformApplyOutputListStr = ` aws_instance.bar.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance @@ -990,22 +990,22 @@ foo_num = [bar,bar,bar] const testTerraformApplyOutputMultiStr = ` aws_instance.bar.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance @@ -1017,22 +1017,22 @@ foo_num = bar,bar,bar const testTerraformApplyOutputMultiIndexStr = ` aws_instance.bar.0: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.1: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.bar.2: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] foo = bar type = aws_instance aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance @@ -1044,7 +1044,7 @@ foo_num = bar const testTerraformApplyUnknownAttrStr = ` aws_instance.foo: (tainted) ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] num = 2 type = aws_instance ` @@ -1052,13 +1052,13 @@ aws_instance.foo: (tainted) const testTerraformApplyVarsStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] bar = override baz = override foo = us-east-1 aws_instance.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] bar = baz list.# = 2 list.0 = Hello @@ -1072,7 +1072,7 @@ aws_instance.foo: const testTerraformApplyVarsEnvStr = ` aws_instance.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/aws"] + provider = provider["registry.opentofu.org/hashicorp/aws"] list.# = 2 list.0 = Hello list.1 = World @@ -1086,10 +1086,10 @@ aws_instance.bar: const testTerraformRefreshDataRefDataStr = ` data.null_data_source.bar: ID = foo - provider = provider["registry.opentofu.org/opentofu/null"] + provider = provider["registry.opentofu.org/hashicorp/null"] bar = yes data.null_data_source.foo: ID = foo - provider = provider["registry.opentofu.org/opentofu/null"] + provider = provider["registry.opentofu.org/hashicorp/null"] foo = yes ` diff --git a/internal/tofu/testdata/transform-provider-fqns-module/child/main.tf b/internal/tofu/testdata/transform-provider-fqns-module/child/main.tf index ac785f5914..5c56b76939 100644 --- a/internal/tofu/testdata/transform-provider-fqns-module/child/main.tf +++ b/internal/tofu/testdata/transform-provider-fqns-module/child/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { your-aws = { - source = "opentofu/aws" + source = "hashicorp/aws" } } } diff --git a/internal/tofu/testdata/transform-provider-fqns-module/main.tf b/internal/tofu/testdata/transform-provider-fqns-module/main.tf index 582ffc7462..dd582c0634 100644 --- a/internal/tofu/testdata/transform-provider-fqns-module/main.tf +++ b/internal/tofu/testdata/transform-provider-fqns-module/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { my-aws = { - source = "opentofu/aws" + source = "hashicorp/aws" } } } diff --git a/internal/tofu/testdata/transform-provider-fqns/main.tf b/internal/tofu/testdata/transform-provider-fqns/main.tf index 582ffc7462..dd582c0634 100644 --- a/internal/tofu/testdata/transform-provider-fqns/main.tf +++ b/internal/tofu/testdata/transform-provider-fqns/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { my-aws = { - source = "opentofu/aws" + source = "hashicorp/aws" } } } diff --git a/internal/tofu/testdata/validate-required-provider-config/main.tf b/internal/tofu/testdata/validate-required-provider-config/main.tf index c703d18290..898a23fdf2 100644 --- a/internal/tofu/testdata/validate-required-provider-config/main.tf +++ b/internal/tofu/testdata/validate-required-provider-config/main.tf @@ -4,13 +4,13 @@ terraform { required_providers { arbitrary = { - source = "opentofu/aws" + source = "hashicorp/aws" } } } -# opentofu/test has required provider config attributes. This "arbitrary" -# provider configuration block should map to opentofu/test. +# hashicorp/test has required provider config attributes. This "arbitrary" +# provider configuration block should map to hashicorp/test. provider "arbitrary" { required_attribute = "bloop" } diff --git a/internal/tofu/transform_destroy_cbd_test.go b/internal/tofu/transform_destroy_cbd_test.go index b62845c262..958fd20fa1 100644 --- a/internal/tofu/transform_destroy_cbd_test.go +++ b/internal/tofu/transform_destroy_cbd_test.go @@ -102,7 +102,7 @@ func TestCBDEdgeTransformer(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -111,7 +111,7 @@ func TestCBDEdgeTransformer(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) g := cbdTestGraph(t, "transform-destroy-cbd-edge-basic", changes, state) @@ -163,7 +163,7 @@ func TestCBDEdgeTransformerMulti(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -171,7 +171,7 @@ func TestCBDEdgeTransformerMulti(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"B"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.C").Resource, @@ -183,7 +183,7 @@ func TestCBDEdgeTransformerMulti(t *testing.T) { mustConfigResourceAddr("test_object.B"), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) g := cbdTestGraph(t, "transform-destroy-cbd-edge-multi", changes, state) @@ -239,7 +239,7 @@ func TestCBDEdgeTransformer_depNonCBDCount(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B[0]").Resource, @@ -248,7 +248,7 @@ func TestCBDEdgeTransformer_depNonCBDCount(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B[1]").Resource, @@ -257,7 +257,7 @@ func TestCBDEdgeTransformer_depNonCBDCount(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) g := cbdTestGraph(t, "transform-cbd-destroy-edge-count", changes, state) @@ -316,7 +316,7 @@ func TestCBDEdgeTransformer_depNonCBDCountBoth(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.A[1]").Resource, @@ -324,7 +324,7 @@ func TestCBDEdgeTransformer_depNonCBDCountBoth(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B[0]").Resource, @@ -333,7 +333,7 @@ func TestCBDEdgeTransformer_depNonCBDCountBoth(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B[1]").Resource, @@ -342,7 +342,7 @@ func TestCBDEdgeTransformer_depNonCBDCountBoth(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_list":["x"]}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) g := cbdTestGraph(t, "transform-cbd-destroy-edge-both-count", changes, state) diff --git a/internal/tofu/transform_destroy_edge_test.go b/internal/tofu/transform_destroy_edge_test.go index 365d004f33..d2c76c380a 100644 --- a/internal/tofu/transform_destroy_edge_test.go +++ b/internal/tofu/transform_destroy_edge_test.go @@ -30,7 +30,7 @@ func TestDestroyEdgeTransformer_basic(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -39,7 +39,7 @@ func TestDestroyEdgeTransformer_basic(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_string":"x"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { t.Fatal(err) @@ -71,7 +71,7 @@ func TestDestroyEdgeTransformer_multi(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -80,7 +80,7 @@ func TestDestroyEdgeTransformer_multi(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_string":"x"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.C").Resource, @@ -92,7 +92,7 @@ func TestDestroyEdgeTransformer_multi(t *testing.T) { mustConfigResourceAddr("test_object.B"), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { @@ -140,7 +140,7 @@ func TestDestroyEdgeTransformer_module(t *testing.T) { AttrsJSON: []byte(`{"id":"a"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("module.child.test_object.b")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.b").Resource, @@ -148,7 +148,7 @@ func TestDestroyEdgeTransformer_module(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"b","test_string":"x"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { @@ -183,7 +183,7 @@ func TestDestroyEdgeTransformer_moduleOnly(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"a"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.b").Resource, @@ -194,7 +194,7 @@ func TestDestroyEdgeTransformer_moduleOnly(t *testing.T) { mustConfigResourceAddr("module.child.test_object.a"), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) child.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.c").Resource, @@ -206,7 +206,7 @@ func TestDestroyEdgeTransformer_moduleOnly(t *testing.T) { mustConfigResourceAddr("module.child.test_object.b"), }, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) } @@ -266,7 +266,7 @@ func TestDestroyEdgeTransformer_destroyThenUpdate(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A","test_string":"old"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -275,7 +275,7 @@ func TestDestroyEdgeTransformer_destroyThenUpdate(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_string":"x"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { @@ -458,7 +458,7 @@ func TestDestroyEdgeTransformer_noOp(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.B").Resource, @@ -467,7 +467,7 @@ func TestDestroyEdgeTransformer_noOp(t *testing.T) { AttrsJSON: []byte(`{"id":"B","test_string":"x"}`), Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("test_object.C").Resource, @@ -477,7 +477,7 @@ func TestDestroyEdgeTransformer_noOp(t *testing.T) { Dependencies: []addrs.ConfigResource{mustConfigResourceAddr("test_object.A"), mustConfigResourceAddr("test_object.B")}, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { @@ -537,7 +537,7 @@ func TestDestroyEdgeTransformer_dataDependsOn(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"A"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/test"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/test"]`), ) if err := (&AttachStateTransformer{State: state}).Transform(&g); err != nil { diff --git a/internal/tofu/transform_import_state_test.go b/internal/tofu/transform_import_state_test.go index 9eadfb73dc..ba29ecfbf1 100644 --- a/internal/tofu/transform_import_state_test.go +++ b/internal/tofu/transform_import_state_test.go @@ -114,7 +114,7 @@ func TestGraphNodeImportStateSubExecute(t *testing.T) { actual := strings.TrimSpace(state.String()) expected := `aws_instance.foo: ID = bar - provider = provider["registry.opentofu.org/opentofu/aws"]` + provider = provider["registry.opentofu.org/hashicorp/aws"]` if actual != expected { t.Fatalf("bad state after import: \n%s", actual) } diff --git a/internal/tofu/transform_orphan_count_test.go b/internal/tofu/transform_orphan_count_test.go index eeee9e4e1f..6f79256e40 100644 --- a/internal/tofu/transform_orphan_count_test.go +++ b/internal/tofu/transform_orphan_count_test.go @@ -20,7 +20,7 @@ func TestOrphanResourceCountTransformer(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -28,7 +28,7 @@ func TestOrphanResourceCountTransformer(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -36,7 +36,7 @@ func TestOrphanResourceCountTransformer(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) g := Graph{Path: addrs.RootModuleInstance} @@ -71,7 +71,7 @@ func TestOrphanResourceCountTransformer_zero(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -79,7 +79,7 @@ func TestOrphanResourceCountTransformer_zero(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -87,7 +87,7 @@ func TestOrphanResourceCountTransformer_zero(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) g := Graph{Path: addrs.RootModuleInstance} @@ -122,7 +122,7 @@ func TestOrphanResourceCountTransformer_oneIndex(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -130,7 +130,7 @@ func TestOrphanResourceCountTransformer_oneIndex(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -138,7 +138,7 @@ func TestOrphanResourceCountTransformer_oneIndex(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) g := Graph{Path: addrs.RootModuleInstance} @@ -173,7 +173,7 @@ func TestOrphanResourceCountTransformer_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[0]").Resource, @@ -181,7 +181,7 @@ func TestOrphanResourceCountTransformer_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceCurrent( mustResourceInstanceAddr("aws_instance.foo[1]").Resource, @@ -189,7 +189,7 @@ func TestOrphanResourceCountTransformer_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) root.SetResourceInstanceDeposed( mustResourceInstanceAddr("aws_instance.foo[2]").Resource, @@ -198,7 +198,7 @@ func TestOrphanResourceCountTransformer_deposed(t *testing.T) { Status: states.ObjectReady, AttrsJSON: []byte(`{"id":"foo"}`), }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) g := Graph{Path: addrs.RootModuleInstance} @@ -243,7 +243,7 @@ func TestOrphanResourceCountTransformer_ForEachEdgesAdded(t *testing.T) { }, Status: states.ObjectReady, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) // NoKey'd resource @@ -259,7 +259,7 @@ func TestOrphanResourceCountTransformer_ForEachEdgesAdded(t *testing.T) { }, Status: states.ObjectReady, }, - mustProviderConfig(`provider["registry.opentofu.org/opentofu/aws"]`), + mustProviderConfig(`provider["registry.opentofu.org/hashicorp/aws"]`), ) }) diff --git a/internal/tofu/transform_provider_test.go b/internal/tofu/transform_provider_test.go index 74c5f8fef8..051aa27b52 100644 --- a/internal/tofu/transform_provider_test.go +++ b/internal/tofu/transform_provider_test.go @@ -305,8 +305,8 @@ resource "test_object" "a" { } expected := `module.moda.test_object.a - provider["registry.opentofu.org/opentofu/test"] -provider["registry.opentofu.org/opentofu/test"]` + provider["registry.opentofu.org/hashicorp/test"] +provider["registry.opentofu.org/hashicorp/test"]` actual := strings.TrimSpace(g.String()) if actual != expected { @@ -321,7 +321,7 @@ func TestProviderConfigTransformer_nestedModuleProviders(t *testing.T) { terraform { required_providers { test = { - source = "registry.opentofu.org/opentofu/test" + source = "registry.opentofu.org/hashicorp/test" } } } @@ -343,7 +343,7 @@ module "moda" { terraform { required_providers { test = { - source = "registry.opentofu.org/opentofu/test" + source = "registry.opentofu.org/hashicorp/test" configuration_aliases = [ test.x ] } } @@ -383,13 +383,13 @@ resource "test_object" "a" { } expected := `module.moda.module.modb.test_object.a - module.moda.provider["registry.opentofu.org/opentofu/test"] -module.moda.provider["registry.opentofu.org/opentofu/test"] + module.moda.provider["registry.opentofu.org/hashicorp/test"] +module.moda.provider["registry.opentofu.org/hashicorp/test"] module.moda.test_object.a - module.moda.provider["registry.opentofu.org/opentofu/test"] + module.moda.provider["registry.opentofu.org/hashicorp/test"] module.moda.test_object.x - provider["registry.opentofu.org/opentofu/test"].z -provider["registry.opentofu.org/opentofu/test"].z` + provider["registry.opentofu.org/hashicorp/test"].z +provider["registry.opentofu.org/hashicorp/test"].z` actual := strings.TrimSpace(g.String()) if actual != expected { @@ -406,7 +406,7 @@ terraform { # default config is equivalent to the provider config, the user may never # see an error. dupe = { - source = "registry.opentofu.org/opentofu/test" + source = "registry.opentofu.org/hashicorp/test" } } } @@ -425,7 +425,7 @@ provider "test" { t.Fatalf("err: %s", err) } - expected := `provider["registry.opentofu.org/opentofu/test"]` + expected := `provider["registry.opentofu.org/hashicorp/test"]` actual := strings.TrimSpace(g.String()) if actual != expected { @@ -435,60 +435,60 @@ provider "test" { const testTransformProviderBasicStr = ` aws_instance.web - provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] ` const testTransformCloseProviderBasicStr = ` aws_instance.web - provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] (close) aws_instance.web - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] ` const testTransformMissingProviderBasicStr = ` aws_instance.web - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] foo_instance.web - provider["registry.opentofu.org/opentofu/foo"] -provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/aws"] (close) + provider["registry.opentofu.org/hashicorp/foo"] +provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/aws"] (close) aws_instance.web - provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/foo"] -provider["registry.opentofu.org/opentofu/foo"] (close) + provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/foo"] +provider["registry.opentofu.org/hashicorp/foo"] (close) foo_instance.web - provider["registry.opentofu.org/opentofu/foo"] + provider["registry.opentofu.org/hashicorp/foo"] ` const testTransformMissingGrandchildProviderStr = ` module.sub.module.subsub.bar_instance.two - provider["registry.opentofu.org/opentofu/bar"] + provider["registry.opentofu.org/hashicorp/bar"] module.sub.module.subsub.foo_instance.one - module.sub.provider["registry.opentofu.org/opentofu/foo"] -module.sub.provider["registry.opentofu.org/opentofu/foo"] -provider["registry.opentofu.org/opentofu/bar"] + module.sub.provider["registry.opentofu.org/hashicorp/foo"] +module.sub.provider["registry.opentofu.org/hashicorp/foo"] +provider["registry.opentofu.org/hashicorp/bar"] ` const testTransformPruneProviderBasicStr = ` foo_instance.web - provider["registry.opentofu.org/opentofu/foo"] -provider["registry.opentofu.org/opentofu/foo"] -provider["registry.opentofu.org/opentofu/foo"] (close) + provider["registry.opentofu.org/hashicorp/foo"] +provider["registry.opentofu.org/hashicorp/foo"] +provider["registry.opentofu.org/hashicorp/foo"] (close) foo_instance.web - provider["registry.opentofu.org/opentofu/foo"] + provider["registry.opentofu.org/hashicorp/foo"] ` const testTransformModuleProviderConfigStr = ` module.child.aws_instance.thing - provider["registry.opentofu.org/opentofu/aws"].foo -provider["registry.opentofu.org/opentofu/aws"].foo + provider["registry.opentofu.org/hashicorp/aws"].foo +provider["registry.opentofu.org/hashicorp/aws"].foo ` const testTransformModuleProviderGrandparentStr = ` module.child.module.grandchild.aws_instance.baz - provider["registry.opentofu.org/opentofu/aws"].foo -provider["registry.opentofu.org/opentofu/aws"].foo + provider["registry.opentofu.org/hashicorp/aws"].foo +provider["registry.opentofu.org/hashicorp/aws"].foo ` diff --git a/internal/tofu/transform_root_test.go b/internal/tofu/transform_root_test.go index b72affd8ba..dbfe81469b 100644 --- a/internal/tofu/transform_root_test.go +++ b/internal/tofu/transform_root_test.go @@ -87,11 +87,11 @@ root const testTransformRootBasicStr = ` aws_instance.foo - provider["registry.opentofu.org/opentofu/aws"] + provider["registry.opentofu.org/hashicorp/aws"] do_droplet.bar - provider["registry.opentofu.org/opentofu/do"] -provider["registry.opentofu.org/opentofu/aws"] -provider["registry.opentofu.org/opentofu/do"] + provider["registry.opentofu.org/hashicorp/do"] +provider["registry.opentofu.org/hashicorp/aws"] +provider["registry.opentofu.org/hashicorp/do"] root aws_instance.foo do_droplet.bar diff --git a/scripts/changelog-links.sh b/scripts/changelog-links.sh index 11f8e79a8f..fe1fff7f02 100755 --- a/scripts/changelog-links.sh +++ b/scripts/changelog-links.sh @@ -15,7 +15,7 @@ set -e if [[ ! -f CHANGELOG.md ]]; then echo "ERROR: CHANGELOG.md not found in pwd." - echo "Please run this from the root of the OpenTofu source repository" + echo "Please run this from the root of the terraform source repository" exit 1 fi @@ -27,6 +27,6 @@ else SED="sed -i.bak -r -e" fi -$SED 's/GH-([0-9]+)/\[#\1\]\(https:\/\/github.com\/opentofu\/opentofu\/issues\/\1\)/g' -e 's/\[\[#(.+)([0-9])\)]$/(\[#\1\2))/g' CHANGELOG.md +$SED 's/GH-([0-9]+)/\[#\1\]\(https:\/\/github.com\/hashicorp\/terraform\/issues\/\1\)/g' -e 's/\[\[#(.+)([0-9])\)]$/(\[#\1\2))/g' CHANGELOG.md rm CHANGELOG.md.bak diff --git a/testing/equivalence-tests/outputs/basic_json_string_update/plan.json b/testing/equivalence-tests/outputs/basic_json_string_update/plan.json index 48a46a0484..97fd6a1410 100644 --- a/testing/equivalence-tests/outputs/basic_json_string_update/plan.json +++ b/testing/equivalence-tests/outputs/basic_json_string_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_simple_resource.json", "mode": "managed", "name": "json", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -59,7 +59,7 @@ "address": "tfcoremock_simple_resource.json", "mode": "managed", "name": "json", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -105,7 +105,7 @@ }, "mode": "managed", "name": "json", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/basic_json_string_update/state.json b/testing/equivalence-tests/outputs/basic_json_string_update/state.json index 269b59287d..3778d10ba0 100644 --- a/testing/equivalence-tests/outputs/basic_json_string_update/state.json +++ b/testing/equivalence-tests/outputs/basic_json_string_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.json", "mode": "managed", "name": "json", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/basic_list/plan.json b/testing/equivalence-tests/outputs/basic_list/plan.json index dad2c10889..18a4c023e8 100644 --- a/testing/equivalence-tests/outputs/basic_list/plan.json +++ b/testing/equivalence-tests/outputs/basic_list/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -91,7 +91,7 @@ }, "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_list" } ] diff --git a/testing/equivalence-tests/outputs/basic_list/state.json b/testing/equivalence-tests/outputs/basic_list/state.json index e553236903..769557b670 100644 --- a/testing/equivalence-tests/outputs/basic_list/state.json +++ b/testing/equivalence-tests/outputs/basic_list/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ diff --git a/testing/equivalence-tests/outputs/basic_list_empty/plan.json b/testing/equivalence-tests/outputs/basic_list_empty/plan.json index 09abb3dd1c..2984351915 100644 --- a/testing/equivalence-tests/outputs/basic_list_empty/plan.json +++ b/testing/equivalence-tests/outputs/basic_list_empty/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -37,7 +37,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [] @@ -60,7 +60,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -116,7 +116,7 @@ }, "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_list" } ] diff --git a/testing/equivalence-tests/outputs/basic_list_empty/state.json b/testing/equivalence-tests/outputs/basic_list_empty/state.json index ddeb64cbb5..a6bfb6c9f8 100644 --- a/testing/equivalence-tests/outputs/basic_list_empty/state.json +++ b/testing/equivalence-tests/outputs/basic_list_empty/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [] diff --git a/testing/equivalence-tests/outputs/basic_list_null/plan.json b/testing/equivalence-tests/outputs/basic_list_null/plan.json index 8fc564f291..9349c8d986 100644 --- a/testing/equivalence-tests/outputs/basic_list_null/plan.json +++ b/testing/equivalence-tests/outputs/basic_list_null/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_list", @@ -55,7 +55,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -109,7 +109,7 @@ }, "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_list" } ] diff --git a/testing/equivalence-tests/outputs/basic_list_null/state.json b/testing/equivalence-tests/outputs/basic_list_null/state.json index 01f48b7752..6ee334439e 100644 --- a/testing/equivalence-tests/outputs/basic_list_null/state.json +++ b/testing/equivalence-tests/outputs/basic_list_null/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_list", diff --git a/testing/equivalence-tests/outputs/basic_list_update/plan.json b/testing/equivalence-tests/outputs/basic_list_update/plan.json index 17e2c0002f..b0e3f68709 100644 --- a/testing/equivalence-tests/outputs/basic_list_update/plan.json +++ b/testing/equivalence-tests/outputs/basic_list_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -72,7 +72,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -136,7 +136,7 @@ }, "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_list" } ] diff --git a/testing/equivalence-tests/outputs/basic_list_update/state.json b/testing/equivalence-tests/outputs/basic_list_update/state.json index 304e3b2901..b822fb3e37 100644 --- a/testing/equivalence-tests/outputs/basic_list_update/state.json +++ b/testing/equivalence-tests/outputs/basic_list_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ diff --git a/testing/equivalence-tests/outputs/basic_map/plan.json b/testing/equivalence-tests/outputs/basic_map/plan.json index 7527570776..a3dba90b08 100644 --- a/testing/equivalence-tests/outputs/basic_map/plan.json +++ b/testing/equivalence-tests/outputs/basic_map/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -83,7 +83,7 @@ }, "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_map" } ] diff --git a/testing/equivalence-tests/outputs/basic_map/state.json b/testing/equivalence-tests/outputs/basic_map/state.json index 79c572e709..d1a4d944e3 100644 --- a/testing/equivalence-tests/outputs/basic_map/state.json +++ b/testing/equivalence-tests/outputs/basic_map/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} diff --git a/testing/equivalence-tests/outputs/basic_map_empty/plan.json b/testing/equivalence-tests/outputs/basic_map_empty/plan.json index a8d1f9c620..4b85c883e8 100644 --- a/testing/equivalence-tests/outputs/basic_map_empty/plan.json +++ b/testing/equivalence-tests/outputs/basic_map_empty/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -37,7 +37,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -60,7 +60,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -108,7 +108,7 @@ }, "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_map" } ] diff --git a/testing/equivalence-tests/outputs/basic_map_empty/state.json b/testing/equivalence-tests/outputs/basic_map_empty/state.json index ee2dc5535b..6d39b76daf 100644 --- a/testing/equivalence-tests/outputs/basic_map_empty/state.json +++ b/testing/equivalence-tests/outputs/basic_map_empty/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} diff --git a/testing/equivalence-tests/outputs/basic_map_null/plan.json b/testing/equivalence-tests/outputs/basic_map_null/plan.json index 828beaa3c8..e6f9b11479 100644 --- a/testing/equivalence-tests/outputs/basic_map_null/plan.json +++ b/testing/equivalence-tests/outputs/basic_map_null/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_map", @@ -55,7 +55,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -101,7 +101,7 @@ }, "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_map" } ] diff --git a/testing/equivalence-tests/outputs/basic_map_null/state.json b/testing/equivalence-tests/outputs/basic_map_null/state.json index 4c667257b8..1a1ffe631d 100644 --- a/testing/equivalence-tests/outputs/basic_map_null/state.json +++ b/testing/equivalence-tests/outputs/basic_map_null/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_map", diff --git a/testing/equivalence-tests/outputs/basic_map_update/plan.json b/testing/equivalence-tests/outputs/basic_map_update/plan.json index b152ba5e8b..f924bdce8d 100644 --- a/testing/equivalence-tests/outputs/basic_map_update/plan.json +++ b/testing/equivalence-tests/outputs/basic_map_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -68,7 +68,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} @@ -120,7 +120,7 @@ }, "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_map" } ] diff --git a/testing/equivalence-tests/outputs/basic_map_update/state.json b/testing/equivalence-tests/outputs/basic_map_update/state.json index 3b4b1bab68..e67f27365d 100644 --- a/testing/equivalence-tests/outputs/basic_map_update/state.json +++ b/testing/equivalence-tests/outputs/basic_map_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": {} diff --git a/testing/equivalence-tests/outputs/basic_multiline_string_update/plan.json b/testing/equivalence-tests/outputs/basic_multiline_string_update/plan.json index 58b6c67d2a..ee3b584241 100644 --- a/testing/equivalence-tests/outputs/basic_multiline_string_update/plan.json +++ b/testing/equivalence-tests/outputs/basic_multiline_string_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_simple_resource.multiline", "mode": "managed", "name": "multiline", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -59,7 +59,7 @@ "address": "tfcoremock_simple_resource.multiline", "mode": "managed", "name": "multiline", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -105,7 +105,7 @@ }, "mode": "managed", "name": "multiline", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/basic_multiline_string_update/state.json b/testing/equivalence-tests/outputs/basic_multiline_string_update/state.json index 923c8d4ccc..52437908b1 100644 --- a/testing/equivalence-tests/outputs/basic_multiline_string_update/state.json +++ b/testing/equivalence-tests/outputs/basic_multiline_string_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.multiline", "mode": "managed", "name": "multiline", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/basic_set/plan.json b/testing/equivalence-tests/outputs/basic_set/plan.json index 824a757f32..07a264a42e 100644 --- a/testing/equivalence-tests/outputs/basic_set/plan.json +++ b/testing/equivalence-tests/outputs/basic_set/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -91,7 +91,7 @@ }, "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_set" } ] diff --git a/testing/equivalence-tests/outputs/basic_set/state.json b/testing/equivalence-tests/outputs/basic_set/state.json index 87d135943b..c830eb6b9e 100644 --- a/testing/equivalence-tests/outputs/basic_set/state.json +++ b/testing/equivalence-tests/outputs/basic_set/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ diff --git a/testing/equivalence-tests/outputs/basic_set_empty/plan.json b/testing/equivalence-tests/outputs/basic_set_empty/plan.json index a4e0ae7d28..ff0955642b 100644 --- a/testing/equivalence-tests/outputs/basic_set_empty/plan.json +++ b/testing/equivalence-tests/outputs/basic_set_empty/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -37,7 +37,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [] @@ -60,7 +60,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -116,7 +116,7 @@ }, "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_set" } ] diff --git a/testing/equivalence-tests/outputs/basic_set_empty/state.json b/testing/equivalence-tests/outputs/basic_set_empty/state.json index 914fe3e3da..7ac06682ac 100644 --- a/testing/equivalence-tests/outputs/basic_set_empty/state.json +++ b/testing/equivalence-tests/outputs/basic_set_empty/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [] diff --git a/testing/equivalence-tests/outputs/basic_set_null/plan.json b/testing/equivalence-tests/outputs/basic_set_null/plan.json index 272e1844c7..f31eaf562d 100644 --- a/testing/equivalence-tests/outputs/basic_set_null/plan.json +++ b/testing/equivalence-tests/outputs/basic_set_null/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_set", @@ -55,7 +55,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -109,7 +109,7 @@ }, "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_set" } ] diff --git a/testing/equivalence-tests/outputs/basic_set_null/state.json b/testing/equivalence-tests/outputs/basic_set_null/state.json index 4bb5e671e4..f545b08e39 100644 --- a/testing/equivalence-tests/outputs/basic_set_null/state.json +++ b/testing/equivalence-tests/outputs/basic_set_null/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_set", diff --git a/testing/equivalence-tests/outputs/basic_set_update/plan.json b/testing/equivalence-tests/outputs/basic_set_update/plan.json index 3569bec463..caf7e2ad15 100644 --- a/testing/equivalence-tests/outputs/basic_set_update/plan.json +++ b/testing/equivalence-tests/outputs/basic_set_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -72,7 +72,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -136,7 +136,7 @@ }, "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_set" } ] diff --git a/testing/equivalence-tests/outputs/basic_set_update/state.json b/testing/equivalence-tests/outputs/basic_set_update/state.json index b117c388cc..658bd183ea 100644 --- a/testing/equivalence-tests/outputs/basic_set_update/state.json +++ b/testing/equivalence-tests/outputs/basic_set_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ diff --git a/testing/equivalence-tests/outputs/data_read/plan.json b/testing/equivalence-tests/outputs/data_read/plan.json index 33ade6edc9..30d8cf2999 100644 --- a/testing/equivalence-tests/outputs/data_read/plan.json +++ b/testing/equivalence-tests/outputs/data_read/plan.json @@ -2,17 +2,17 @@ "configuration": { "provider_config": { "local": { - "full_name": "registry.opentofu.org/opentofu/local", + "full_name": "registry.opentofu.org/hashicorp/local", "name": "local", "version_constraint": "2.2.3" }, "random": { - "full_name": "registry.opentofu.org/opentofu/random", + "full_name": "registry.opentofu.org/hashicorp/random", "name": "random", "version_constraint": "3.4.3" }, "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -136,7 +136,7 @@ "address": "module.create.local_file.data_file", "mode": "managed", "name": "data_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": {}, "type": "local_file", @@ -152,7 +152,7 @@ "address": "module.create.random_integer.random", "mode": "managed", "name": "random", - "provider_name": "registry.opentofu.org/opentofu/random", + "provider_name": "registry.opentofu.org/hashicorp/random", "schema_version": 0, "sensitive_values": {}, "type": "random_integer", @@ -171,7 +171,7 @@ "address": "data.tfcoremock_simple_resource.read", "mode": "data", "name": "read", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -187,7 +187,7 @@ "address": "tfcoremock_simple_resource.create", "mode": "managed", "name": "create", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -240,7 +240,7 @@ }, "mode": "data", "name": "read", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" }, { @@ -265,7 +265,7 @@ }, "mode": "managed", "name": "create", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" }, { @@ -295,7 +295,7 @@ "mode": "managed", "module_address": "module.create", "name": "data_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "type": "local_file" }, { @@ -321,7 +321,7 @@ "mode": "managed", "module_address": "module.create", "name": "random", - "provider_name": "registry.opentofu.org/opentofu/random", + "provider_name": "registry.opentofu.org/hashicorp/random", "type": "random_integer" } ] diff --git a/testing/equivalence-tests/outputs/drift_refresh_only/plan.json b/testing/equivalence-tests/outputs/drift_refresh_only/plan.json index 2d129d44bc..f6e1a4a460 100644 --- a/testing/equivalence-tests/outputs/drift_refresh_only/plan.json +++ b/testing/equivalence-tests/outputs/drift_refresh_only/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -39,7 +39,7 @@ "address": "tfcoremock_simple_resource.drift", "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -85,7 +85,7 @@ }, "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/drift_refresh_only/state.json b/testing/equivalence-tests/outputs/drift_refresh_only/state.json index d88fdc0688..67ae32c589 100644 --- a/testing/equivalence-tests/outputs/drift_refresh_only/state.json +++ b/testing/equivalence-tests/outputs/drift_refresh_only/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.drift", "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/drift_relevant_attributes/plan.json b/testing/equivalence-tests/outputs/drift_relevant_attributes/plan.json index 35f23befdc..b07148b493 100644 --- a/testing/equivalence-tests/outputs/drift_relevant_attributes/plan.json +++ b/testing/equivalence-tests/outputs/drift_relevant_attributes/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -53,7 +53,7 @@ "address": "tfcoremock_simple_resource.base", "mode": "managed", "name": "base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -70,7 +70,7 @@ "address": "tfcoremock_simple_resource.dependent", "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -95,7 +95,7 @@ "address": "tfcoremock_simple_resource.base", "mode": "managed", "name": "base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -115,7 +115,7 @@ ], "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -169,7 +169,7 @@ }, "mode": "managed", "name": "base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" }, { @@ -200,7 +200,7 @@ }, "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ], @@ -233,7 +233,7 @@ }, "mode": "managed", "name": "base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/drift_relevant_attributes/state.json b/testing/equivalence-tests/outputs/drift_relevant_attributes/state.json index e95f08a48d..44e94b553c 100644 --- a/testing/equivalence-tests/outputs/drift_relevant_attributes/state.json +++ b/testing/equivalence-tests/outputs/drift_relevant_attributes/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.base", "mode": "managed", "name": "base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -27,7 +27,7 @@ ], "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/drift_simple/plan.json b/testing/equivalence-tests/outputs/drift_simple/plan.json index 3174d3735a..7f1c050568 100644 --- a/testing/equivalence-tests/outputs/drift_simple/plan.json +++ b/testing/equivalence-tests/outputs/drift_simple/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_simple_resource.drift", "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -59,7 +59,7 @@ "address": "tfcoremock_simple_resource.drift", "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -105,7 +105,7 @@ }, "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ], @@ -138,7 +138,7 @@ }, "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/drift_simple/state.json b/testing/equivalence-tests/outputs/drift_simple/state.json index fdad30060b..ceab7151d9 100644 --- a/testing/equivalence-tests/outputs/drift_simple/state.json +++ b/testing/equivalence-tests/outputs/drift_simple/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.drift", "mode": "managed", "name": "drift", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/fully_populated_complex/plan.json b/testing/equivalence-tests/outputs/fully_populated_complex/plan.json index c8f99e656d..79ee013495 100644 --- a/testing/equivalence-tests/outputs/fully_populated_complex/plan.json +++ b/testing/equivalence-tests/outputs/fully_populated_complex/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -246,7 +246,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -1538,7 +1538,7 @@ }, "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_complex_resource" } ] diff --git a/testing/equivalence-tests/outputs/fully_populated_complex/state.json b/testing/equivalence-tests/outputs/fully_populated_complex/state.json index 3bbfc85a95..f201e14d70 100644 --- a/testing/equivalence-tests/outputs/fully_populated_complex/state.json +++ b/testing/equivalence-tests/outputs/fully_populated_complex/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ diff --git a/testing/equivalence-tests/outputs/fully_populated_complex_destroy/plan.json b/testing/equivalence-tests/outputs/fully_populated_complex_destroy/plan.json index db14e5cc46..f17c414d69 100644 --- a/testing/equivalence-tests/outputs/fully_populated_complex_destroy/plan.json +++ b/testing/equivalence-tests/outputs/fully_populated_complex_destroy/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -246,7 +246,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -1539,7 +1539,7 @@ }, "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_complex_resource" } ] diff --git a/testing/equivalence-tests/outputs/fully_populated_complex_update/plan.json b/testing/equivalence-tests/outputs/fully_populated_complex_update/plan.json index 191398bd36..44a023e0a1 100644 --- a/testing/equivalence-tests/outputs/fully_populated_complex_update/plan.json +++ b/testing/equivalence-tests/outputs/fully_populated_complex_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -241,7 +241,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -897,7 +897,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -2828,7 +2828,7 @@ }, "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_complex_resource" } ] diff --git a/testing/equivalence-tests/outputs/fully_populated_complex_update/state.json b/testing/equivalence-tests/outputs/fully_populated_complex_update/state.json index a7b668483a..780a9eea54 100644 --- a/testing/equivalence-tests/outputs/fully_populated_complex_update/state.json +++ b/testing/equivalence-tests/outputs/fully_populated_complex_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_complex_resource.complex", "mode": "managed", "name": "complex", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ diff --git a/testing/equivalence-tests/outputs/local_provider_basic/plan.json b/testing/equivalence-tests/outputs/local_provider_basic/plan.json index f76a997bc3..88944851ec 100644 --- a/testing/equivalence-tests/outputs/local_provider_basic/plan.json +++ b/testing/equivalence-tests/outputs/local_provider_basic/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "local": { - "full_name": "registry.opentofu.org/opentofu/local", + "full_name": "registry.opentofu.org/hashicorp/local", "name": "local", "version_constraint": "2.2.3" } @@ -39,7 +39,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": {}, "type": "local_file", @@ -83,7 +83,7 @@ }, "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "type": "local_file" } ] diff --git a/testing/equivalence-tests/outputs/local_provider_basic/state.json b/testing/equivalence-tests/outputs/local_provider_basic/state.json index 3fb09ef974..0d7d8e3532 100644 --- a/testing/equivalence-tests/outputs/local_provider_basic/state.json +++ b/testing/equivalence-tests/outputs/local_provider_basic/state.json @@ -7,7 +7,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": { "sensitive_content": true diff --git a/testing/equivalence-tests/outputs/local_provider_delete/plan.json b/testing/equivalence-tests/outputs/local_provider_delete/plan.json index 29f867d5ed..9d14b8996f 100644 --- a/testing/equivalence-tests/outputs/local_provider_delete/plan.json +++ b/testing/equivalence-tests/outputs/local_provider_delete/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "local": { - "full_name": "registry.opentofu.org/opentofu/local", + "full_name": "registry.opentofu.org/hashicorp/local", "name": "local", "version_constraint": "2.2.3" } @@ -23,7 +23,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": { "sensitive_content": true @@ -71,7 +71,7 @@ }, "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "type": "local_file" } ] diff --git a/testing/equivalence-tests/outputs/local_provider_update/plan.json b/testing/equivalence-tests/outputs/local_provider_update/plan.json index de8442c617..25e9d2b338 100644 --- a/testing/equivalence-tests/outputs/local_provider_update/plan.json +++ b/testing/equivalence-tests/outputs/local_provider_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "local": { - "full_name": "registry.opentofu.org/opentofu/local", + "full_name": "registry.opentofu.org/hashicorp/local", "name": "local", "version_constraint": "2.2.3" } @@ -39,7 +39,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": {}, "type": "local_file", @@ -65,7 +65,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": { "sensitive_content": true @@ -131,7 +131,7 @@ }, "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "type": "local_file" } ] diff --git a/testing/equivalence-tests/outputs/local_provider_update/state.json b/testing/equivalence-tests/outputs/local_provider_update/state.json index c93830ab43..2b1eb8c90b 100644 --- a/testing/equivalence-tests/outputs/local_provider_update/state.json +++ b/testing/equivalence-tests/outputs/local_provider_update/state.json @@ -7,7 +7,7 @@ "address": "local_file.local_file", "mode": "managed", "name": "local_file", - "provider_name": "registry.opentofu.org/opentofu/local", + "provider_name": "registry.opentofu.org/hashicorp/local", "schema_version": 0, "sensitive_values": { "sensitive_content": true diff --git a/testing/equivalence-tests/outputs/moved_simple/plan.json b/testing/equivalence-tests/outputs/moved_simple/plan.json index a052c0fb6f..2936501527 100644 --- a/testing/equivalence-tests/outputs/moved_simple/plan.json +++ b/testing/equivalence-tests/outputs/moved_simple/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_simple_resource.second", "mode": "managed", "name": "second", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -59,7 +59,7 @@ "address": "tfcoremock_simple_resource.second", "mode": "managed", "name": "second", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -106,7 +106,7 @@ "mode": "managed", "name": "second", "previous_address": "tfcoremock_simple_resource.first", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/moved_simple/state.json b/testing/equivalence-tests/outputs/moved_simple/state.json index d39746a9ea..a6243efda8 100644 --- a/testing/equivalence-tests/outputs/moved_simple/state.json +++ b/testing/equivalence-tests/outputs/moved_simple/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.second", "mode": "managed", "name": "second", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/moved_with_drift/plan.json b/testing/equivalence-tests/outputs/moved_with_drift/plan.json index 56426c1498..8648debfbd 100644 --- a/testing/equivalence-tests/outputs/moved_with_drift/plan.json +++ b/testing/equivalence-tests/outputs/moved_with_drift/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -50,7 +50,7 @@ "address": "tfcoremock_simple_resource.base_after", "mode": "managed", "name": "base_after", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -67,7 +67,7 @@ "address": "tfcoremock_simple_resource.dependent", "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -92,7 +92,7 @@ "address": "tfcoremock_simple_resource.base_after", "mode": "managed", "name": "base_after", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -113,7 +113,7 @@ ], "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -168,7 +168,7 @@ "mode": "managed", "name": "base_after", "previous_address": "tfcoremock_simple_resource.base_before", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" }, { @@ -199,7 +199,7 @@ }, "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ], @@ -233,7 +233,7 @@ "mode": "managed", "name": "base_after", "previous_address": "tfcoremock_simple_resource.base_before", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/moved_with_drift/state.json b/testing/equivalence-tests/outputs/moved_with_drift/state.json index ed1e23e3a5..777dd39151 100644 --- a/testing/equivalence-tests/outputs/moved_with_drift/state.json +++ b/testing/equivalence-tests/outputs/moved_with_drift/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.base_after", "mode": "managed", "name": "base_after", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -27,7 +27,7 @@ ], "mode": "managed", "name": "dependent", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/moved_with_refresh_only/plan.json b/testing/equivalence-tests/outputs/moved_with_refresh_only/plan.json index d1e3c88e83..1338bb8368 100644 --- a/testing/equivalence-tests/outputs/moved_with_refresh_only/plan.json +++ b/testing/equivalence-tests/outputs/moved_with_refresh_only/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -39,7 +39,7 @@ "address": "tfcoremock_simple_resource.second", "mode": "managed", "name": "second", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -86,7 +86,7 @@ "mode": "managed", "name": "second", "previous_address": "tfcoremock_simple_resource.first", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/moved_with_refresh_only/state.json b/testing/equivalence-tests/outputs/moved_with_refresh_only/state.json index d39746a9ea..a6243efda8 100644 --- a/testing/equivalence-tests/outputs/moved_with_refresh_only/state.json +++ b/testing/equivalence-tests/outputs/moved_with_refresh_only/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.second", "mode": "managed", "name": "second", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/moved_with_update/plan.json b/testing/equivalence-tests/outputs/moved_with_update/plan.json index 792b1025bf..cb7e488339 100644 --- a/testing/equivalence-tests/outputs/moved_with_update/plan.json +++ b/testing/equivalence-tests/outputs/moved_with_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_simple_resource.moved", "mode": "managed", "name": "moved", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -59,7 +59,7 @@ "address": "tfcoremock_simple_resource.moved", "mode": "managed", "name": "moved", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", @@ -106,7 +106,7 @@ "mode": "managed", "name": "moved", "previous_address": "tfcoremock_simple_resource.base", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_simple_resource" } ] diff --git a/testing/equivalence-tests/outputs/moved_with_update/state.json b/testing/equivalence-tests/outputs/moved_with_update/state.json index 10144ba263..8950e9b8c3 100644 --- a/testing/equivalence-tests/outputs/moved_with_update/state.json +++ b/testing/equivalence-tests/outputs/moved_with_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_simple_resource.moved", "mode": "managed", "name": "moved", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_simple_resource", diff --git a/testing/equivalence-tests/outputs/multiple_block_types/plan.json b/testing/equivalence-tests/outputs/multiple_block_types/plan.json index 30cd19b662..62f38270c1 100644 --- a/testing/equivalence-tests/outputs/multiple_block_types/plan.json +++ b/testing/equivalence-tests/outputs/multiple_block_types/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -63,7 +63,7 @@ "address": "tfcoremock_multiple_blocks.multiple_blocks", "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "first_block": [ @@ -149,7 +149,7 @@ }, "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_multiple_blocks" } ] diff --git a/testing/equivalence-tests/outputs/multiple_block_types/state.json b/testing/equivalence-tests/outputs/multiple_block_types/state.json index 50975efb0e..6068fca0b5 100644 --- a/testing/equivalence-tests/outputs/multiple_block_types/state.json +++ b/testing/equivalence-tests/outputs/multiple_block_types/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_multiple_blocks.multiple_blocks", "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "first_block": [ diff --git a/testing/equivalence-tests/outputs/multiple_block_types_update/plan.json b/testing/equivalence-tests/outputs/multiple_block_types_update/plan.json index 41242cbcb2..d47e7e8be2 100644 --- a/testing/equivalence-tests/outputs/multiple_block_types_update/plan.json +++ b/testing/equivalence-tests/outputs/multiple_block_types_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -63,7 +63,7 @@ "address": "tfcoremock_multiple_blocks.multiple_blocks", "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "first_block": [ @@ -112,7 +112,7 @@ "address": "tfcoremock_multiple_blocks.multiple_blocks", "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "first_block": [ @@ -230,7 +230,7 @@ }, "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_multiple_blocks" } ] diff --git a/testing/equivalence-tests/outputs/multiple_block_types_update/state.json b/testing/equivalence-tests/outputs/multiple_block_types_update/state.json index da62fe61be..b9f560d291 100644 --- a/testing/equivalence-tests/outputs/multiple_block_types_update/state.json +++ b/testing/equivalence-tests/outputs/multiple_block_types_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_multiple_blocks.multiple_blocks", "mode": "managed", "name": "multiple_blocks", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "first_block": [ diff --git a/testing/equivalence-tests/outputs/nested_list/plan.json b/testing/equivalence-tests/outputs/nested_list/plan.json index 3a77037bd8..f05af0fbb0 100644 --- a/testing/equivalence-tests/outputs/nested_list/plan.json +++ b/testing/equivalence-tests/outputs/nested_list/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_list.nested_list", "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "lists": [ @@ -116,7 +116,7 @@ }, "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_list" } ] diff --git a/testing/equivalence-tests/outputs/nested_list/state.json b/testing/equivalence-tests/outputs/nested_list/state.json index 81be1028a7..b71e9ae95b 100644 --- a/testing/equivalence-tests/outputs/nested_list/state.json +++ b/testing/equivalence-tests/outputs/nested_list/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_list.nested_list", "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "lists": [ diff --git a/testing/equivalence-tests/outputs/nested_list_update/plan.json b/testing/equivalence-tests/outputs/nested_list_update/plan.json index 63f4ee4d85..488451edb3 100644 --- a/testing/equivalence-tests/outputs/nested_list_update/plan.json +++ b/testing/equivalence-tests/outputs/nested_list_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -47,7 +47,7 @@ "address": "tfcoremock_nested_list.nested_list", "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "lists": [ @@ -90,7 +90,7 @@ "address": "tfcoremock_nested_list.nested_list", "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "lists": [ @@ -186,7 +186,7 @@ }, "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_list" } ] diff --git a/testing/equivalence-tests/outputs/nested_list_update/state.json b/testing/equivalence-tests/outputs/nested_list_update/state.json index 653474414a..bcd34fc29c 100644 --- a/testing/equivalence-tests/outputs/nested_list_update/state.json +++ b/testing/equivalence-tests/outputs/nested_list_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_list.nested_list", "mode": "managed", "name": "nested_list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "lists": [ diff --git a/testing/equivalence-tests/outputs/nested_map/plan.json b/testing/equivalence-tests/outputs/nested_map/plan.json index 6925e2773b..759aede385 100644 --- a/testing/equivalence-tests/outputs/nested_map/plan.json +++ b/testing/equivalence-tests/outputs/nested_map/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_map.nested_map", "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "maps": { @@ -104,7 +104,7 @@ }, "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_map" } ] diff --git a/testing/equivalence-tests/outputs/nested_map/state.json b/testing/equivalence-tests/outputs/nested_map/state.json index 6945b79a29..41ee0d33cc 100644 --- a/testing/equivalence-tests/outputs/nested_map/state.json +++ b/testing/equivalence-tests/outputs/nested_map/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_map.nested_map", "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "maps": { diff --git a/testing/equivalence-tests/outputs/nested_map_update/plan.json b/testing/equivalence-tests/outputs/nested_map_update/plan.json index 01a5495171..2c51a7e9d5 100644 --- a/testing/equivalence-tests/outputs/nested_map_update/plan.json +++ b/testing/equivalence-tests/outputs/nested_map_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_map.nested_map", "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "maps": { @@ -81,7 +81,7 @@ "address": "tfcoremock_nested_map.nested_map", "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "maps": { @@ -157,7 +157,7 @@ }, "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_map" } ] diff --git a/testing/equivalence-tests/outputs/nested_map_update/state.json b/testing/equivalence-tests/outputs/nested_map_update/state.json index 44c4bcbb72..71b6698a8c 100644 --- a/testing/equivalence-tests/outputs/nested_map_update/state.json +++ b/testing/equivalence-tests/outputs/nested_map_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_map.nested_map", "mode": "managed", "name": "nested_map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "maps": { diff --git a/testing/equivalence-tests/outputs/nested_objects/plan.json b/testing/equivalence-tests/outputs/nested_objects/plan.json index 72923cb8c7..1c8e4c8b63 100644 --- a/testing/equivalence-tests/outputs/nested_objects/plan.json +++ b/testing/equivalence-tests/outputs/nested_objects/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_object.nested_object", "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "parent_object": { @@ -104,7 +104,7 @@ }, "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_object" } ] diff --git a/testing/equivalence-tests/outputs/nested_objects/state.json b/testing/equivalence-tests/outputs/nested_objects/state.json index dcea8f0905..7e8c4c10be 100644 --- a/testing/equivalence-tests/outputs/nested_objects/state.json +++ b/testing/equivalence-tests/outputs/nested_objects/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_object.nested_object", "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "parent_object": { diff --git a/testing/equivalence-tests/outputs/nested_objects_update/plan.json b/testing/equivalence-tests/outputs/nested_objects_update/plan.json index 9fb79028d4..a59493c131 100644 --- a/testing/equivalence-tests/outputs/nested_objects_update/plan.json +++ b/testing/equivalence-tests/outputs/nested_objects_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_object.nested_object", "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "parent_object": { @@ -81,7 +81,7 @@ "address": "tfcoremock_nested_object.nested_object", "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "parent_object": { @@ -157,7 +157,7 @@ }, "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_object" } ] diff --git a/testing/equivalence-tests/outputs/nested_objects_update/state.json b/testing/equivalence-tests/outputs/nested_objects_update/state.json index 2e85de453c..c0eda3d422 100644 --- a/testing/equivalence-tests/outputs/nested_objects_update/state.json +++ b/testing/equivalence-tests/outputs/nested_objects_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_object.nested_object", "mode": "managed", "name": "nested_object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "parent_object": { diff --git a/testing/equivalence-tests/outputs/nested_set/plan.json b/testing/equivalence-tests/outputs/nested_set/plan.json index 03227e772d..4aebc443c1 100644 --- a/testing/equivalence-tests/outputs/nested_set/plan.json +++ b/testing/equivalence-tests/outputs/nested_set/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -46,7 +46,7 @@ "address": "tfcoremock_nested_set.nested_set", "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "sets": [ @@ -116,7 +116,7 @@ }, "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_set" } ] diff --git a/testing/equivalence-tests/outputs/nested_set/state.json b/testing/equivalence-tests/outputs/nested_set/state.json index 27eae07e98..cd275c97d3 100644 --- a/testing/equivalence-tests/outputs/nested_set/state.json +++ b/testing/equivalence-tests/outputs/nested_set/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_set.nested_set", "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "sets": [ diff --git a/testing/equivalence-tests/outputs/nested_set_update/plan.json b/testing/equivalence-tests/outputs/nested_set_update/plan.json index f7e4f6a697..22f11feaa2 100644 --- a/testing/equivalence-tests/outputs/nested_set_update/plan.json +++ b/testing/equivalence-tests/outputs/nested_set_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -47,7 +47,7 @@ "address": "tfcoremock_nested_set.nested_set", "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "sets": [ @@ -90,7 +90,7 @@ "address": "tfcoremock_nested_set.nested_set", "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "sets": [ @@ -186,7 +186,7 @@ }, "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_nested_set" } ] diff --git a/testing/equivalence-tests/outputs/nested_set_update/state.json b/testing/equivalence-tests/outputs/nested_set_update/state.json index e38a1f19e7..e60405709e 100644 --- a/testing/equivalence-tests/outputs/nested_set_update/state.json +++ b/testing/equivalence-tests/outputs/nested_set_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_nested_set.nested_set", "mode": "managed", "name": "nested_set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "sets": [ diff --git a/testing/equivalence-tests/outputs/null_provider_delete/plan.json b/testing/equivalence-tests/outputs/null_provider_delete/plan.json index c95f28b9b2..e4f4813f1b 100644 --- a/testing/equivalence-tests/outputs/null_provider_delete/plan.json +++ b/testing/equivalence-tests/outputs/null_provider_delete/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "null": { - "full_name": "registry.opentofu.org/opentofu/null", + "full_name": "registry.opentofu.org/hashicorp/null", "name": "null", "version_constraint": "3.1.1" } @@ -23,7 +23,7 @@ "address": "null_resource.null_resource", "mode": "managed", "name": "null_resource", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "schema_version": 0, "sensitive_values": {}, "type": "null_resource", @@ -55,7 +55,7 @@ }, "mode": "managed", "name": "null_resource", - "provider_name": "registry.opentofu.org/opentofu/null", + "provider_name": "registry.opentofu.org/hashicorp/null", "type": "null_resource" } ] diff --git a/testing/equivalence-tests/outputs/replace_within_list/plan.json b/testing/equivalence-tests/outputs/replace_within_list/plan.json index ed40c7426b..c0d7bd08f6 100644 --- a/testing/equivalence-tests/outputs/replace_within_list/plan.json +++ b/testing/equivalence-tests/outputs/replace_within_list/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -47,7 +47,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -84,7 +84,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ @@ -175,7 +175,7 @@ }, "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_list" } ] diff --git a/testing/equivalence-tests/outputs/replace_within_list/state.json b/testing/equivalence-tests/outputs/replace_within_list/state.json index 52262323ae..8c51715611 100644 --- a/testing/equivalence-tests/outputs/replace_within_list/state.json +++ b/testing/equivalence-tests/outputs/replace_within_list/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_list.list", "mode": "managed", "name": "list", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "list": [ diff --git a/testing/equivalence-tests/outputs/replace_within_map/plan.json b/testing/equivalence-tests/outputs/replace_within_map/plan.json index f32c5d56e7..84c6b3706d 100644 --- a/testing/equivalence-tests/outputs/replace_within_map/plan.json +++ b/testing/equivalence-tests/outputs/replace_within_map/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -47,7 +47,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": { @@ -84,7 +84,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": { @@ -175,7 +175,7 @@ }, "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_map" } ] diff --git a/testing/equivalence-tests/outputs/replace_within_map/state.json b/testing/equivalence-tests/outputs/replace_within_map/state.json index 57317d1471..43b0adb0c4 100644 --- a/testing/equivalence-tests/outputs/replace_within_map/state.json +++ b/testing/equivalence-tests/outputs/replace_within_map/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_map.map", "mode": "managed", "name": "map", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "map": { diff --git a/testing/equivalence-tests/outputs/replace_within_object/plan.json b/testing/equivalence-tests/outputs/replace_within_object/plan.json index 7645087cd2..73c7777e96 100644 --- a/testing/equivalence-tests/outputs/replace_within_object/plan.json +++ b/testing/equivalence-tests/outputs/replace_within_object/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -39,7 +39,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -64,7 +64,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -118,7 +118,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/replace_within_object/state.json b/testing/equivalence-tests/outputs/replace_within_object/state.json index d83e783b51..d452bf8b8e 100644 --- a/testing/equivalence-tests/outputs/replace_within_object/state.json +++ b/testing/equivalence-tests/outputs/replace_within_object/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} diff --git a/testing/equivalence-tests/outputs/replace_within_set/plan.json b/testing/equivalence-tests/outputs/replace_within_set/plan.json index b535e08c7c..3439d73777 100644 --- a/testing/equivalence-tests/outputs/replace_within_set/plan.json +++ b/testing/equivalence-tests/outputs/replace_within_set/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -47,7 +47,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -84,7 +84,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ @@ -173,7 +173,7 @@ }, "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_set" } ] diff --git a/testing/equivalence-tests/outputs/replace_within_set/state.json b/testing/equivalence-tests/outputs/replace_within_set/state.json index 8f5f70c4da..90a8b307e6 100644 --- a/testing/equivalence-tests/outputs/replace_within_set/state.json +++ b/testing/equivalence-tests/outputs/replace_within_set/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_set.set", "mode": "managed", "name": "set", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "set": [ diff --git a/testing/equivalence-tests/outputs/simple_object/plan.json b/testing/equivalence-tests/outputs/simple_object/plan.json index 3dd997e39f..84b8643244 100644 --- a/testing/equivalence-tests/outputs/simple_object/plan.json +++ b/testing/equivalence-tests/outputs/simple_object/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -83,7 +83,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/simple_object/state.json b/testing/equivalence-tests/outputs/simple_object/state.json index ad216739e0..3935da7a3d 100644 --- a/testing/equivalence-tests/outputs/simple_object/state.json +++ b/testing/equivalence-tests/outputs/simple_object/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} diff --git a/testing/equivalence-tests/outputs/simple_object_empty/plan.json b/testing/equivalence-tests/outputs/simple_object_empty/plan.json index 243d56b449..626f8c458c 100644 --- a/testing/equivalence-tests/outputs/simple_object_empty/plan.json +++ b/testing/equivalence-tests/outputs/simple_object_empty/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -34,7 +34,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -61,7 +61,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -113,7 +113,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/simple_object_empty/state.json b/testing/equivalence-tests/outputs/simple_object_empty/state.json index fed618d7d3..b7589559c1 100644 --- a/testing/equivalence-tests/outputs/simple_object_empty/state.json +++ b/testing/equivalence-tests/outputs/simple_object_empty/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} diff --git a/testing/equivalence-tests/outputs/simple_object_null/plan.json b/testing/equivalence-tests/outputs/simple_object_null/plan.json index 5cf32f27e3..fb887fbbc8 100644 --- a/testing/equivalence-tests/outputs/simple_object_null/plan.json +++ b/testing/equivalence-tests/outputs/simple_object_null/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -29,7 +29,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_object", @@ -50,7 +50,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -96,7 +96,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/simple_object_null/state.json b/testing/equivalence-tests/outputs/simple_object_null/state.json index 47aa09d2af..d5acec6773 100644 --- a/testing/equivalence-tests/outputs/simple_object_null/state.json +++ b/testing/equivalence-tests/outputs/simple_object_null/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": {}, "type": "tfcoremock_object", diff --git a/testing/equivalence-tests/outputs/simple_object_replace/plan.json b/testing/equivalence-tests/outputs/simple_object_replace/plan.json index 6c4a1ab86a..e86430997c 100644 --- a/testing/equivalence-tests/outputs/simple_object_replace/plan.json +++ b/testing/equivalence-tests/outputs/simple_object_replace/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -41,7 +41,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -68,7 +68,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -127,7 +127,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/simple_object_replace/state.json b/testing/equivalence-tests/outputs/simple_object_replace/state.json index 117c5cdf6c..d3c0eef554 100644 --- a/testing/equivalence-tests/outputs/simple_object_replace/state.json +++ b/testing/equivalence-tests/outputs/simple_object_replace/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} diff --git a/testing/equivalence-tests/outputs/simple_object_update/plan.json b/testing/equivalence-tests/outputs/simple_object_update/plan.json index a66044d684..2e94f910d4 100644 --- a/testing/equivalence-tests/outputs/simple_object_update/plan.json +++ b/testing/equivalence-tests/outputs/simple_object_update/plan.json @@ -2,7 +2,7 @@ "configuration": { "provider_config": { "tfcoremock": { - "full_name": "registry.opentofu.org/opentofu/tfcoremock", + "full_name": "registry.opentofu.org/hashicorp/tfcoremock", "name": "tfcoremock", "version_constraint": "0.1.1" } @@ -38,7 +38,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -65,7 +65,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} @@ -117,7 +117,7 @@ }, "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "type": "tfcoremock_object" } ] diff --git a/testing/equivalence-tests/outputs/simple_object_update/state.json b/testing/equivalence-tests/outputs/simple_object_update/state.json index 1fa6dbd75f..04ba80cccb 100644 --- a/testing/equivalence-tests/outputs/simple_object_update/state.json +++ b/testing/equivalence-tests/outputs/simple_object_update/state.json @@ -7,7 +7,7 @@ "address": "tfcoremock_object.object", "mode": "managed", "name": "object", - "provider_name": "registry.opentofu.org/opentofu/tfcoremock", + "provider_name": "registry.opentofu.org/hashicorp/tfcoremock", "schema_version": 0, "sensitive_values": { "object": {} diff --git a/testing/equivalence-tests/tests/basic_json_string_update/.terraform.lock.hcl b/testing/equivalence-tests/tests/basic_json_string_update/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/basic_json_string_update/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/basic_json_string_update/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/basic_json_string_update/main.tf b/testing/equivalence-tests/tests/basic_json_string_update/main.tf index 85b74788cf..37e3cadacb 100644 --- a/testing/equivalence-tests/tests/basic_json_string_update/main.tf +++ b/testing/equivalence-tests/tests/basic_json_string_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_json_string_update/terraform.tfstate b/testing/equivalence-tests/tests/basic_json_string_update/terraform.tfstate index 03642be12a..e694e52b1e 100644 --- a/testing/equivalence-tests/tests/basic_json_string_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_json_string_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "json", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_list/main.tf b/testing/equivalence-tests/tests/basic_list/main.tf index 53a73d06e4..e2e5a6b647 100644 --- a/testing/equivalence-tests/tests/basic_list/main.tf +++ b/testing/equivalence-tests/tests/basic_list/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_list_empty/main.tf b/testing/equivalence-tests/tests/basic_list_empty/main.tf index edb5dabd97..520ea046ba 100644 --- a/testing/equivalence-tests/tests/basic_list_empty/main.tf +++ b/testing/equivalence-tests/tests/basic_list_empty/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_list_empty/terraform.tfstate b/testing/equivalence-tests/tests/basic_list_empty/terraform.tfstate index 67dd7ea755..2c861265dd 100644 --- a/testing/equivalence-tests/tests/basic_list_empty/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_list_empty/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_list", "name": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_list_null/main.tf b/testing/equivalence-tests/tests/basic_list_null/main.tf index 194e2288d5..dd4ea8dbef 100644 --- a/testing/equivalence-tests/tests/basic_list_null/main.tf +++ b/testing/equivalence-tests/tests/basic_list_null/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_list_null/terraform.tfstate b/testing/equivalence-tests/tests/basic_list_null/terraform.tfstate index 67dd7ea755..2c861265dd 100644 --- a/testing/equivalence-tests/tests/basic_list_null/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_list_null/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_list", "name": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_list_update/main.tf b/testing/equivalence-tests/tests/basic_list_update/main.tf index 6eeecf2e5d..95e5dbae69 100644 --- a/testing/equivalence-tests/tests/basic_list_update/main.tf +++ b/testing/equivalence-tests/tests/basic_list_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_list_update/terraform.tfstate b/testing/equivalence-tests/tests/basic_list_update/terraform.tfstate index 67dd7ea755..2c861265dd 100644 --- a/testing/equivalence-tests/tests/basic_list_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_list_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_list", "name": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_map/main.tf b/testing/equivalence-tests/tests/basic_map/main.tf index ad0c2236c1..5622c5c084 100644 --- a/testing/equivalence-tests/tests/basic_map/main.tf +++ b/testing/equivalence-tests/tests/basic_map/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_map_empty/main.tf b/testing/equivalence-tests/tests/basic_map_empty/main.tf index 5f0f7ba9a2..aebd593122 100644 --- a/testing/equivalence-tests/tests/basic_map_empty/main.tf +++ b/testing/equivalence-tests/tests/basic_map_empty/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_map_empty/terraform.tfstate b/testing/equivalence-tests/tests/basic_map_empty/terraform.tfstate index fb844bbbbc..2acdd4b98f 100644 --- a/testing/equivalence-tests/tests/basic_map_empty/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_map_empty/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_map", "name": "map", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_map_null/main.tf b/testing/equivalence-tests/tests/basic_map_null/main.tf index bca11adc4d..6bac607214 100644 --- a/testing/equivalence-tests/tests/basic_map_null/main.tf +++ b/testing/equivalence-tests/tests/basic_map_null/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_map_null/terraform.tfstate b/testing/equivalence-tests/tests/basic_map_null/terraform.tfstate index fb844bbbbc..2acdd4b98f 100644 --- a/testing/equivalence-tests/tests/basic_map_null/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_map_null/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_map", "name": "map", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_map_update/main.tf b/testing/equivalence-tests/tests/basic_map_update/main.tf index acf55b24f8..3446f95ef5 100644 --- a/testing/equivalence-tests/tests/basic_map_update/main.tf +++ b/testing/equivalence-tests/tests/basic_map_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_map_update/terraform.tfstate b/testing/equivalence-tests/tests/basic_map_update/terraform.tfstate index fb844bbbbc..2acdd4b98f 100644 --- a/testing/equivalence-tests/tests/basic_map_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_map_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_map", "name": "map", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_multiline_string_update/.terraform.lock.hcl b/testing/equivalence-tests/tests/basic_multiline_string_update/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/basic_multiline_string_update/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/basic_multiline_string_update/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/basic_multiline_string_update/main.tf b/testing/equivalence-tests/tests/basic_multiline_string_update/main.tf index 11ed07b51f..c3bbaaa8bf 100644 --- a/testing/equivalence-tests/tests/basic_multiline_string_update/main.tf +++ b/testing/equivalence-tests/tests/basic_multiline_string_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_multiline_string_update/terraform.tfstate b/testing/equivalence-tests/tests/basic_multiline_string_update/terraform.tfstate index e718cd1b80..6fca5f0774 100644 --- a/testing/equivalence-tests/tests/basic_multiline_string_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_multiline_string_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "multiline", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_set/main.tf b/testing/equivalence-tests/tests/basic_set/main.tf index 28c169f14a..a327a27c16 100644 --- a/testing/equivalence-tests/tests/basic_set/main.tf +++ b/testing/equivalence-tests/tests/basic_set/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_set_empty/main.tf b/testing/equivalence-tests/tests/basic_set_empty/main.tf index 57be508ef3..aa7d0d2007 100644 --- a/testing/equivalence-tests/tests/basic_set_empty/main.tf +++ b/testing/equivalence-tests/tests/basic_set_empty/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_set_empty/terraform.tfstate b/testing/equivalence-tests/tests/basic_set_empty/terraform.tfstate index e4c0fc0dc9..ff64833bf5 100644 --- a/testing/equivalence-tests/tests/basic_set_empty/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_set_empty/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_set", "name": "set", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_set_null/main.tf b/testing/equivalence-tests/tests/basic_set_null/main.tf index 4d427b326f..aa7594d68d 100644 --- a/testing/equivalence-tests/tests/basic_set_null/main.tf +++ b/testing/equivalence-tests/tests/basic_set_null/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_set_null/terraform.tfstate b/testing/equivalence-tests/tests/basic_set_null/terraform.tfstate index e4c0fc0dc9..ff64833bf5 100644 --- a/testing/equivalence-tests/tests/basic_set_null/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_set_null/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_set", "name": "set", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/basic_set_update/main.tf b/testing/equivalence-tests/tests/basic_set_update/main.tf index 8af8ce36a4..dfbd4b2830 100644 --- a/testing/equivalence-tests/tests/basic_set_update/main.tf +++ b/testing/equivalence-tests/tests/basic_set_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/basic_set_update/terraform.tfstate b/testing/equivalence-tests/tests/basic_set_update/terraform.tfstate index e4c0fc0dc9..ff64833bf5 100644 --- a/testing/equivalence-tests/tests/basic_set_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/basic_set_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_set", "name": "set", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/data_read/main.tf b/testing/equivalence-tests/tests/data_read/main.tf index 68a2f84970..67c3f11a65 100644 --- a/testing/equivalence-tests/tests/data_read/main.tf +++ b/testing/equivalence-tests/tests/data_read/main.tf @@ -1,15 +1,15 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } local = { - source = "opentofu/local" + source = "hashicorp/local" version = "2.2.3" } random = { - source = "opentofu/random" + source = "hashicorp/random" version = "3.4.3" } } diff --git a/testing/equivalence-tests/tests/drift_refresh_only/.terraform.lock.hcl b/testing/equivalence-tests/tests/drift_refresh_only/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/drift_refresh_only/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/drift_refresh_only/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/drift_refresh_only/main.tf b/testing/equivalence-tests/tests/drift_refresh_only/main.tf index 17d4615a2a..77e891392b 100644 --- a/testing/equivalence-tests/tests/drift_refresh_only/main.tf +++ b/testing/equivalence-tests/tests/drift_refresh_only/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/drift_refresh_only/terraform.tfstate b/testing/equivalence-tests/tests/drift_refresh_only/terraform.tfstate index 226998d9f4..5b1301b11a 100644 --- a/testing/equivalence-tests/tests/drift_refresh_only/terraform.tfstate +++ b/testing/equivalence-tests/tests/drift_refresh_only/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "drift", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/drift_relevant_attributes/.terraform.lock.hcl b/testing/equivalence-tests/tests/drift_relevant_attributes/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/drift_relevant_attributes/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/drift_relevant_attributes/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/drift_relevant_attributes/main.tf b/testing/equivalence-tests/tests/drift_relevant_attributes/main.tf index c5b68c1556..a73a09797d 100644 --- a/testing/equivalence-tests/tests/drift_relevant_attributes/main.tf +++ b/testing/equivalence-tests/tests/drift_relevant_attributes/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/drift_relevant_attributes/terraform.tfstate b/testing/equivalence-tests/tests/drift_relevant_attributes/terraform.tfstate index 6de4476098..0ab4cacceb 100644 --- a/testing/equivalence-tests/tests/drift_relevant_attributes/terraform.tfstate +++ b/testing/equivalence-tests/tests/drift_relevant_attributes/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "base", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, @@ -29,7 +29,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "dependent", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/drift_simple/.terraform.lock.hcl b/testing/equivalence-tests/tests/drift_simple/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/drift_simple/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/drift_simple/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/drift_simple/main.tf b/testing/equivalence-tests/tests/drift_simple/main.tf index 17d4615a2a..77e891392b 100644 --- a/testing/equivalence-tests/tests/drift_simple/main.tf +++ b/testing/equivalence-tests/tests/drift_simple/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/drift_simple/terraform.tfstate b/testing/equivalence-tests/tests/drift_simple/terraform.tfstate index e88702d576..f7974ae98e 100644 --- a/testing/equivalence-tests/tests/drift_simple/terraform.tfstate +++ b/testing/equivalence-tests/tests/drift_simple/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "drift", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/fully_populated_complex/main.tf b/testing/equivalence-tests/tests/fully_populated_complex/main.tf index d8992482e3..64335c742e 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex/main.tf +++ b/testing/equivalence-tests/tests/fully_populated_complex/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/fully_populated_complex_destroy/.terraform.lock.hcl b/testing/equivalence-tests/tests/fully_populated_complex_destroy/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_destroy/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/fully_populated_complex_destroy/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/fully_populated_complex_destroy/main.tf b/testing/equivalence-tests/tests/fully_populated_complex_destroy/main.tf index 018956a21a..f5b590fde2 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_destroy/main.tf +++ b/testing/equivalence-tests/tests/fully_populated_complex_destroy/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/fully_populated_complex_destroy/terraform.tfstate b/testing/equivalence-tests/tests/fully_populated_complex_destroy/terraform.tfstate index 108e3dd11e..fd65c6c66a 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_destroy/terraform.tfstate +++ b/testing/equivalence-tests/tests/fully_populated_complex_destroy/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_complex_resource", "name": "complex", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/fully_populated_complex_update/.terraform.lock.hcl b/testing/equivalence-tests/tests/fully_populated_complex_update/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_update/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/fully_populated_complex_update/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/fully_populated_complex_update/main.tf b/testing/equivalence-tests/tests/fully_populated_complex_update/main.tf index 018956a21a..f5b590fde2 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_update/main.tf +++ b/testing/equivalence-tests/tests/fully_populated_complex_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/fully_populated_complex_update/terraform.tfstate b/testing/equivalence-tests/tests/fully_populated_complex_update/terraform.tfstate index 108e3dd11e..fd65c6c66a 100644 --- a/testing/equivalence-tests/tests/fully_populated_complex_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/fully_populated_complex_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_complex_resource", "name": "complex", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/local_provider_basic/main.tf b/testing/equivalence-tests/tests/local_provider_basic/main.tf index bc33228809..7640a43ae2 100644 --- a/testing/equivalence-tests/tests/local_provider_basic/main.tf +++ b/testing/equivalence-tests/tests/local_provider_basic/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { local = { - source = "opentofu/local" + source = "hashicorp/local" version = "2.2.3" } } diff --git a/testing/equivalence-tests/tests/local_provider_delete/.terraform.lock.hcl b/testing/equivalence-tests/tests/local_provider_delete/.terraform.lock.hcl index 797316c277..896ec8397d 100644 --- a/testing/equivalence-tests/tests/local_provider_delete/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/local_provider_delete/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/local" { +provider "registry.opentofu.org/hashicorp/local" { version = "2.2.3" constraints = "2.2.3" hashes = [ diff --git a/testing/equivalence-tests/tests/local_provider_delete/main.tf b/testing/equivalence-tests/tests/local_provider_delete/main.tf index 9479d62b86..4b08d8bbc8 100644 --- a/testing/equivalence-tests/tests/local_provider_delete/main.tf +++ b/testing/equivalence-tests/tests/local_provider_delete/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { local = { - source = "opentofu/local" + source = "hashicorp/local" version = "2.2.3" } } diff --git a/testing/equivalence-tests/tests/local_provider_delete/terraform.tfstate b/testing/equivalence-tests/tests/local_provider_delete/terraform.tfstate index dbaf6d7723..ec682f1684 100644 --- a/testing/equivalence-tests/tests/local_provider_delete/terraform.tfstate +++ b/testing/equivalence-tests/tests/local_provider_delete/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "local_file", "name": "local_file", - "provider": "provider[\"registry.opentofu.org/opentofu/local\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/local\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/local_provider_update/.terraform.lock.hcl b/testing/equivalence-tests/tests/local_provider_update/.terraform.lock.hcl index 797316c277..896ec8397d 100644 --- a/testing/equivalence-tests/tests/local_provider_update/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/local_provider_update/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/local" { +provider "registry.opentofu.org/hashicorp/local" { version = "2.2.3" constraints = "2.2.3" hashes = [ diff --git a/testing/equivalence-tests/tests/local_provider_update/main.tf b/testing/equivalence-tests/tests/local_provider_update/main.tf index 6c65c3ff07..e47de3cfb2 100644 --- a/testing/equivalence-tests/tests/local_provider_update/main.tf +++ b/testing/equivalence-tests/tests/local_provider_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { local = { - source = "opentofu/local" + source = "hashicorp/local" version = "2.2.3" } } diff --git a/testing/equivalence-tests/tests/local_provider_update/terraform.tfstate b/testing/equivalence-tests/tests/local_provider_update/terraform.tfstate index dbaf6d7723..ec682f1684 100644 --- a/testing/equivalence-tests/tests/local_provider_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/local_provider_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "local_file", "name": "local_file", - "provider": "provider[\"registry.opentofu.org/opentofu/local\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/local\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/moved_simple/.terraform.lock.hcl b/testing/equivalence-tests/tests/moved_simple/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/moved_simple/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/moved_simple/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/moved_simple/main.tf b/testing/equivalence-tests/tests/moved_simple/main.tf index e4a76d7c28..356b980f9b 100644 --- a/testing/equivalence-tests/tests/moved_simple/main.tf +++ b/testing/equivalence-tests/tests/moved_simple/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/moved_simple/terraform.tfstate b/testing/equivalence-tests/tests/moved_simple/terraform.tfstate index cdfd8d152d..271760bd74 100644 --- a/testing/equivalence-tests/tests/moved_simple/terraform.tfstate +++ b/testing/equivalence-tests/tests/moved_simple/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "first", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/moved_with_drift/.terraform.lock.hcl b/testing/equivalence-tests/tests/moved_with_drift/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/moved_with_drift/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/moved_with_drift/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/moved_with_drift/main.tf b/testing/equivalence-tests/tests/moved_with_drift/main.tf index 41c2a1b189..e060e2bbd0 100644 --- a/testing/equivalence-tests/tests/moved_with_drift/main.tf +++ b/testing/equivalence-tests/tests/moved_with_drift/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/moved_with_drift/terraform.tfstate b/testing/equivalence-tests/tests/moved_with_drift/terraform.tfstate index 3e2d5ab9d0..4cfba23690 100644 --- a/testing/equivalence-tests/tests/moved_with_drift/terraform.tfstate +++ b/testing/equivalence-tests/tests/moved_with_drift/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "base_before", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, @@ -29,7 +29,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "dependent", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/moved_with_refresh_only/.terraform.lock.hcl b/testing/equivalence-tests/tests/moved_with_refresh_only/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/moved_with_refresh_only/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/moved_with_refresh_only/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/moved_with_refresh_only/main.tf b/testing/equivalence-tests/tests/moved_with_refresh_only/main.tf index e4a76d7c28..356b980f9b 100644 --- a/testing/equivalence-tests/tests/moved_with_refresh_only/main.tf +++ b/testing/equivalence-tests/tests/moved_with_refresh_only/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/moved_with_refresh_only/terraform.tfstate b/testing/equivalence-tests/tests/moved_with_refresh_only/terraform.tfstate index cdfd8d152d..271760bd74 100644 --- a/testing/equivalence-tests/tests/moved_with_refresh_only/terraform.tfstate +++ b/testing/equivalence-tests/tests/moved_with_refresh_only/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "first", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/moved_with_update/.terraform.lock.hcl b/testing/equivalence-tests/tests/moved_with_update/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/moved_with_update/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/moved_with_update/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/moved_with_update/main.tf b/testing/equivalence-tests/tests/moved_with_update/main.tf index 464cb7330a..a727802429 100644 --- a/testing/equivalence-tests/tests/moved_with_update/main.tf +++ b/testing/equivalence-tests/tests/moved_with_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/moved_with_update/terraform.tfstate b/testing/equivalence-tests/tests/moved_with_update/terraform.tfstate index 90c5ff6587..cb72714009 100644 --- a/testing/equivalence-tests/tests/moved_with_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/moved_with_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_simple_resource", "name": "base", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/multiple_block_types/main.tf b/testing/equivalence-tests/tests/multiple_block_types/main.tf index d411de78a4..370ada5f25 100644 --- a/testing/equivalence-tests/tests/multiple_block_types/main.tf +++ b/testing/equivalence-tests/tests/multiple_block_types/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/multiple_block_types_update/main.tf b/testing/equivalence-tests/tests/multiple_block_types_update/main.tf index e1f166e0b9..df3b5c0f93 100644 --- a/testing/equivalence-tests/tests/multiple_block_types_update/main.tf +++ b/testing/equivalence-tests/tests/multiple_block_types_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/multiple_block_types_update/terraform.tfstate b/testing/equivalence-tests/tests/multiple_block_types_update/terraform.tfstate index 7c55301686..ef813582ab 100644 --- a/testing/equivalence-tests/tests/multiple_block_types_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/multiple_block_types_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_multiple_blocks", "name": "multiple_blocks", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/nested_list/main.tf b/testing/equivalence-tests/tests/nested_list/main.tf index 408fbb8aee..23652adafe 100644 --- a/testing/equivalence-tests/tests/nested_list/main.tf +++ b/testing/equivalence-tests/tests/nested_list/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_list_update/main.tf b/testing/equivalence-tests/tests/nested_list_update/main.tf index 72e84b30fd..bc1808e14e 100644 --- a/testing/equivalence-tests/tests/nested_list_update/main.tf +++ b/testing/equivalence-tests/tests/nested_list_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_list_update/terraform.tfstate b/testing/equivalence-tests/tests/nested_list_update/terraform.tfstate index cc3ba4f98c..f31f73f280 100644 --- a/testing/equivalence-tests/tests/nested_list_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/nested_list_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_nested_list", "name": "nested_list", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/nested_map/main.tf b/testing/equivalence-tests/tests/nested_map/main.tf index 67a76ee7ea..1db6d160fa 100644 --- a/testing/equivalence-tests/tests/nested_map/main.tf +++ b/testing/equivalence-tests/tests/nested_map/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_map_update/main.tf b/testing/equivalence-tests/tests/nested_map_update/main.tf index 1958313715..91e57e037b 100644 --- a/testing/equivalence-tests/tests/nested_map_update/main.tf +++ b/testing/equivalence-tests/tests/nested_map_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_map_update/terraform.tfstate b/testing/equivalence-tests/tests/nested_map_update/terraform.tfstate index 3150ad80c7..d9e7f83494 100644 --- a/testing/equivalence-tests/tests/nested_map_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/nested_map_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_nested_map", "name": "nested_map", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/nested_objects/main.tf b/testing/equivalence-tests/tests/nested_objects/main.tf index f29a99bdb3..b8bd36bdbe 100644 --- a/testing/equivalence-tests/tests/nested_objects/main.tf +++ b/testing/equivalence-tests/tests/nested_objects/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_objects_update/main.tf b/testing/equivalence-tests/tests/nested_objects_update/main.tf index a30c598e7e..c351eb15d0 100644 --- a/testing/equivalence-tests/tests/nested_objects_update/main.tf +++ b/testing/equivalence-tests/tests/nested_objects_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_objects_update/terraform.tfstate b/testing/equivalence-tests/tests/nested_objects_update/terraform.tfstate index 2036d220a7..d84317d2d4 100644 --- a/testing/equivalence-tests/tests/nested_objects_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/nested_objects_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_nested_object", "name": "nested_object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/nested_set/main.tf b/testing/equivalence-tests/tests/nested_set/main.tf index c57983b65d..9c486dfa18 100644 --- a/testing/equivalence-tests/tests/nested_set/main.tf +++ b/testing/equivalence-tests/tests/nested_set/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_set_update/main.tf b/testing/equivalence-tests/tests/nested_set_update/main.tf index ccc2135272..e3f7b747ce 100644 --- a/testing/equivalence-tests/tests/nested_set_update/main.tf +++ b/testing/equivalence-tests/tests/nested_set_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/nested_set_update/terraform.tfstate b/testing/equivalence-tests/tests/nested_set_update/terraform.tfstate index 4ca8852a6c..e986ceeb2e 100644 --- a/testing/equivalence-tests/tests/nested_set_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/nested_set_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_nested_set", "name": "nested_set", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/null_provider_delete/.terraform.lock.hcl b/testing/equivalence-tests/tests/null_provider_delete/.terraform.lock.hcl index ad4e482d08..9adde3019a 100644 --- a/testing/equivalence-tests/tests/null_provider_delete/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/null_provider_delete/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/null" { +provider "registry.opentofu.org/hashicorp/null" { version = "3.1.1" constraints = "3.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/null_provider_delete/main.tf b/testing/equivalence-tests/tests/null_provider_delete/main.tf index 35bd79f850..f4234bfebb 100644 --- a/testing/equivalence-tests/tests/null_provider_delete/main.tf +++ b/testing/equivalence-tests/tests/null_provider_delete/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { null = { - source = "opentofu/null" + source = "hashicorp/null" version = "3.1.1" } } diff --git a/testing/equivalence-tests/tests/null_provider_delete/terraform.tfstate b/testing/equivalence-tests/tests/null_provider_delete/terraform.tfstate index 3b7d7b836c..cd042d75ed 100644 --- a/testing/equivalence-tests/tests/null_provider_delete/terraform.tfstate +++ b/testing/equivalence-tests/tests/null_provider_delete/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "null_resource", "name": "null_resource", - "provider": "provider[\"registry.opentofu.org/opentofu/null\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/null\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/replace_within_list/.terraform.lock.hcl b/testing/equivalence-tests/tests/replace_within_list/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/replace_within_list/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/replace_within_list/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/replace_within_list/main.tf b/testing/equivalence-tests/tests/replace_within_list/main.tf index e871dfbccd..3f4d34b617 100644 --- a/testing/equivalence-tests/tests/replace_within_list/main.tf +++ b/testing/equivalence-tests/tests/replace_within_list/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/replace_within_list/terraform.tfstate b/testing/equivalence-tests/tests/replace_within_list/terraform.tfstate index 5c5a94f042..b4cd40e3e5 100644 --- a/testing/equivalence-tests/tests/replace_within_list/terraform.tfstate +++ b/testing/equivalence-tests/tests/replace_within_list/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_list", "name": "list", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/replace_within_map/.terraform.lock.hcl b/testing/equivalence-tests/tests/replace_within_map/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/replace_within_map/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/replace_within_map/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/replace_within_map/main.tf b/testing/equivalence-tests/tests/replace_within_map/main.tf index e3c21d3349..aafa092a33 100644 --- a/testing/equivalence-tests/tests/replace_within_map/main.tf +++ b/testing/equivalence-tests/tests/replace_within_map/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/replace_within_map/terraform.tfstate b/testing/equivalence-tests/tests/replace_within_map/terraform.tfstate index 475bb12c2f..2d9bcc31d0 100644 --- a/testing/equivalence-tests/tests/replace_within_map/terraform.tfstate +++ b/testing/equivalence-tests/tests/replace_within_map/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_map", "name": "map", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/replace_within_object/.terraform.lock.hcl b/testing/equivalence-tests/tests/replace_within_object/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/replace_within_object/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/replace_within_object/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/replace_within_object/main.tf b/testing/equivalence-tests/tests/replace_within_object/main.tf index f503334a83..9cda772181 100644 --- a/testing/equivalence-tests/tests/replace_within_object/main.tf +++ b/testing/equivalence-tests/tests/replace_within_object/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/replace_within_object/terraform.tfstate b/testing/equivalence-tests/tests/replace_within_object/terraform.tfstate index 6dfa472bd9..c38491d22e 100644 --- a/testing/equivalence-tests/tests/replace_within_object/terraform.tfstate +++ b/testing/equivalence-tests/tests/replace_within_object/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_object", "name": "object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/replace_within_set/.terraform.lock.hcl b/testing/equivalence-tests/tests/replace_within_set/.terraform.lock.hcl index b6fe6e172b..23e84f6fbd 100644 --- a/testing/equivalence-tests/tests/replace_within_set/.terraform.lock.hcl +++ b/testing/equivalence-tests/tests/replace_within_set/.terraform.lock.hcl @@ -1,7 +1,7 @@ # This file is maintained automatically by "opentf init". # Manual edits may be lost in future updates. -provider "registry.opentofu.org/opentofu/tfcoremock" { +provider "registry.opentofu.org/hashicorp/tfcoremock" { version = "0.1.1" constraints = "0.1.1" hashes = [ diff --git a/testing/equivalence-tests/tests/replace_within_set/main.tf b/testing/equivalence-tests/tests/replace_within_set/main.tf index c94cdbf135..64a599b9d6 100644 --- a/testing/equivalence-tests/tests/replace_within_set/main.tf +++ b/testing/equivalence-tests/tests/replace_within_set/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/replace_within_set/terraform.tfstate b/testing/equivalence-tests/tests/replace_within_set/terraform.tfstate index 8b43b00bf2..5f9c993e09 100644 --- a/testing/equivalence-tests/tests/replace_within_set/terraform.tfstate +++ b/testing/equivalence-tests/tests/replace_within_set/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_set", "name": "set", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/simple_object/main.tf b/testing/equivalence-tests/tests/simple_object/main.tf index 5b0bcf38c3..7881c59081 100644 --- a/testing/equivalence-tests/tests/simple_object/main.tf +++ b/testing/equivalence-tests/tests/simple_object/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/simple_object_empty/main.tf b/testing/equivalence-tests/tests/simple_object_empty/main.tf index 6fd41abdaf..c0e38ad82b 100644 --- a/testing/equivalence-tests/tests/simple_object_empty/main.tf +++ b/testing/equivalence-tests/tests/simple_object_empty/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/simple_object_empty/terraform.tfstate b/testing/equivalence-tests/tests/simple_object_empty/terraform.tfstate index 7f229725c8..b418bf609a 100644 --- a/testing/equivalence-tests/tests/simple_object_empty/terraform.tfstate +++ b/testing/equivalence-tests/tests/simple_object_empty/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_object", "name": "object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/simple_object_null/main.tf b/testing/equivalence-tests/tests/simple_object_null/main.tf index 2c47c96a7f..62c0f194a5 100644 --- a/testing/equivalence-tests/tests/simple_object_null/main.tf +++ b/testing/equivalence-tests/tests/simple_object_null/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/simple_object_null/terraform.tfstate b/testing/equivalence-tests/tests/simple_object_null/terraform.tfstate index 7f229725c8..b418bf609a 100644 --- a/testing/equivalence-tests/tests/simple_object_null/terraform.tfstate +++ b/testing/equivalence-tests/tests/simple_object_null/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_object", "name": "object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/simple_object_replace/main.tf b/testing/equivalence-tests/tests/simple_object_replace/main.tf index 0b6f8d36cc..0b82b8e2dc 100644 --- a/testing/equivalence-tests/tests/simple_object_replace/main.tf +++ b/testing/equivalence-tests/tests/simple_object_replace/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/simple_object_replace/terraform.tfstate b/testing/equivalence-tests/tests/simple_object_replace/terraform.tfstate index 8f94d3ba3d..301ee7dd06 100644 --- a/testing/equivalence-tests/tests/simple_object_replace/terraform.tfstate +++ b/testing/equivalence-tests/tests/simple_object_replace/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_object", "name": "object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/testing/equivalence-tests/tests/simple_object_update/main.tf b/testing/equivalence-tests/tests/simple_object_update/main.tf index 5f96d61c8a..8d48cc5294 100644 --- a/testing/equivalence-tests/tests/simple_object_update/main.tf +++ b/testing/equivalence-tests/tests/simple_object_update/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { tfcoremock = { - source = "opentofu/tfcoremock" + source = "hashicorp/tfcoremock" version = "0.1.1" } } diff --git a/testing/equivalence-tests/tests/simple_object_update/terraform.tfstate b/testing/equivalence-tests/tests/simple_object_update/terraform.tfstate index 7f229725c8..b418bf609a 100644 --- a/testing/equivalence-tests/tests/simple_object_update/terraform.tfstate +++ b/testing/equivalence-tests/tests/simple_object_update/terraform.tfstate @@ -9,7 +9,7 @@ "mode": "managed", "type": "tfcoremock_object", "name": "object", - "provider": "provider[\"registry.opentofu.org/opentofu/tfcoremock\"]", + "provider": "provider[\"registry.opentofu.org/hashicorp/tfcoremock\"]", "instances": [ { "schema_version": 0, diff --git a/website/docs/cli/commands/state/replace-provider.mdx b/website/docs/cli/commands/state/replace-provider.mdx index bcc0859238..44e3919d3d 100644 --- a/website/docs/cli/commands/state/replace-provider.mdx +++ b/website/docs/cli/commands/state/replace-provider.mdx @@ -43,8 +43,8 @@ For configurations using ## Example -The example below replaces the `opentofu/aws` provider with a fork by `acme`, hosted at a private registry at `registry.acme.corp`: +The example below replaces the `hashicorp/aws` provider with a fork by `acme`, hosted at a private registry at `registry.acme.corp`: ```shell -$ tofu state replace-provider opentofu/aws registry.acme.corp/acme/aws +$ tofu state replace-provider hashicorp/aws registry.acme.corp/acme/aws ``` diff --git a/website/docs/cli/commands/version.mdx b/website/docs/cli/commands/version.mdx index 67851f2dc5..0bb07f2e16 100644 --- a/website/docs/cli/commands/version.mdx +++ b/website/docs/cli/commands/version.mdx @@ -29,7 +29,7 @@ Basic usage, with security information shown if relevant: $ tofu version OpenTofu v1.6.0 on darwin_amd64 -+ provider registry.opentofu.org/opentofu/null v3.0.0 ++ provider registry.opentofu.org/hashicorp/null v3.0.0 ``` As JSON: @@ -40,7 +40,7 @@ $ tofu version -json "terraform_version": "0.16.0-alpha2", "platform": "darwin_amd64", "provider_selections": { - "registry.opentofu.org/opentofu/null": "3.0.0" + "registry.opentofu.org/hashicorp/null": "3.0.0" } } ``` diff --git a/website/docs/cli/config/config-file.mdx b/website/docs/cli/config/config-file.mdx index ad36d4a231..139e5b2fbf 100644 --- a/website/docs/cli/config/config-file.mdx +++ b/website/docs/cli/config/config-file.mdx @@ -148,10 +148,10 @@ If neither are set, any configured credentials helper will be consulted. The default way to install provider plugins is from a provider registry. The origin registry for a provider is encoded in the provider's source address, -like `registry.opentofu.org/opentofu/aws`. For convenience in the common case, +like `registry.opentofu.org/hashicorp/aws`. For convenience in the common case, OpenTofu allows omitting the hostname portion for providers on `registry.opentofu.org`, so you can write shorter public provider addresses like -`opentofu/aws`. +`hashicorp/aws`. Downloading a plugin directly from its origin registry is not always appropriate, though. For example, the system where you are running OpenTofu @@ -192,15 +192,15 @@ providers can be installed only directly from their origin registries. If you set both `include` and `exclude` for a particular installation method, the exclusion patterns take priority. For example, including -`registry.opentofu.org/opentofu/*` but also excluding -`registry.opentofu.org/opentofu/dns` will make that installation method apply -to everything in the `opentofu` namespace with the exception of -`opentofu/dns`. +`registry.opentofu.org/hashicorp/*` but also excluding +`registry.opentofu.org/hashicorp/dns` will make that installation method apply +to everything in the `hashicorp` namespace with the exception of +`hashicorp/dns`. As with provider source addresses in the main configuration, you can omit the `registry.opentofu.org/` prefix for providers distributed through the public OpenTofu Registry, even when using wildcards. For example, -`registry.opentofu.org/opentofu/*` and `opentofu/*` are equivalent. +`registry.opentofu.org/hashicorp/*` and `hashicorp/*` are equivalent. `*/*` is a shorthand for `registry.opentofu.org/*/*`, not for `*/*/*`. @@ -438,11 +438,11 @@ methods, so a block of this type must always appear first in the sequence: provider_installation { # Use /home/developer/tmp/terraform-null as an overridden package directory - # for the opentofu/null provider. This disables the version and checksum + # for the hashicorp/null provider. This disables the version and checksum # verifications for this provider and forces OpenTofu to look for the # null provider plugin in the given directory. dev_overrides { - "opentofu/null" = "/home/developer/tmp/opentofuf-null" + "hashicorp/null" = "/home/developer/tmp/terraform-null" } # For all other providers, install them directly from their origin provider diff --git a/website/docs/internals/json-format.mdx b/website/docs/internals/json-format.mdx index 1240194f67..ba49ad57c2 100644 --- a/website/docs/internals/json-format.mdx +++ b/website/docs/internals/json-format.mdx @@ -371,7 +371,7 @@ Because the configuration models are produced at a stage prior to expression eva "name": "aws", // "full_name" is the fully-qualified provider name - "full_name": "registry.opentofu.org/opentofu/aws", + "full_name": "registry.opentofu.org/hashicorp/aws", // "alias" is the alias set for a non-default configuration, or unset for // a default configuration. diff --git a/website/docs/internals/provider-network-mirror-protocol.mdx b/website/docs/internals/provider-network-mirror-protocol.mdx index 0a3dc961f8..7240324912 100644 --- a/website/docs/internals/provider-network-mirror-protocol.mdx +++ b/website/docs/internals/provider-network-mirror-protocol.mdx @@ -126,7 +126,7 @@ particular provider. ### Sample Request ``` -curl 'https://tofu.example.com/providers/registry.tofu.io/opentofu/random/index.json' +curl 'https://tofu.example.com/providers/registry.tofu.io/hashicorp/random/index.json' ``` ### Sample Response @@ -183,7 +183,7 @@ archive containing the plugin itself. ### Sample Request ``` -curl 'https://tofu.example.com/providers/registry.tofu.io/opentofu/random/2.0.0.json' +curl 'https://tofu.example.com/providers/registry.tofu.io/hashicorp/random/2.0.0.json' ``` ### Sample Response @@ -227,7 +227,7 @@ the following properties: filename would cause OpenTofu to construct a URL like: ``` - https://tofu.example.com/providers/registry.opentofu.org/opentofu/random/terraform-provider-random_2.0.0_darwin_amd64.zip + https://tofu.example.com/providers/registry.opentofu.org/hashicorp/random/terraform-provider-random_2.0.0_darwin_amd64.zip ``` * `hashes` (optional): a JSON array of strings containing one or more hash diff --git a/website/docs/internals/provider-registry-protocol.mdx b/website/docs/internals/provider-registry-protocol.mdx index 5dcba86308..a32145217b 100644 --- a/website/docs/internals/provider-registry-protocol.mdx +++ b/website/docs/internals/provider-registry-protocol.mdx @@ -45,8 +45,8 @@ is optional, and if omitted defaults to `registry.opentofu.org/`. For example: -* `opentofu/aws` is a shorthand for `registry.opentofu.org/opentofu/aws`, - which is the official AWS provider. +* `hashicorp/aws` is a shorthand for `registry.opentofu.org/hashicorp/aws`, + which is the official AWS provider published by HashiCorp. * `example/foo` is a shorthand for `registry.opentofu.org/example/foo`, which is a hypothetical third-party provider published on the public OpenTofu Registry. diff --git a/website/docs/language/files/dependency-lock.mdx b/website/docs/language/files/dependency-lock.mdx index b042fdb229..bd14ae00f5 100644 --- a/website/docs/language/files/dependency-lock.mdx +++ b/website/docs/language/files/dependency-lock.mdx @@ -97,8 +97,8 @@ error if none of the checksums match: ``` Error: Failed to install provider -Error while installing opentofu/azurerm v2.1.0: the current package for -registry.opentofu.org/opentofu/azurerm 2.1.0 doesn't match any of the +Error while installing hashicorp/azurerm v2.1.0: the current package for +registry.opentofu.org/hashicorp/azurerm 2.1.0 doesn't match any of the checksums previously recorded in the dependency lock file. ``` @@ -167,7 +167,7 @@ block in the dependency lock file. ] } -+provider "registry.opentofu.org/opentofu/azurerm" { ++provider "registry.opentofu.org/hashicorp/azurerm" { + version = "2.30.0" + constraints = "~> 2.12" + hashes = [ @@ -218,7 +218,7 @@ block to reflect that change. @@ -7,22 +7,22 @@ } - provider "registry.opentofu.org/opentofu/azurerm" { + provider "registry.opentofu.org/hashicorp/azurerm" { - version = "2.1.0" - constraints = "~> 2.1.0" + version = "2.0.0" @@ -320,7 +320,7 @@ The two hashing schemes currently supported are: OpenTofu will add a new hash to an existing provider only if the hash is calculated from a package that _also_ matches one of the existing hashes. In -the above example, OpenTofu installed a `opentofu/azurerm` package for a +the above example, OpenTofu installed a `hashicorp/azurerm` package for a different platform than that which produced the original `h1:` checksum, but was able to match it against one of the `zh:` checksums recorded previously. After confirming the `zh:` checksum match, OpenTofu then recorded the @@ -373,7 +373,7 @@ file entry for that provider. ] } --provider "registry.opentofu.org/opentofu/azurerm" { +-provider "registry.opentofu.org/hashicorp/azurerm" { - version = "2.30.0" - constraints = "~> 2.12" - hashes = [ diff --git a/website/docs/language/functions/file.mdx b/website/docs/language/functions/file.mdx index 3ecc34aa05..be18dbeb34 100644 --- a/website/docs/language/functions/file.mdx +++ b/website/docs/language/functions/file.mdx @@ -25,7 +25,7 @@ dependency graph, so this function cannot be used with files that are generated dynamically during an OpenTofu operation. We do not recommend using dynamic local files in OpenTofu configurations, but in rare situations where this is necessary you can use -[the `local_file` data source](https://registry.terraform.io/providers/opentofu/local/latest/docs/data-sources/file) +[the `local_file` data source](https://registry.terraform.io/providers/hashicorp/local/latest/docs/data-sources/file) to read files while respecting resource dependencies. ## Examples diff --git a/website/docs/language/index.mdx b/website/docs/language/index.mdx index 6837a95cb0..fda1eb2f6a 100644 --- a/website/docs/language/index.mdx +++ b/website/docs/language/index.mdx @@ -67,7 +67,7 @@ shown here. terraform { required_providers { aws = { - source = "opentofu/aws" + source = "hashicorp/aws" version = "~> 1.0.4" } } diff --git a/website/docs/language/modules/develop/providers.mdx b/website/docs/language/modules/develop/providers.mdx index 310c0f583c..e97c9a50fc 100644 --- a/website/docs/language/modules/develop/providers.mdx +++ b/website/docs/language/modules/develop/providers.mdx @@ -54,7 +54,7 @@ use a `required_providers` block inside a `terraform` block: terraform { required_providers { aws = { - source = "opentofu/aws" + source = "hashicorp/aws" version = ">= 2.7.0" } } @@ -62,7 +62,7 @@ terraform { ``` A provider requirement says, for example, "This module requires version v2.7.0 -of the provider `opentofu/aws` and will refer to it as `aws`." It doesn't, +of the provider `hashicorp/aws` and will refer to it as `aws`." It doesn't, however, specify any of the configuration settings that determine what remote endpoints the provider will access, such as an AWS region; configuration settings come from provider _configurations_, and a particular overall OpenTofu @@ -78,7 +78,7 @@ To declare multiple configuration names for a provider within a module, add the terraform { required_providers { aws = { - source = "opentofu/aws" + source = "hashicorp/aws" version = ">= 2.7.0" configuration_aliases = [ aws.alternate ] } @@ -218,7 +218,7 @@ provider so the calling module can pass configurations with these names in its ` terraform { required_providers { aws = { - source = "opentofu/aws" + source = "hashicorp/aws" version = ">= 2.7.0" configuration_aliases = [ aws.src, aws.dst ] } diff --git a/website/docs/language/modules/sources.mdx b/website/docs/language/modules/sources.mdx index cc4f8c3076..e1d4577f58 100644 --- a/website/docs/language/modules/sources.mdx +++ b/website/docs/language/modules/sources.mdx @@ -332,7 +332,7 @@ the following locations in order for the next address to access: - If the response is an HTML page, a `meta` element with the name `tofu-get`: ```html - + ``` In either case, the result is interpreted as another module source address diff --git a/website/docs/language/providers/requirements.mdx b/website/docs/language/providers/requirements.mdx index b8e778e429..b8347de38a 100644 --- a/website/docs/language/providers/requirements.mdx +++ b/website/docs/language/providers/requirements.mdx @@ -122,20 +122,20 @@ follows: For example, [the official HTTP provider](https://registry.terraform.io/providers/hashicorp/http) belongs to the `hashicorp` namespace on `registry.opentofu.org`, so its -source address is `registry.opentofu.org/opentofu/http` or, more commonly, just +source address is `registry.opentofu.org/hashicorp/http` or, more commonly, just `hashicorp/http`. The source address with all three components given explicitly is called the provider's _fully-qualified address_. You will see fully-qualified address in various outputs, like error messages, but in most cases a simplified display version is used. This display version omits the source host when it is the -public registry, so you may see the shortened version `"opentofu/random"` instead -of `"registry.opentofu.org/opentofu/random"`. +public registry, so you may see the shortened version `"hashicorp/random"` instead +of `"registry.opentofu.org/hashicorp/random"`. :::note If you omit the `source` argument when requiring a provider, OpenTofu uses an implied source address of -`registry.opentofu.org/opentofu/`. +`registry.opentofu.org/hashicorp/`. We recommend using explicit source addresses for all providers. ::: @@ -160,7 +160,7 @@ terraform { # have the same type name -- "http" in this example -- # use a compound local name to distinguish them. hashicorp-http = { - source = "opentofu/http" + source = "hashicorp/http" version = "~> 2.0" } mycorp-http = { @@ -177,7 +177,7 @@ provider "mycorp-http" { } data "http" "example" { - provider = opentofu-http + provider = hashicorp-http #... } ``` @@ -216,7 +216,7 @@ to work with, using the `>=` version constraint syntax: terraform { required_providers { mycloud = { - source = "opentofu/aws" + source = "hashicorp/aws" version = ">= 1.0" } } @@ -235,7 +235,7 @@ specific minor release: terraform { required_providers { mycloud = { - source = "opentofu/aws" + source = "hashicorp/aws" version = "~> 1.0.4" } } diff --git a/website/docs/language/settings/index.mdx b/website/docs/language/settings/index.mdx index d45f144bd4..25824ef305 100644 --- a/website/docs/language/settings/index.mdx +++ b/website/docs/language/settings/index.mdx @@ -77,7 +77,7 @@ terraform { required_providers { aws = { version = ">= 2.7.0" - source = "opentofu/aws" + source = "hashicorp/aws" } } } diff --git a/website/docs/language/state/remote-state-data.mdx b/website/docs/language/state/remote-state-data.mdx index 9d538460a9..511ae5e6be 100644 --- a/website/docs/language/state/remote-state-data.mdx +++ b/website/docs/language/state/remote-state-data.mdx @@ -93,7 +93,7 @@ data "terraform_remote_state" "vpc" { backend = "remote" config = { - organization = "opentofu" + organization = "hashicorp" workspaces = { name = "vpc-prod" }