pulumi/proto
Mikhail Shilkov 2691fae042
Protobuf definition for autonaming configuration (#17810)
Introduces protobuf changes required for
[Autonaming](https://github.com/pulumi/pulumi/discussions/17592)
implementation.

We add a struct field to CheckRequest. The struct contains two fields:
- Proposed name that will hold a name calculated by the engine which is
a suggested candidate for resource's autoname (in case it's needed)
- Mode of how to apply that name:
- Disable: there should be no proposed name passed, since the autonaming
is disabled for this resource
- Enforce: provider _must_ use the proposed name if no explicit name was
provider, or error otherwise
- Propose: use the provided name as a baseline but can adjust it given
provider's domain knowledge

Once this ships, we can start upgrading providers to this protocol
version and implementing autonaming provider-side.

Also, we add a `SupportsAutonamingConfiguration` flag that a provider
needs to set to `true` in `ConfigureResponse` once it declares that it
will respec autonaming configuration provided by the engine.

Part of https://github.com/pulumi/pulumi/issues/1518
2024-11-22 11:27:58 +00:00
..
build-container Update node sdk to use typescript definitions for grpc and protobufs. (#14415) 2023-12-04 15:22:44 +00:00
google/protobuf Compile protobufs with "pulumi" namespace (#10074) 2022-07-12 14:45:03 +01:00
pulumi Protobuf definition for autonaming configuration (#17810) 2024-11-22 11:27:58 +00:00
.checksum.txt Protobuf definition for autonaming configuration (#17810) 2024-11-22 11:27:58 +00:00
README.md Generate reference documentation from Protobufs (#17120) 2024-08-30 17:04:16 +00:00
generate.sh allow better grpc error messages from Python component providers (#17429) 2024-10-10 09:52:29 +00:00
grpc_version.txt Add getOrganization to nodejs and python (#10504) 2022-08-31 10:33:29 +01:00

README.md

Protobuf and gRPC interfaces

This package contains Protobuf definitions for the various types, messages and interfaces that Pulumi components use to communicate. These definitions serve as the source of truth for several parts of the wider codebase.

Code generation

:::{note} Code generated from Protobuf files is committed to the repository. If you change one or more .proto files, you should run make build_proto to regenerate the necessary stubs and commit the changes as part of the same piece of work. :::

The gh-file:pulumi#proto/generate.sh script in this directory (called by the build_proto target in the top-level gh-file:pulumi#Makefile) generates types and gRPC clients for the languages supported in this repository (Go, NodeJS/TypeScript and Python). Generated code is committed to the repository, typically in proto directories at the relevant use sites (e.g. gh-file:pulumi#sdk/nodejs/proto).

Documentation

We use the protoc-gen-doc plugin to protoc to generate Markdown documentation from the Protobuf files. This process is handled by the gh-file:pulumi#docs/Makefile in the docs directory and uses the gh-file:pulumi#docs/references/proto.md.tmpl template. Generated documentation ends up in the docs/_generated directory (which is .gitignored), so e.g. this index links to files in this folder.

Index

:::{toctree} :maxdepth: 1 :titlesonly:

/docs/_generated/proto/resource /docs/_generated/proto/provider /docs/_generated/proto/plugin /docs/_generated/proto/language /docs/_generated/proto/callback /docs/_generated/proto/loader /docs/_generated/proto/converter /docs/_generated/proto/analyzer /docs/_generated/proto/alias /docs/_generated/proto/engine /docs/_generated/proto/errors /docs/_generated/proto/source :::