| // Copyright (c) The OpenTofu Authors | |
| // SPDX-License-Identifier: MPL-2.0 | |
| // Copyright (c) 2023 HashiCorp, Inc. | |
| // SPDX-License-Identifier: MPL-2.0 | |
| package jsonprovider | |
| import ( | |
| "github.com/opentofu/opentofu/internal/providers" | |
| ) | |
| type Schema struct { | |
| Version uint64 `json:"version"` | |
| Block *Block `json:"block,omitempty"` | |
| } | |
| // marshalSchema is a convenience wrapper around marshalBlock. Schema version | |
| // should be set by the caller. | |
| func marshalSchema(schema providers.Schema) *Schema { | |
| if schema.Block == nil { | |
| return &Schema{} | |
| } | |
| var ret Schema | |
| ret.Block = marshalBlock(schema.Block) | |
| ret.Version = uint64(schema.Version) | |
| return &ret | |
| } | |
| func marshalSchemas(schemas map[string]providers.Schema) map[string]*Schema { | |
| if schemas == nil { | |
| return map[string]*Schema{} | |
| } | |
| ret := make(map[string]*Schema, len(schemas)) | |
| for k, v := range schemas { | |
| ret[k] = marshalSchema(v) | |
| } | |
| return ret | |
| } |