# Schema loading
<gh-file:pulumi#proto/pulumi/codegen/loader.proto>

## Services

(codegen.Loader)=
### 🔌 Loader
Loader is a service for getting schemas from the Pulumi engine for use in code generators and other tools.
This is currently unstable and experimental.


(codegen.Loader.GetSchema)=
#### 📞 GetSchema

⤵️ [GetSchemaRequest](#codegen.GetSchemaRequest) ⤴️ [GetSchemaResponse](#codegen.GetSchemaResponse)

GetSchema tries to find a schema for the given package and version.

## Messages
(codegen.GetSchemaRequest)=
### 📨 GetSchemaRequest
GetSchemaRequest allows the engine to return a schema for a given package and version.


`package` [string](#string)
:   the package name for the schema being requested.


`version` [string](#string)
:   the version for the schema being requested, must be a valid semver or empty.


`download_url` [string](#string)
:   the optional download url for the schema being requested.


`parameterization` [Parameterization](#codegen.Parameterization)
:   the parameterization for the schema being requested, can be empty.

(codegen.GetSchemaResponse)=
### 📨 GetSchemaResponse
GetSchemaResponse returns the schema data for the requested package.


`schema` [bytes](#bytes)
:   the JSON encoded schema.

(codegen.Parameterization)=
### 📨 Parameterization
Parameterization specifies the name, version, and value for a parameterized package.


`name` [string](#string)
:   the parameterized package name.


`version` [string](#string)
:   the parameterized package version.


`value` [bytes](#bytes)
:   the parameter value for the parameterized package.

