Back to Pulumi

Pulumi Package Metaschema

docs/references/metaschema.md

3.235.017.5 KB
Original Source

Pulumi Package Metaschema

A description of the schema for a Pulumi Package

object

Properties


allowedPackageNames

A list of allowed package names in addition to the name property.

array

Items: string


attribution

Freeform text attribution of derived work, if required.

string


config

The package's configuration variables.

object

Properties


defaults

A list of the names of the package's non-required configuration variables.

array

Items: string


variables

A map from variable name to propertySpec that describes a package's configuration variables.

object

Additional properties: Property Definition



dependencies

A list of package descriptors that describes the set of dependencies for this package.

array

Items: https://github.com/pulumi/pulumi/blob/master/pkg/codegen/schema/pulumi.json#/properties/dependencies/items


description

The description of the package. Descriptions are interpreted as Markdown.

string


displayName

The human-friendly name of the package.

string


functions

A map from token to functionSpec that describes the set of functions defined by this package.

object

Property names: Function Token

Additional properties: Function Definition


homepage

The package's homepage.

string


keywords

The list of keywords that are associated with the package, if any.

array

Items: string


language

Additional language-specific data about the package.

object


license

The name of the license used for the package's contents.

string


logoUrl

The URL of the package's logo, if any.

string


meta

Format metadata about this package.

object

Properties


moduleFormat

A regex that is used by the importer to extract a module name from the module portion of a type token. Packages 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".

string

Format: regex


supportPack

Write the package to support the pack command.

boolean



name (required)

The unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes", "random")

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*$


namespace

The namespace of the package. Used to disambiguate the package name. Defaults to 'pulumi' when not specified

string

Pattern: ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$


parameterization

An optional object to define parameterization for the package.

object

All of:


pluginDownloadURL

The URL to use when downloading the provider plugin binary.

string


provider

The provider type for this package.

Resource Definition


publisher

The name of the person or organization that authored and published the package.

string


repository

The URL at which the package's sources can be found.

string


resources

A map from type token to resourceSpec that describes the set of resources and components defined by this package.

object

Property names: Token

Additional properties: Resource Definition


types

A map from type token to complexTypeSpec that describes the set of complex types (i.e. object, enum) defined by this package.

object

Property names: Token

Additional properties: Type Definition


version

The version of the package. The version must be valid semver.

string

Pattern: ^v?(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$


Alias Definition

object | string

Properties


type

The type portion of the alias, if any

string


Array Type

A reference to an array type. The "type" property must be set to "array" and the "items" property must be present. No other properties may be present.

object

Properties


items (required)

The element type of the array

Type Reference


type (required)

Constant: "array"


Enum Type Definition

Describes an enum type

object

Properties


enum (required)

The list of possible values for the enum

array

Items: Enum Value Definition


type (required)

The underlying primitive type of the enum

string

Enum: "boolean" | "integer" | "number" | "string"


Enum Value Definition

object

Properties


deprecationMessage

Indicates whether the value is deprecated.

string


description

The description of the enum value, if any. Interpreted as Markdown.

string


name

If present, overrides the name of the enum value that would usually be derived from the value.

string


value (required)

The enum value itself

boolean | integer | number | string


Function Definition

Describes a function.

object

Properties


deprecationMessage

Indicates whether the function is deprecated

string


description

The description of the function, if any. Interpreted as Markdown.

string


inputs

The bag of input values for the function, if any.

Object Type Details


isOverlay

Indicates that the implementation of the function should not be generated from the schema, and is instead provided out-of-band by the package author

boolean


language

Additional language-specific data about the function.

object


multiArgumentInputs

A list of parameter names that determines whether the input bag should be treated as a single argument or as multiple arguments. The list corresponds to the order in which the parameters should be passed to the function.

array

Items: string


outputs

Specifies the return type of the function definition.

Any of:


overlaySupportedLanguages

A list of languages that the overlay supports. This only has an effect if the Resource is an Overlay (isOverlay == true). Supported values are 'nodejs', 'python', 'go', 'csharp', 'java', 'yaml'.

array

Items: "nodejs" | "python" | "go" | "csharp" | "java" | "yaml"


plain

Plain is a marker field to indicate that this function should only generate plain and output style methods. It defaults to true, that is to emit both plain and output style methods. Setting this to false will emit only output style methods.

boolean


returnType

Specifies the return type of the function definition.

Any of:


Function Token

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*:([^0-9][a-zA-Z0-9._/-]*)?:[^0-9][a-zA-Z0-9._/-]*$

Map Type

A reference to a map type. The "type" property must be set to "object" and the "additionalProperties" property may be present. No other properties may be present.

object

Properties


additionalProperties

The element type of the map. Defaults to "string" when omitted.

Type Reference


type (required)

Constant: "object"


Named Type

A reference to a type in this or another document. The "$ref" property must be present. The "type" property is ignored if it is present. No other properties may be present.

object

Properties


$ref (required)

The URI of the referenced type. 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". A type from another document is referenced as "path#/types/pulumi:type:token", where path is of the form: "/provider/vX.Y.Z/schema.json" or "pulumi.json" or "http[s]://example.com/provider/vX.Y.Z/schema.json" A resource from this document is referenced as "#/resources/pulumi:type:token". A resource from another document is referenced as "path#/resources/pulumi:type:token", where path is of the form: "/provider/vX.Y.Z/schema.json" or "pulumi.json" or "http[s]://example.com/provider/vX.Y.Z/schema.json"

string

Format: uri-reference


type

ignored; present for compatibility with existing schemas

string


Object Type Definition

object

All of:

Properties


type

Constant: "object"


Object Type Details

Describes an object type

object

Properties


description

The description of the type, if any

string


isOverlay

indicates whether the type is an overlay provided by the package. Overlay code is generated by the package rather than using the core Pulumi codegen libraries.

boolean


language

Additional language-specific data about the object type.

object


overlaySupportedLanguages

A list of languages that the overlay supports. This only has an effect if the Resource is an Overlay (isOverlay == true). Supported values are 'nodejs', 'python', 'go', 'csharp', 'java', 'yaml'.

array

Items: "nodejs" | "python" | "go" | "csharp" | "java" | "yaml"


properties

A map from property name to propertySpec that describes the object's properties.

object

Additional properties: Property Definition


required

A list of the names of an object type's required properties. These properties must be set for inputs and will always be set for outputs.

array

Items: string


type

The type of the object. Must be 'object' if this is an object type, or the underlying type for an enum.

string


Primitive Type

A reference to a primitive type. A primitive type must have only the "type" property set.

object

Properties


type (required)

The primitive type, if any

string

Enum: "boolean" | "integer" | "number" | "string"


Property Definition

Describes an object or resource property

object

All of:

Properties


const

The constant value for the property, if any. The type of the value must be assignable to the type of the property.

boolean | number | string


default

The default value for the property, if any. The type of the value must be assignable to the type of the property.

boolean | number | string


defaultInfo

Additional information about the property's default value, if any.

object

Properties

environment (required)

A set of environment variables to probe for a default value.

array

Items: string


language

Additional language-specific data about the default value.

object



deprecationMessage

Indicates whether the property is deprecated

string


description

The description of the property, if any. Interpreted as Markdown.

string


language

Additional language-specific data about the property.

object


replaceOnChanges

Specifies whether a change to the property causes its containing resource to be replaced instead of updated (default false).

boolean


secret

Specifies whether the property is secret (default false).

boolean


willReplaceOnChanges

Indicates that the provider will replace the resource when this property is changed.

boolean


Resource Definition

Describes a resource or component.

object

All of:

Properties


aliases

The list of aliases for the resource.

array

Items: Alias Definition


deprecationMessage

Indicates whether the resource is deprecated

string


description

The description of the resource, if any. Interpreted as Markdown.

string


inputProperties

A map from property name to propertySpec that describes the resource's input properties.

object

Additional properties: Property Definition


isComponent

Indicates whether the resource is a component.

boolean


isOverlay

Indicates that the implementation of the resource should not be generated from the schema, and is instead provided out-of-band by the package author

boolean


methods

A map from method name to function token that describes the resource's method set.

object

Additional properties: string


requiredInputs

A list of the names of the resource's required input properties.

array

Items: string


stateInputs

An optional objectTypeSpec that describes additional inputs that may be necessary to get an existing resource. If this is unset, only an ID is necessary.

Object Type Details


Token

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*:([^0-9][a-zA-Z0-9._/-]*)?:[^0-9][a-zA-Z0-9._/]*$

Type Definition

Describes an object or enum type.

object

One of:

Properties


description

The description of the type, if any. Interpreted as Markdown.

string


isOverlay

Indicates that the implementation of the type should not be generated from the schema, and is instead provided out-of-band by the package author

boolean


language

Additional language-specific data about the type.

object


Type Reference

A reference to a type. The particular kind of type referenced is determined based on the contents of the "type" property and the presence or absence of the "additionalProperties", "items", "oneOf", and "$ref" properties.

object

One of:

Properties


plain

Indicates that when used as an input, this type does not accept eventual values.

boolean


Union Type

A reference to a union type. The "oneOf" property must be present. The union may additional specify an underlying primitive type via the "type" property and a discriminator via the "discriminator" property. No other properties may be present.

object

Properties


discriminator

Informs the consumer of an alternative schema based on the value associated with it

object

Properties

mapping

An optional object to hold mappings between payload values and schema names or references

object

Additional properties: string


propertyName (required)

PropertyName is the name of the property in the payload that will hold the discriminator value

string



oneOf (required)

If present, indicates that values of the type may be one of any of the listed types

array

Items: Type Reference


type

The underlying primitive type of the union, if any

string

Enum: "boolean" | "integer" | "number" | "string"


https://github.com/pulumi/pulumi/blob/master/pkg/codegen/schema/pulumi.json#/$defs/parameterization

object

Properties


baseProvider

object

Properties

name (required)

The unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes", "random")

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*$


version (required)

The version of the package. The version must be valid semver.

string

Pattern: ^v?(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$



parameter

The parameter for the provider.

string


https://github.com/pulumi/pulumi/blob/master/pkg/codegen/schema/pulumi.json#/properties/dependencies/items

object

Properties


name (required)

The unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes", "random")

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*$


parameterization

An optional object to define parameterization for the package.

object

Properties

name (required)

The unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes", "random")

string

Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*$


value (required)

The parameter value for the provider.

string


version (required)

The version of the package. The version must be valid semver.

string

Pattern: ^v?(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$



pluginDownloadURL

The optional URL to use when downloading the provider plugin binary.

string


version

The version of the package. The version must be valid semver if present.

string

Pattern: ^v?(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$