# Engine services
<gh-file:pulumi#proto/pulumi/engine.proto>

## Services

(pulumirpc.Engine)=
### 🔌 Engine
Engine is an auxiliary service offered to language and resource provider plugins. Its main purpose today is
to serve as a common logging endpoint, but it also serves as a state storage mechanism for language hosts
that can't store their own global state.


(pulumirpc.Engine.Log)=
#### 📞 Log

⤵️ [LogRequest](#pulumirpc.LogRequest) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

Log logs a global message in the engine, including errors and warnings.


(pulumirpc.Engine.GetRootResource)=
#### 📞 GetRootResource

⤵️ [GetRootResourceRequest](#pulumirpc.GetRootResourceRequest) ⤴️ [GetRootResourceResponse](#pulumirpc.GetRootResourceResponse)

GetRootResource gets the URN of the root resource, the resource that should be the root of all
otherwise-unparented resources.


(pulumirpc.Engine.SetRootResource)=
#### 📞 SetRootResource

⤵️ [SetRootResourceRequest](#pulumirpc.SetRootResourceRequest) ⤴️ [SetRootResourceResponse](#pulumirpc.SetRootResourceResponse)

SetRootResource sets the URN of the root resource.


(pulumirpc.Engine.StartDebugging)=
#### 📞 StartDebugging

⤵️ [StartDebuggingRequest](#pulumirpc.StartDebuggingRequest) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

StartDebugging indicates to the engine that the program has started under a debugger, and the engine
should notify the user of how to connect to the debugger.


(pulumirpc.Engine.RequirePulumiVersion)=
#### 📞 RequirePulumiVersion

⤵️ [RequirePulumiVersionRequest](#pulumirpc.RequirePulumiVersionRequest) ⤴️ [RequirePulumiVersionResponse](#pulumirpc.RequirePulumiVersionResponse)

RequirePulumiVersion checks that the version of the engine satisfies the passed in range.

## Messages
(pulumirpc.GetRootResourceRequest)=
### 📨 GetRootResourceRequest
empty.

(pulumirpc.GetRootResourceResponse)=
### 📨 GetRootResourceResponse



`urn` [string](#string)
:   the URN of the root resource, or the empty string if one was not set.

(pulumirpc.LogRequest)=
### 📨 LogRequest



`severity` [LogSeverity](#pulumirpc.LogSeverity)
:   the logging level of this message.


`message` [string](#string)
:   the contents of the logged message.


`urn` [string](#string)
:   the (optional) resource urn this log is associated with.


`streamId` [int32](#int32)
:   the (optional) stream id that a stream of log messages can be associated with. This allows
  clients to not have to buffer a large set of log messages that they all want to be
  conceptually connected.  Instead the messages can be sent as chunks (with the same stream id)
  and the end display can show the messages as they arrive, while still stitching them together
  into one total log message.
  
  0/not-given means: do not associate with any stream.


`ephemeral` [bool](#bool)
:   Optional value indicating whether this is a status message.

(pulumirpc.RequirePulumiVersionRequest)=
### 📨 RequirePulumiVersionRequest



`pulumi_version_range` [string](#string)
:   A version range to check against the engine (CLI) version. If the version is not compatible with the specified
  range, an error is returned. The supported syntax for ranges is that of
  https://pkg.go.dev/github.com/blang/semver#ParseRange. For example ">=3.0.0", or "!3.1.2". Ranges can be AND-ed
  together by concatenating with spaces ">=3.5.0 !3.7.7", meaning greater-or-equal to 3.5.0 and not exactly 3.7.7.
  Ranges can be OR-ed with the `||` operator: "<3.4.0 || >3.8.0", meaning less-than 3.4.0 or greater-than 3.8.0.

(pulumirpc.RequirePulumiVersionResponse)=
### 📨 RequirePulumiVersionResponse
empty

(pulumirpc.SetRootResourceRequest)=
### 📨 SetRootResourceRequest



`urn` [string](#string)
:   the URN of the root resource, or the empty string.

(pulumirpc.SetRootResourceResponse)=
### 📨 SetRootResourceResponse
empty.

(pulumirpc.StartDebuggingRequest)=
### 📨 StartDebuggingRequest



`config` [google.protobuf.Struct](#google.protobuf.Struct)
:   the debug configuration parameters.  These are meant to be in the right format for the DAP protocol to consume.


`message` [string](#string)
:   the string to display to the user with instructions on how to connect to the debugger.

