You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraformDummyRepo2/vendor/github.com/hashicorp/terraform-plugin-docs/schemamd/write_attribute_description.go

76 lines
1.3 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package schemamd
import (
"fmt"
"io"
"strings"
tfjson "github.com/hashicorp/terraform-json"
)
func WriteAttributeDescription(w io.Writer, att *tfjson.SchemaAttribute, includeRW bool) error {
_, err := io.WriteString(w, "(")
if err != nil {
return err
}
err = WriteType(w, att.AttributeType)
if err != nil {
return err
}
if includeRW {
switch {
case childAttributeIsRequired(att):
_, err = io.WriteString(w, ", Required")
if err != nil {
return err
}
case childAttributeIsOptional(att):
_, err = io.WriteString(w, ", Optional")
if err != nil {
return err
}
case childAttributeIsReadOnly(att):
_, err = io.WriteString(w, ", Read-only")
if err != nil {
return err
}
default:
return fmt.Errorf("attribute does not match any filter states")
}
}
if att.Sensitive {
_, err := io.WriteString(w, ", Sensitive")
if err != nil {
return err
}
}
if att.Deprecated {
_, err := io.WriteString(w, ", Deprecated")
if err != nil {
return err
}
}
_, err = io.WriteString(w, ")")
if err != nil {
return err
}
desc := strings.TrimSpace(att.Description)
if desc != "" {
_, err = io.WriteString(w, " "+desc)
if err != nil {
return err
}
}
return nil
}