docs/references/metaschema.md
A description of the schema for a Pulumi Package
object
allowedPackageNamesA list of allowed package names in addition to the name property.
array
Items: string
attributionFreeform text attribution of derived work, if required.
string
configThe package's configuration variables.
object
defaultsA list of the names of the package's non-required configuration variables.
array
Items: string
variablesA map from variable name to propertySpec that describes a package's configuration variables.
object
Additional properties: Property Definition
dependenciesA list of package descriptors that describes the set of dependencies for this package.
array
descriptionThe description of the package. Descriptions are interpreted as Markdown.
string
displayNameThe human-friendly name of the package.
string
functionsA map from token to functionSpec that describes the set of functions defined by this package.
object
Property names: Function Token
Additional properties: Function Definition
homepageThe package's homepage.
string
keywordsThe list of keywords that are associated with the package, if any.
array
Items: string
languageAdditional language-specific data about the package.
object
licenseThe name of the license used for the package's contents.
string
logoUrlThe URL of the package's logo, if any.
string
metaFormat metadata about this package.
object
moduleFormatA 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
supportPackWrite 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_]*$
namespaceThe 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]+)*$
parameterizationAn optional object to define parameterization for the package.
object
All of:
pluginDownloadURLThe URL to use when downloading the provider plugin binary.
string
providerThe provider type for this package.
publisherThe name of the person or organization that authored and published the package.
string
repositoryThe URL at which the package's sources can be found.
string
resourcesA 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
typesA 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
versionThe 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-]+)*))?$
object | string
typeThe type portion of the alias, if any
string
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
items (required)The element type of the array
type (required)Constant: "array"
Describes an enum type
object
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"
object
deprecationMessageIndicates whether the value is deprecated.
string
descriptionThe description of the enum value, if any. Interpreted as Markdown.
string
nameIf 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
Describes a function.
object
deprecationMessageIndicates whether the function is deprecated
string
descriptionThe description of the function, if any. Interpreted as Markdown.
string
inputsThe bag of input values for the function, if any.
isOverlayIndicates 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
languageAdditional language-specific data about the function.
object
multiArgumentInputsA 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
outputsSpecifies the return type of the function definition.
Any of:
overlaySupportedLanguagesA 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"
plainPlain 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
returnTypeSpecifies the return type of the function definition.
Any of:
string
Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*:([^0-9][a-zA-Z0-9._/-]*)?:[^0-9][a-zA-Z0-9._/-]*$
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
additionalPropertiesThe element type of the map. Defaults to "string" when omitted.
type (required)Constant: "object"
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
$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
typeignored; present for compatibility with existing schemas
string
object
All of:
typeConstant: "object"
Describes an object type
object
descriptionThe description of the type, if any
string
isOverlayindicates 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
languageAdditional language-specific data about the object type.
object
overlaySupportedLanguagesA 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"
propertiesA map from property name to propertySpec that describes the object's properties.
object
Additional properties: Property Definition
requiredA 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
typeThe type of the object. Must be 'object' if this is an object type, or the underlying type for an enum.
string
A reference to a primitive type. A primitive type must have only the "type" property set.
object
type (required)The primitive type, if any
string
Enum: "boolean" | "integer" | "number" | "string"
Describes an object or resource property
object
All of:
constThe constant value for the property, if any. The type of the value must be assignable to the type of the property.
boolean | number | string
defaultThe default value for the property, if any. The type of the value must be assignable to the type of the property.
boolean | number | string
defaultInfoAdditional information about the property's default value, if any.
object
environment (required)A set of environment variables to probe for a default value.
array
Items: string
languageAdditional language-specific data about the default value.
object
deprecationMessageIndicates whether the property is deprecated
string
descriptionThe description of the property, if any. Interpreted as Markdown.
string
languageAdditional language-specific data about the property.
object
replaceOnChangesSpecifies whether a change to the property causes its containing resource to be replaced instead of updated (default false).
boolean
secretSpecifies whether the property is secret (default false).
boolean
willReplaceOnChangesIndicates that the provider will replace the resource when this property is changed.
boolean
Describes a resource or component.
object
All of:
aliasesThe list of aliases for the resource.
array
Items: Alias Definition
deprecationMessageIndicates whether the resource is deprecated
string
descriptionThe description of the resource, if any. Interpreted as Markdown.
string
inputPropertiesA map from property name to propertySpec that describes the resource's input properties.
object
Additional properties: Property Definition
isComponentIndicates whether the resource is a component.
boolean
isOverlayIndicates 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
methodsA map from method name to function token that describes the resource's method set.
object
Additional properties: string
requiredInputsA list of the names of the resource's required input properties.
array
Items: string
stateInputsAn optional objectTypeSpec that describes additional inputs that may be necessary to get an existing resource. If this is unset, only an ID is necessary.
string
Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*:([^0-9][a-zA-Z0-9._/-]*)?:[^0-9][a-zA-Z0-9._/]*$
Describes an object or enum type.
object
One of:
descriptionThe description of the type, if any. Interpreted as Markdown.
string
isOverlayIndicates 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
languageAdditional language-specific data about the type.
object
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:
plainIndicates that when used as an input, this type does not accept eventual values.
boolean
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
discriminatorInforms the consumer of an alternative schema based on the value associated with it
object
mappingAn 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
typeThe 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/parameterizationobject
baseProviderobject
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-]+)*))?$
parameterThe parameter for the provider.
string
https://github.com/pulumi/pulumi/blob/master/pkg/codegen/schema/pulumi.json#/properties/dependencies/itemsobject
name (required)The unqualified name of the package (e.g. "aws", "azure", "gcp", "kubernetes", "random")
string
Pattern: ^[a-zA-Z][-a-zA-Z0-9_]*$
parameterizationAn optional object to define parameterization for the package.
object
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-]+)*))?$
pluginDownloadURLThe optional URL to use when downloading the provider plugin binary.
string
versionThe 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-]+)*))?$