---
title: Schema
url: /docs/iac/guides/building-extending/packages/schema/
---


Pulumi packages are described by a package schema, which drives code generation for SDKs in each supported Pulumi language, as well as generation of language-agnostic package documentation. This schema can be manually authored (for component packages) or generated from some other source (such as a cloud provider's API specifications for a native Pulumi resource provider). Packages can expose resources and functions, define types used by these resources and functions, and provide packaging metadata for language-specific SDKs.

## Example

The following example schema describes a package named `apigateway` with a single resource, `RestAPI`, which is a [component](/docs/iac/concepts/components/). `RestAPI` has a required input property `routes` and two required (always populated) output properties: `url`, of type `string`, and `api`, which references the external type of the AWS API Gateway [`RestAPI`](/registry/packages/aws/api-docs/apigateway/restapi/) resource. The type of the `routes` input is a custom type named `EventHandlerRoute` defined in the schema, which is an object type with `path`, `method`, and `function` properties. The schema supports generation of SDKs for `csharp`, `go`, `nodejs`, and `python`, with metadata configuring each of the generated SDKs in the corresponding sections.

```json
{
    "name": "apigateway",
    "types": {
        "apigateway:index:EventHandlerRoute": {
            "type": "object",
            "properties": {
                "path": {
                    "type": "string"
                },
                "method": {
                    "type": "string"
                },
                "function": {
                    "$ref": "/aws/v7.44.0/schema.json#/resources/aws:lambda%2Ffunction:Function"
                }
            }
        }
    },
    "resources": {
        "apigateway:index:RestAPI": {
            "isComponent": true,
            "inputProperties": {
                "routes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/apigateway:index:EventHandlerRoute"
                    }
                }
            },
            "requiredInputs": [
                "routes"
            ],
            "properties": {
                "url": {
                    "type": "string"
                },
                "api": {
                    "$ref": "/aws/v7.44.0/schema.json#/resources/aws:apigateway%2FrestApi:RestApi"
                }
            },
            "required": [
                "url",
                "api"
            ]
        }
    },
    "language": {
        "csharp": {
            "packageReferences": {
                "Pulumi": "3.*",
                "Pulumi.Aws": "7.*"
            }
        },
        "go": {
            "generateResourceContainerTypes": true,
            "importBasePath": "github.com/acmecorp/pulumi-apigateway/sdk/go/apigateway"
        },
        "nodejs": {
            "dependencies": {
                "@pulumi/aws": "^7.44.0"
            },
            "devDependencies": {
                "typescript": "^5.0.0"
            }
        },
        "python": {
            "requires": {
                "pulumi": ">=3.0.0,<4.0.0",
                "pulumi-aws": ">=7.0.0,<8.0.0"
            }
        }
    }
}
```

Complete schema examples that include a much wider range of schema configuration styles are available in these existing packages:

* [AWS](https://github.com/pulumi/pulumi-aws/blob/master/provider/cmd/pulumi-resource-aws/schema.json) - Bridged provider package
* [Azure Native](https://github.com/pulumi/pulumi-azure-native/blob/master/provider/cmd/pulumi-resource-azure-native/schema.json) - Native Pulumi provider package
* [EKS](https://github.com/pulumi/pulumi-eks/blob/master/provider/cmd/pulumi-resource-eks/schema.json) - Component package

## Pulumi package schema

  

Generated from [`pkg/codegen/schema/pulumi.json`](https://github.com/pulumi/pulumi/blob/v3.268.0/pkg/codegen/schema/pulumi.json) in pulumi/pulumi
`v3.268.0` — the metaschema
[`pulumi schema check`](/docs/iac/cli/commands/pulumi_schema_check/)
validates against.

  

Every type below is one shape a package schema can contain. Names are the JSON keys you
write; a linked type means that property's value takes the shape of another type on this
page. To check a schema you've written against these rules, run
[`pulumi schema check`](/docs/iac/cli/commands/pulumi_schema_check/).

<link rel="stylesheet" href="/fingerprinted/css/openapi.bea05c86acadd43e2a68cc78ae738835e6485d9ab355035216617245beeeb307.css">

  
  

  

### Package

The top-level object of a package schema. Everything else on this page describes something reachable from here.

  

`name`
string
required

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

  

`displayName`
string
optional

The human-friendly name of the package.

  

`version`
string
optional

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

  

`description`
string
optional

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

  

`keywords`
array[string]
optional

The list of keywords that are associated with the package, if any.
Reserved keywords can be specified that help with categorizing the package in the [Pulumi Registry](/registry/). `category/<name>` and `kind/<type>` are the only reserved keywords at this time, where `<name>` is one of `cloud`, `database`, `infrastructure`, `network`, `utility`, or `vcs`, and `<type>` is either `native` or `component`. If the package is a bridged Terraform provider, don’t include a `kind/` label.

  

`homepage`
string
optional

The package’s homepage.

  

`license`
string
optional

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

  

`attribution`
string
optional

Freeform text attribution of derived work, if required.

  

`repository`
string
optional

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

  

`logoUrl`
string
optional

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

  

`pluginDownloadURL`
string
optional

The URL to use when downloading the provider plugin binary.

  

`configurationDocsUrl`
string
optional

The URL of the provider’s installation and configuration documentation, if any.

  

`validateCredentialsOnNew`
boolean
optional

Indicates that `pulumi new` may configure the provider after creating a project in order to validate the user’s credentials.

  

`publisher`
string
optional

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

  

`namespace`
string
optional

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

  

`meta`
[Metadata](#metadata)
optional

Format metadata about this package.

  

`config`
[Config](#config)
optional

The package’s configuration variables.

  

`types`
[map[ComplexType]](#complextype)
optional

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

  

`dependencies`
[array[PackageDescriptor]](#packagedescriptor)
optional

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

  

`provider`
[Resource](#resource)
optional

The provider type for this package.

  

`resources`
[map[Resource]](#resource)
optional

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

  

`functions`
[map[Function]](#function)
optional

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

  

`language`
[map[PackageLanguage]](#packagelanguage)
optional

Additional language-specific data about the package.

  

`parameterization`
[ParameterizationSpec](#parameterizationspec)
optional

An optional object to define parameterization for the package.

  

`allowedPackageNames`
array[string]
optional

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

  

  

### Metadata

Format metadata about this package.

  

`moduleFormat`
string
optional

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”.

  

`supportPack`
boolean
optional

Write the package to support the pack command.

  

  

### Config

The package’s configuration variables.

  

`variables`
[map[Property]](#property)
optional

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

  

`defaults`
array[string]
optional

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

  

  

### PackageDescriptor

Identifies another package this package depends on.

  

`name`
string
required

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

  

`version`
string
optional

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

  

`pluginDownloadURL`
string
optional

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

  

`parameterization`
object
optional

An optional object to define parameterization for the package.

  

  

### ObjectType

Describes an object type.

  

`description`
string
optional

The description of the type, if any.

  

`properties`
[map[Property]](#property)
optional

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

  

`type`
string
optional

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

  

`required`
array[string]
optional

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.

  

`language`
[map[ObjectTypeLanguage]](#objecttypelanguage)
optional

Additional language-specific data about the object type.

  

`isOverlay`
boolean
optional

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.

  

`overlaySupportedLanguages`
array[string]
optional

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’.

**Values:**
`nodejs`, `python`, `go`, `csharp`, `java`, `yaml`

  

  

### ComplexType

Describes an object or enum type.

  

`description`
string
optional

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

  

`language`
[map[ObjectTypeLanguage]](#objecttypelanguage)
optional

Additional language-specific data about the type.

  

`isOverlay`
boolean
optional

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.

  

Exactly one of

**Object Type Definition**

Includes every property of
[ObjectType](#objecttype), plus:

  

`type`
"object"
optional

  

**EnumType** — see [EnumType](#enumtype)

  

### EnumType

Describes an enum type.

  

`type`
string
required

The underlying primitive type of the enum.

**Values:**
`boolean`, `integer`, `number`, `string`

  

`enum`
[array[EnumValue]](#enumvalue)
required

The list of possible values for the enum.

  

  

### Resource

Describes a resource or component.

Includes every property of
[ObjectType](#objecttype), plus:

  

`description`
string
optional

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

  

`inputProperties`
[map[Property]](#property)
optional

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

  

`requiredInputs`
array[string]
optional

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

  

`stateInputs`
[ObjectType](#objecttype)
optional

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.

  

`listInputs`
[ObjectType](#objecttype)
optional

An optional objectTypeSpec that describes inputs that may be supplied when listing existing resources of this type. If this is unset, the resource does not declare list support in the schema.

  

`aliases`
[array[Alias]](#alias)
optional

The list of aliases for the resource.

  

`deprecationMessage`
string
optional

Indicates whether the resource is deprecated.

  

`isComponent`
boolean
optional

Indicates whether the resource is a component.

  

`methods`
map[string]
optional

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

  

`isOverlay`
boolean
optional

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.

  

  

### Function

Describes a function.

  

`description`
string
optional

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

  

`inputs`
[ObjectType](#objecttype)
optional

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

  

`multiArgumentInputs`
array[string]
optional

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.

  

`outputs`
[Type](#type) | [ObjectType](#objecttype)
optional

Specifies the return type of the function definition.

  

`returnType`
[Type](#type) | [ObjectType](#objecttype)
optional

Specifies the return type of the function definition.

  

`deprecationMessage`
string
optional

Indicates whether the function is deprecated.

  

`language`
[map[FunctionLanguage]](#functionlanguage)
optional

Additional language-specific data about the function.

  

`isOverlay`
boolean
optional

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.

  

`overlaySupportedLanguages`
array[string]
optional

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’.

**Values:**
`nodejs`, `python`, `go`, `csharp`, `java`, `yaml`

  

`plain`
boolean
optional

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.

  

  

### Type

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.

  

`plain`
boolean
optional

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

  

Exactly one of

**Primitive Type**
A reference to a primitive type. A primitive type must have only the “type” property set.

  

`type`
string
required

The primitive type, if any.

**Values:**
`boolean`, `integer`, `number`, `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.

  

`type`
"array"
required

  

`items`
[Type](#type)
required

The element type of the array.

  

**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.

  

`type`
"object"
required

  

`additionalProperties`
[Type](#type)
optional

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

  

**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.

  

`type`
string
optional

ignored; present for compatibility with existing schemas.

  

`$ref`
string
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”.

  

**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.

  

`type`
string
optional

The underlying primitive type of the union, if any.

**Values:**
`boolean`, `integer`, `number`, `string`

  

`oneOf`
[array[Type]](#type)
required

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

  

`discriminator`
[Discriminator](#discriminator)
optional

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

  

  

### Property

Describes an object or resource property.

Includes every property of
[Type](#type), plus:

  

`description`
string
optional

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

  

`const`
boolean | number | string
optional

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

  

`default`
boolean | number | string
optional

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

  

`defaultInfo`
[Default](#default)
optional

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

  

`deprecationMessage`
string
optional

Indicates whether the property is deprecated.

  

`language`
[map[PropertyLanguage]](#propertylanguage)
optional

Additional language-specific data about the property.

  

`secret`
boolean
optional

Specifies whether the property is secret (default false).

  

`replaceOnChanges`
boolean
optional

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

  

`willReplaceOnChanges`
boolean
optional

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

  

  

### EnumValue

One of the values an enum type may take, and the metadata attached to it.

  

`name`
string
optional

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

  

`description`
string
optional

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

  

`value`
boolean | integer | number | string
required

The enum value itself.

  

`deprecationMessage`
string
optional

Indicates whether the value is deprecated.

  

  

### Alias

A previous identity of a resource. Aliases let a resource be renamed or moved without the engine treating it as a delete and a create. May be written as a string or as an object.

  

`type`
string
optional

The type portion of the alias, if any.

  

  

### Default

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

  

`environment`
array[string]
required

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

  

`language`
[map[DefaultLanguage]](#defaultlanguage)
optional

Additional language-specific data about the default value.

  

  

### Discriminator

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

  

`propertyName`
string
required

The name of the property in the payload that will hold the discriminator value.

  

`mapping`
map[string]
optional

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

  

  

### ParameterizationSpec

Parameterized packages populate this with concrete parameter values. Pulumi code generators read it to emit SDKs that preserve those values and pass them back to the provider at runtime.

  

`baseProvider`
[BaseProviderSpec](#baseproviderspec)
optional

The provider being specialized, named by package name and version.

  

`parameter`
string
optional

The parameter for the provider.

  

  

### BaseProviderSpec

The provider that a parameterized package specializes.

  

`name`
string
required

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

  

`version`
string
required

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

  

  

  
  

  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

  
  

## Language-specific extensions

A `language` field maps a supported language to a language-specific object. The shape of
that object is decided by that language's SDK code generator rather than by the schema
itself, which is how a generator gets to encode what it alone needs — an NPM package name,
a Java base package, a Go import path.

Each generator owns its extension, so each section below is generated from the repository
that owns that language's code generator and carries the release it came from. A language
that has no entry for a section does not read one.

<link rel="stylesheet" href="/fingerprinted/css/openapi.bea05c86acadd43e2a68cc78ae738835e6485d9ab355035216617245beeeb307.css">

  
  

  
  
  

  

  

  

  

  
  

  

  

### PackageLanguage

Language-specific information for a package.

<pulumi-chooser type="language" options="typescript,python,go,csharp,java" mode=""></pulumi-chooser>

<pulumi-choosable type="language" values="typescript" mode="">

Set under the `nodejs` key of a
`language` map. Generated from
[pulumi/pulumi v3.268.0](https://github.com/pulumi/pulumi/tree/v3.268.0).

  

`packageName`
string
optional

Custom name for the NPM package.

  

`packageDescription`
string
optional

Description for the NPM package.

  

`readme`
string
optional

Contains the text for the package’s README.md files.

  

`dependencies`
map[string]
optional

NPM dependencies to add to package.json.

  

`devDependencies`
map[string]
optional

NPM dev-dependencies to add to package.json.

  

`peerDependencies`
map[string]
optional

NPM peer-dependencies to add to package.json.

  

`resolutions`
map[string]
optional

NPM resolutions to add to package.json.

  

`typescriptVersion`
string
optional

A specific version of TypeScript to include in package.json.

  

`moduleToPackage`
map[string]
optional

A map containing overrides for module names to package names.

  

`compatibility`
string
optional

Toggle compatibility mode for a specified target.

  

`disableUnionOutputTypes`
boolean
optional

Disable support for unions in output types.

  

`containsEnums`
boolean
optional

An indicator for whether the package contains enums.

  

`providerNameToModuleName`
map[string]
optional

A map allowing you to map the name of a provider to the name of the module encapsulating the provider.

  

`extraTypeScriptFiles`
array[string]
optional

Additional files to include in TypeScript compilation. These paths are added to the `files` section of the generated `tsconfig.json`. A typical use case for this is compiling hand-authored unit test files that check the generated code.

  

`liftSingleValueMethodReturns`
boolean
optional

Determines whether to make single-return-value methods return an output object or the single value.

  

`respectSchemaVersion`
boolean
optional

Respect the Pkg.Version field in the schema.

  

`useTypeOnlyReferences`
boolean
optional

Experimental flag that permits `import type *` style code to be generated to optimize startup time of programs consuming the provider by minimizing the set of Node modules loaded at startup. Turning this on may currently generate non-compiling code for some providers; but if the code compiles it is safe to use. Also, turning this on requires TypeScript 3.8 or higher to compile the generated code.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="python" mode="">

Set under the `python` key of a
`language` map. Generated from
[pulumi/pulumi v3.268.0](https://github.com/pulumi/pulumi/tree/v3.268.0).

  

`packageName`
string
optional

An override for the name of the generated python package.

  

`pythonRequires`
string
optional

Determines the Python versions that the generated provider supports.

  

`requires`
map[string]
optional

Python package requirements to add to the generated package’s metadata, as a map from distribution name to version specifier.

  

`readme`
string
optional

Contains the text for the package’s README.md files.

  

`moduleNameOverrides`
map[string]
optional

Optional overrides for Pulumi module names.

  

`compatibility`
string
optional

Toggle compatibility mode for a specified target.

  

`usesIOClasses`
boolean
optional
deprecated

This bool is no longer needed since all providers now use input/output classes.

  

`liftSingleValueMethodReturns`
boolean
optional

Determines whether to make single-return-value methods return an output object or the single value.

  

`respectSchemaVersion`
boolean
optional

Respect the Pkg.Version field for emitted code.

  

`pyproject`
object
optional

If enabled, a pyproject.toml file will be generated.

  

`inputTypes`
string
optional

Specifies what types are used for inputs. Allowed values are the following:

“classes”: Args classes only
“classes-and-dicts” (default): TypedDicts side-by-side with Args classes.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="go" mode="">

Set under the `go` key of a
`language` map. Generated from
[pulumi/pulumi v3.268.0](https://github.com/pulumi/pulumi/tree/v3.268.0).

  

`importBasePath`
string
optional

Base path for package imports.

  

`modulePath`
string
optional

Module path for go.mod.

  

`rootPackageName`
string
optional

Explicit package name, which may be different to the import path.

  

`moduleToPackage`
map[string]
optional

Map from module -> package name.

  

`packageImportAliases`
map[string]
optional

Map from package name -> package alias.

  

`importPathPattern`
string
optional

Defines the pattern for how import paths should be constructed from the base import path and used module By default, the pattern is “{baseImportPath}/{module}” but can be overridden to support other patterns. for example you can use “{baseImportPath}/{module}/v2” which will replace {module} with the module name and {baseImportPath} with the base import path to compute the full path.

  

`generateResourceContainerTypes`
boolean
optional

Generate container types (arrays, maps, pointer output types etc.) for each resource. These are typically used to support external references.

  

`pulumiSDKVersion`
integer
optional

The version of the Pulumi SDK used with this provider, e.g. 3. Used to generate doc links for pulumi builtin types. If omitted, the latest SDK version is used.

  

`liftSingleValueMethodReturns`
boolean
optional

Determines whether to make single-return-value methods return an output struct or the value.

  

`internalModuleName`
string
optional

When set, the code generator will use this name for the generated internal module instead of “internal” so that functionality within the module can be used by end users.

  

`generateExtraInputTypes`
boolean
optional

Determines whether or not the code generator generates input (and output) types for all plain types, instead of for only types that are used as input/output types.

  

`omitExtraInputTypes`
boolean
optional

Determines whether the code generator generates input (and output) types for all plain types, instead of for only types that are used as input/output types.

  

`respectSchemaVersion`
boolean
optional

Respect the Pkg.Version field for emitted code.

  

`internalDependencies`
array[string]
optional

Blank imports that are emitted in the SDK so that `go mod tidy` does not remove the associated module dependencies from the SDK’s go.mod.

  

`generics`
string
optional

Specifies how to handle generating a variant of the SDK that uses generics. Allowed values are the following:

“none” (default): do not generate a generics variant of the SDK
“side-by-side”: generate a side-by-side generics variant of the SDK under the x subdirectory
“only-generics”: generate a generics variant of the SDK only

  

</pulumi-choosable>

<pulumi-choosable type="language" values="csharp" mode="">

Set under the `csharp` key of a
`language` map. Generated from
[pulumi/pulumi-dotnet v3.113.1](https://github.com/pulumi/pulumi-dotnet/tree/v3.113.1).

  

`packageReferences`
map[string]
optional

NuGet package references to add to the generated `.csproj`, as a map from package name to version.

  

`namespaces`
map[string]
optional

Overrides for module names to C# namespaces, as a map from module name to namespace.

  

`compatibility`
string
optional

Toggles compatibility mode for a specified target.

  

`dictionaryConstructors`
boolean
optional

Generates constructors that take a dictionary of properties in addition to the typed args class.

  

`projectReferences`
array[string]
optional

Paths to local `.csproj` files to reference from the generated project, instead of resolving those dependencies from NuGet.

  

`liftSingleValueMethodReturns`
boolean
optional

Determines whether to make single-return-value methods return an output object or the single value.

  

`rootNamespace`
string
optional

The root namespace used for the package. This defaults to `Pulumi`.

  

`respectSchemaVersion`
boolean
optional

Allow the Pkg.Version field to filter down to emitted code.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="java" mode="">

Set under the `java` key of a
`language` map. Generated from
[pulumi/pulumi-java v1.36.3](https://github.com/pulumi/pulumi-java/tree/v1.36.3).

  

`packages`
map[string]
optional

Overrides how Schema packages names translate to Java package names.

  

`basePackage`
string
required

The prefix of the Java package to generate.

  

`buildFiles`
string
required

If set to “gradle” enables a generation of a basic set of Gradle build files.

  

`repositories`
array[string]
optional

If non-empty, specifies a list of Maven repositories that should be referenced by the generated package. This can be useful for specifying the locations of e.g. local or private dependencies.

  

`dependencies`
map[string]
optional

Specifies Maven-style dependencies for the generated code.

  

`gradleNexusPublishPluginVersion`
string
required

If non-empty and BuildFiles=“gradle”, enables the use of a given version of io.github.gradle-nexus.publish-plugin in the generated Gradle build files.

  

`gradleTest`
string
required

If non-empty and BuildFiles=“gradle”, generates a test section to enable `gradle test` command to run unit tests over the generated code. Supported values: “JUnitPlatform”.

  

</pulumi-choosable>

  

### PropertyLanguage

Language-specific information for a property.

<pulumi-chooser type="language" options="typescript,python,go,csharp,java" mode=""></pulumi-chooser>

<pulumi-choosable type="language" values="typescript" mode="">

Not supported by the TypeScript code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="python" mode="">

Set under the `python` key of a
`language` map. Generated from
[pulumi/pulumi v3.268.0](https://github.com/pulumi/pulumi/tree/v3.268.0).

  

`mapCase`
boolean
optional

Whether the property name is mapped between the schema’s camelCase and Python’s snake_case. Defaults to true.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="go" mode="">

Not supported by the Go code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="csharp" mode="">

Set under the `csharp` key of a
`language` map. Generated from
[pulumi/pulumi-dotnet v3.113.1](https://github.com/pulumi/pulumi-dotnet/tree/v3.113.1).

  

`name`
string
optional

An override for the generated C# property name.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="java" mode="">

Set under the `java` key of a
`language` map. Generated from
[pulumi/pulumi-java v1.36.3](https://github.com/pulumi/pulumi-java/tree/v1.36.3).

  

`name`
string
optional

An override for the generated Java property name.

  

</pulumi-choosable>

  

### ResourceLanguage

Language-specific information for a resource.

<pulumi-chooser type="language" options="typescript,python,go,csharp,java" mode=""></pulumi-chooser>

<pulumi-choosable type="language" values="typescript" mode="">

Not supported by the TypeScript code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="python" mode="">

Not supported by the Python code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="go" mode="">

Not supported by the Go code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="csharp" mode="">

Set under the `csharp` key of a
`language` map. Generated from
[pulumi/pulumi-dotnet v3.113.1](https://github.com/pulumi/pulumi-dotnet/tree/v3.113.1).

  

`name`
string
optional

An override for the generated C# class name for the resource.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="java" mode="">

Not supported by the Java code generator.

</pulumi-choosable>

  

### ObjectTypeLanguage

Language-specific information for an object type.

<pulumi-chooser type="language" options="typescript,python,go,csharp,java" mode=""></pulumi-chooser>

<pulumi-choosable type="language" values="typescript" mode="">

Set under the `nodejs` key of a
`language` map. Generated from
[pulumi/pulumi v3.268.0](https://github.com/pulumi/pulumi/tree/v3.268.0).

  

`requiredInputs`
array[string]
required

List of properties that are required on the input side of a type.

  

`requiredOutputs`
array[string]
required

List of properties that are required on the output side of a type.

  

</pulumi-choosable>

<pulumi-choosable type="language" values="python" mode="">

Not supported by the Python code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="go" mode="">

Not supported by the Go code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="csharp" mode="">

Not supported by the C# code generator.

</pulumi-choosable>

<pulumi-choosable type="language" values="java" mode="">

Not supported by the Java code generator.

</pulumi-choosable>

  

### FunctionLanguage

Language-specific information for a function.

Not yet supported in any target language.

  

### DefaultLanguage

Language-specific information for a property’s default value.

Not yet supported in any target language.

  

  
  

  

  
  

  
  

  
  

  
  

  
  

  
  


