Documentation ¶
Index ¶
- Constants
- Variables
- func IsPrimitiveType(t Type) bool
- func NewShortcodeParser() parser.BlockParser
- func ParseDocs(docs []byte) ast.Node
- func RenderDocs(w io.Writer, source []byte, node ast.Node, options ...RendererOption) error
- func RenderDocsToString(source []byte, node ast.Node, options ...RendererOption) string
- type Alias
- type AliasSpec
- type ArrayType
- type ConfigSpec
- type DefaultSpec
- type DefaultValue
- type Function
- type FunctionSpec
- type Language
- type Loader
- type MapType
- type MetadataSpec
- type ObjectType
- type ObjectTypeSpec
- type Package
- type PackageSpec
- type Property
- type PropertySpec
- type ReferenceRenderer
- type Renderer
- type RendererOption
- type Resource
- type ResourceSpec
- type Shortcode
- type TokenType
- type Type
- type TypeSpec
- type UnionType
Constants ¶
const ( // ExamplesShortcode is the name for the `{{% examples %}}` shortcode, which demarcates a set of example sections. ExamplesShortcode = "examples" // ExampleShortcode is the name for the `{{% example %}}` shortcode, which demarcates the content for a single // example. ExampleShortcode = "example" )
Variables ¶
var KindShortcode = ast.NewNodeKind("Shortcode")
KindShortcode is an ast.NodeKind for the Shortcode node.
Functions ¶
func IsPrimitiveType ¶
IsPrimitiveType returns true if the given Type is a primitive type. The primitive types are bool, int, number, string, archive, asset, and any.
func NewShortcodeParser ¶ added in v2.5.0
func NewShortcodeParser() parser.BlockParser
NewShortcodeParser returns a BlockParser that parses shortcode (e.g. `{{% examples %}}`).
func ParseDocs ¶ added in v2.5.0
ParseDocs parses the given documentation text as Markdown with shortcodes and returns the AST.
func RenderDocs ¶ added in v2.5.0
RenderDocs renders parsed documentation to the given Writer. The source that was used to parse the documentation must be provided.
func RenderDocsToString ¶ added in v2.5.0
func RenderDocsToString(source []byte, node ast.Node, options ...RendererOption) string
RenderDocsToString is like RenderDocs, but renders to a string instead of a Writer.
Types ¶
type Alias ¶
type Alias struct { // Name is the "name" portion of the alias, if any. Name *string // Project is the "project" portion of the alias, if any. Project *string // Type is the "type" portion of the alias, if any. Type *string }
Alias describes an alias for a Pulumi resource.
type AliasSpec ¶
type AliasSpec struct { // Name is the name portion of the alias, if any. Name *string `json:"name,omitempty"` // Project is the project portion of the alias, if any. Project *string `json:"project,omitempty"` // Type is the type portion of the alias, if any. Type *string `json:"type,omitempty"` }
AliasSpec is the serializable form of an alias description.
type ArrayType ¶
type ArrayType struct { // ElementType is the element type of the array. ElementType Type }
ArrayType represents arrays of particular element types.
type ConfigSpec ¶
type ConfigSpec struct { // Variables is a map from variable name to PropertySpec that describes a package's configuration variables. Variables map[string]PropertySpec `json:"variables,omitempty"` // Required is a list of the names of the package's required configuration variables. Required []string `json:"defaults,omitempty"` }
ConfigSpec is the serializable description of a package's configuration variables.
type DefaultSpec ¶
type DefaultSpec struct { // Environment specifies a set of environment variables to probe for a default value. Environment []string `json:"environment,omitempty"` // Language specifies additional language-specific data about the default value. Language map[string]json.RawMessage `json:"language,omitempty"` }
DefaultSpec is the serializable form of extra information about the default value for a property.
type DefaultValue ¶
type DefaultValue struct { // Value specifies a static default value, if any. This value must be representable in the Pulumi schema type // system, and its type must be assignable to that of the property to which the default applies. Value interface{} // Environment specifies a set of environment variables to probe for a default value. Environment []string // Language specifies additional language-specific data about the default value. Language map[string]interface{} }
DefaultValue describes a default value for a property.
type Function ¶
type Function struct { // Token is the function's Pulumi type token. Token string // Comment is the description of the function, if any. Comment string // Inputs is the bag of input values for the function, if any. Inputs *ObjectType // Outputs is the bag of output values for the function, if any. Outputs *ObjectType // DeprecationMessage indicates whether or not the function is deprecated. DeprecationMessage string // Language specifies additional language-specific data about the function. Language map[string]interface{} }
Function describes a Pulumi function.
type FunctionSpec ¶
type FunctionSpec struct { // Description is the description of the function, if any. Description string `json:"description,omitempty"` // Inputs is the bag of input values for the function, if any. Inputs *ObjectTypeSpec `json:"inputs,omitempty"` // Outputs is the bag of output values for the function, if any. Outputs *ObjectTypeSpec `json:"outputs,omitempty"` // DeprecationMessage indicates whether or not the function is deprecated. DeprecationMessage string `json:"deprecationMessage,omitempty"` // Language specifies additional language-specific data about the function. Language map[string]json.RawMessage `json:"language,omitempty"` }
FunctionSpec is the serializable form of a function description.
type Language ¶ added in v2.1.0
type Language interface { // ImportDefaultSpec decodes language-specific metadata associated with a DefaultValue. ImportDefaultSpec(def *DefaultValue, bytes json.RawMessage) (interface{}, error) // ImportPropertySpec decodes language-specific metadata associated with a Property. ImportPropertySpec(property *Property, bytes json.RawMessage) (interface{}, error) // ImportObjectTypeSpec decodes language-specific metadata associated with a ObjectType. ImportObjectTypeSpec(object *ObjectType, bytes json.RawMessage) (interface{}, error) // ImportResourceSpec decodes language-specific metadata associated with a Resource. ImportResourceSpec(resource *Resource, bytes json.RawMessage) (interface{}, error) // ImportFunctionSpec decodes language-specific metadata associated with a Function. ImportFunctionSpec(function *Function, bytes json.RawMessage) (interface{}, error) // ImportPackageSpec decodes language-specific metadata associated with a Package. ImportPackageSpec(pkg *Package, bytes json.RawMessage) (interface{}, error) }
Language provides hooks for importing language-specific metadata in a package.
type Loader ¶ added in v2.6.0
func NewPluginLoader ¶ added in v2.6.0
type MapType ¶
type MapType struct { // ElementType is the element type of the map. ElementType Type }
MapType represents maps from strings to particular element types.
type MetadataSpec ¶
type MetadataSpec struct { // ModuleFormat is a regex that is used by the importer to extract a module name from the module portion of a // type token. Pacakages that use the module format "namespace1/namespace2/.../namespaceN" do not need to specify // a format. The regex must define one capturing group that contains the module name, which must be formatted as // "namespace1/namespace2/...namespaceN". ModuleFormat string `json:"moduleFormat,omitempty"` }
MetadataSpec contains information for the importer about this package.
type ObjectType ¶
type ObjectType struct { // Token is the type's Pulumi type token. Token string // Comment is the description of the type, if any. Comment string // Properties is the list of the type's properties. Properties []*Property // Language specifies additional language-specific data about the object type. Language map[string]interface{} // contains filtered or unexported fields }
ObjectType represents schematized maps from strings to particular types.
func (*ObjectType) Property ¶ added in v2.1.0
func (t *ObjectType) Property(name string) (*Property, bool)
func (*ObjectType) String ¶
func (t *ObjectType) String() string
type ObjectTypeSpec ¶
type ObjectTypeSpec struct { // Description is the description of the type, if any. Description string `json:"description,omitempty"` // Properties is a map from property name to PropertySpec that describes the type's properties. Properties map[string]PropertySpec `json:"properties,omitempty"` // Type must be "object". Type string `json:"type,omitempty"` // Requires is a list of the names of the type's required properties. These properties must be set for inputs and // will always be set for outputs. Required []string `json:"required,omitempty"` // Language specifies additional language-specific data about the type. Language map[string]json.RawMessage `json:"language,omitempty"` }
ObjectTypeSpec is the serializable form of an object type.
type Package ¶
type Package struct { // Name is the unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes". "random") Name string // Version is the version of the package. Version *semver.Version // Description is the description of the package. Description string // Keywords is the list of keywords that are associated with the package, if any. Keywords []string // Homepage is the package's homepage. Homepage string // License indicates which license is used for the package's contents. License string // Attribution allows freeform text attribution of derived work, if needed. Attribution string // Repository is the URL at which the source for the package can be found. Repository string // LogoURL is the URL for the package's logo, if any. LogoURL string // PluginDownloadURL is the URL to use to acquire the provider plugin binary, if any. PluginDownloadURL string // Types is the list of non-resource types defined by the package. Types []Type // Config is the set of configuration properties defined by the package. Config []*Property // Provider is the resource provider for the package, if any. Provider *Resource // Resources is the list of resource types defined by the package. Resources []*Resource // Functions is the list of functions defined by the package. Functions []*Function // Language specifies additional language-specific data about the package. Language map[string]interface{} // contains filtered or unexported fields }
Package describes a Pulumi package.
func ImportSpec ¶
func ImportSpec(spec PackageSpec, languages map[string]Language) (*Package, error)
ImportSpec converts a serializable PackageSpec into a Package.
func (*Package) GetFunction ¶ added in v2.6.0
func (*Package) GetResource ¶ added in v2.6.0
func (*Package) ImportLanguages ¶ added in v2.1.0
func (*Package) TokenToModule ¶
type PackageSpec ¶
type PackageSpec struct { // Name is the unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes". "random") Name string `json:"name"` // Version is the version of the package. The version must be valid semver. Version string `json:"version,omitempty"` // Description is the description of the package. Description string `json:"description,omitempty"` // Keywords is the list of keywords that are associated with the package, if any. Keywords []string `json:"keywords,omitempty"` // Homepage is the package's homepage. Homepage string `json:"homepage,omitempty"` // License indicates which license is used for the package's contents. License string `json:"license,omitempty"` // Attribution allows freeform text attribution of derived work, if needed. Attribution string `json:"attribution,omitempty"` // Repository is the URL at which the source for the package can be found. Repository string `json:"repository,omitempty"` // LogoURL is the URL for the package's logo, if any. LogoURL string `json:"logoUrl,omitempty"` // PluginDownloadURL is the URL to use to acquire the provider plugin binary, if any. PluginDownloadURL string `json:"pluginDownloadURL,omitempty"` // Meta contains information for the importer about this package. Meta *MetadataSpec `json:"meta,omitempty"` // Config describes the set of configuration variables defined by this package. Config ConfigSpec `json:"config"` // Types is a map from type token to ObjectTypeSpec that describes the set of object types defined by this package. Types map[string]ObjectTypeSpec `json:"types,omitempty"` // Provider describes the provider type for this package. Provider ResourceSpec `json:"provider"` // Resources is a map from type token to ResourceSpec that describes the set of resources defined by this package. Resources map[string]ResourceSpec `json:"resources,omitempty"` // Functions is a map from token to FunctionSpec that describes the set of functions defined by this package. Functions map[string]FunctionSpec `json:"functions,omitempty"` // Language specifies additional language-specific data about the package. Language map[string]json.RawMessage `json:"language,omitempty"` }
PackageSpec is the serializable description of a Pulumi package.
type Property ¶
type Property struct { // Name is the name of the property. Name string // Comment is the description of the property, if any. Comment string // Type is the type of the property. Type Type // ConstValue is the constant value for the property, if any. ConstValue interface{} // DefaultValue is the default value for the property, if any. DefaultValue *DefaultValue // IsRequired is true if the property must always be populated. IsRequired bool // DeprecationMessage indicates whether or not the property is deprecated. DeprecationMessage string // Language specifies additional language-specific data about the property. Language map[string]interface{} // Secret is true if the property is secret (default false). Secret bool }
Property describes an object or resource property.
type PropertySpec ¶
type PropertySpec struct { TypeSpec // Description is the description of the property, if any. Description string `json:"description,omitempty"` // Const is the constant value for the property, if any. The type of the value must be assignable to the type of // the property. Const interface{} `json:"const,omitempty"` // Default is the default value for the property, if any. The type of the value must be assignable to the type of // the property. Default interface{} `json:"default,omitempty"` // DefaultInfo contains additional information about the property's default value, if any. DefaultInfo *DefaultSpec `json:"defaultInfo,omitempty"` // DeprecationMessage indicates whether or not the property is deprecated. DeprecationMessage string `json:"deprecationMessage,omitempty"` // Language specifies additional language-specific data about the property. Language map[string]json.RawMessage `json:"language,omitempty"` // Secret specifies if the property is secret (default false). Secret bool `json:"secret,omitempty"` }
PropertySpec is the serializable form of an object or resource property.
type ReferenceRenderer ¶ added in v2.5.0
type ReferenceRenderer func(r *Renderer, w io.Writer, source []byte, link *ast.Link, enter bool) (ast.WalkStatus, error)
A ReferenceRenderer is responsible for rendering references to entities in a schema.
type Renderer ¶ added in v2.5.0
type Renderer struct {
// contains filtered or unexported fields
}
A Renderer provides the ability to render parsed documentation back to Markdown source.
func (*Renderer) MarkdownRenderer ¶ added in v2.5.0
MarkdownRenderer returns the underlying Markdown renderer used by the Renderer.
func (*Renderer) RegisterFuncs ¶ added in v2.5.0
func (r *Renderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)
type RendererOption ¶ added in v2.5.0
type RendererOption func(*Renderer)
A RendererOption controls the behavior of a Renderer.
func WithReferenceRenderer ¶ added in v2.5.0
func WithReferenceRenderer(refRenderer ReferenceRenderer) RendererOption
WithReferenceRenderer sets the reference renderer for a renderer.
type Resource ¶
type Resource struct { // Token is the resource's Pulumi type token. Token string // Comment is the description of the resource, if any. Comment string // IsProvider is true if the resource is a provider resource. IsProvider bool // InputProperties is the list of the resource's input properties. InputProperties []*Property // Properties is the list of the resource's output properties. This should be a superset of the input properties. Properties []*Property // StateInputs is the set of inputs used to get an existing resource, if any. StateInputs *ObjectType // Aliases is the list of aliases for the resource. Aliases []*Alias // DeprecationMessage indicates whether or not the resource is deprecated. DeprecationMessage string // Language specifies additional language-specific data about the resource. Language map[string]interface{} }
Resource describes a Pulumi resource.
type ResourceSpec ¶
type ResourceSpec struct { ObjectTypeSpec // InputProperties is a map from property name to PropertySpec that describes the resource's input properties. InputProperties map[string]PropertySpec `json:"inputProperties,omitempty"` // RequiredInputs is a list of the names of the resource's required input properties. RequiredInputs []string `json:"requiredInputs,omitempty"` // StateInputs is an optional ObjectTypeSpec that describes additional inputs that mau be necessary to get an // existing resource. If this is unset, only an ID is necessary. StateInputs *ObjectTypeSpec `json:"stateInputs,omitempty"` // Aliases is the list of aliases for the resource. Aliases []AliasSpec `json:"aliases,omitempty"` // DeprecationMessage indicates whether or not the resource is deprecated. DeprecationMessage string `json:"deprecationMessage,omitempty"` // Language specifies additional language-specific data about the resource. Language map[string]json.RawMessage `json:"language,omitempty"` }
ResourceSpec is the serializable form of a resource description.
type Shortcode ¶ added in v2.5.0
Shortcode represents a shortcode element and its contents, e.g. `{{% examples %}}`.
func NewShortcode ¶ added in v2.5.0
NewShortcode creates a new shortcode with the given name.
type TokenType ¶
type TokenType struct { // Token is the type's Pulumi type token. Token string // Underlying type is the type's underlying type, if any. UnderlyingType Type }
TokenType represents an opaque type that is referred to only by its token. A TokenType may have an underlying type that can be used in place of the token.
type Type ¶
type Type interface { String() string // contains filtered or unexported methods }
Type represents a datatype in the Pulumi Schema. Types created by this package are identical if they are equal values.
var ( // BoolType represents the set of boolean values. BoolType Type = boolType // IntType represents the set of 32-bit integer values. IntType Type = intType // NumberType represents the set of IEEE754 double-precision values. NumberType Type = numberType // StringType represents the set of UTF-8 string values. StringType Type = stringType // ArchiveType represents the set of Pulumi Archive values. ArchiveType Type = archiveType // AssetType represents the set of Pulumi Asset values. AssetType Type = assetType // JSONType represents the set of JSON-encoded values. JSONType Type = jsonType // AnyType represents the complete set of values. AnyType Type = anyType )
type TypeSpec ¶
type TypeSpec struct { // Type is the primitive or composite type, if any. May be "bool", "integer", "number", "string", "array", or // "object". Type string `json:"type,omitempty"` // Ref is a reference to a type in this or another document. For example, the built-in Archive, Asset, and Any // types are referenced as "pulumi.json#/Archive", "pulumi.json#/Asset", and "pulumi.json#/Any", respectively. // A type from this document is referenced as "#/types/pulumi:type:token". Ref string `json:"$ref,omitempty"` // AdditionalProperties, if set, describes the element type of an "object" (i.e. a string -> value map). AdditionalProperties *TypeSpec `json:"additionalProperties,omitempty"` // Items, if set, describes the element type of an array. Items *TypeSpec `json:"items,omitempty"` // OneOf indicates that values of the type may be one of any of the listed types. OneOf []TypeSpec `json:"oneOf,omitempty"` }
TypeSpec is the serializable form of a reference to a type.
type UnionType ¶
type UnionType struct { // ElementTypes are the allowable types for the union type. ElementTypes []Type // DefaultType is the default type, if any, for the union type. This can be used by targets that do not support // unions, or in positions where unions are not appropriate. DefaultType Type }
UnionType represents values that may be any one of a specified set of types.