pulumi-language-ruby 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +39 -0
  4. data/Rakefile +8 -0
  5. data/exe/pulumi-language-ruby +39 -0
  6. data/lib/ruby_pulumi/generated/pulumi/alias_pb.rb +16 -0
  7. data/lib/ruby_pulumi/generated/pulumi/analyzer_pb.rb +43 -0
  8. data/lib/ruby_pulumi/generated/pulumi/analyzer_services_pb.rb +69 -0
  9. data/lib/ruby_pulumi/generated/pulumi/callback_pb.rb +17 -0
  10. data/lib/ruby_pulumi/generated/pulumi/callback_services_pb.rb +39 -0
  11. data/lib/ruby_pulumi/generated/pulumi/codegen/hcl_pb.rb +20 -0
  12. data/lib/ruby_pulumi/generated/pulumi/codegen/loader_pb.rb +17 -0
  13. data/lib/ruby_pulumi/generated/pulumi/codegen/loader_services_pb.rb +40 -0
  14. data/lib/ruby_pulumi/generated/pulumi/codegen/mapper_pb.rb +17 -0
  15. data/lib/ruby_pulumi/generated/pulumi/codegen/mapper_services_pb.rb +50 -0
  16. data/lib/ruby_pulumi/generated/pulumi/converter_pb.rb +21 -0
  17. data/lib/ruby_pulumi/generated/pulumi/converter_services_pb.rb +42 -0
  18. data/lib/ruby_pulumi/generated/pulumi/engine_pb.rb +26 -0
  19. data/lib/ruby_pulumi/generated/pulumi/engine_services_pb.rb +51 -0
  20. data/lib/ruby_pulumi/generated/pulumi/errors_pb.rb +17 -0
  21. data/lib/ruby_pulumi/generated/pulumi/events_pb.rb +17 -0
  22. data/lib/ruby_pulumi/generated/pulumi/events_services_pb.rb +45 -0
  23. data/lib/ruby_pulumi/generated/pulumi/language_pb.rb +55 -0
  24. data/lib/ruby_pulumi/generated/pulumi/language_services_pb.rb +121 -0
  25. data/lib/ruby_pulumi/generated/pulumi/plugin_pb.rb +19 -0
  26. data/lib/ruby_pulumi/generated/pulumi/provider_pb.rb +66 -0
  27. data/lib/ruby_pulumi/generated/pulumi/provider_services_pb.rb +232 -0
  28. data/lib/ruby_pulumi/generated/pulumi/resource_pb.rb +51 -0
  29. data/lib/ruby_pulumi/generated/pulumi/resource_services_pb.rb +64 -0
  30. data/lib/ruby_pulumi/generated/pulumi/resource_status_pb.rb +23 -0
  31. data/lib/ruby_pulumi/generated/pulumi/resource_status_services_pb.rb +44 -0
  32. data/lib/ruby_pulumi/generated/pulumi/source_pb.rb +17 -0
  33. data/lib/ruby_pulumi/generated/pulumi/testing/language_pb.rb +24 -0
  34. data/lib/ruby_pulumi/generated/pulumi/testing/language_services_pb.rb +47 -0
  35. data/lib/ruby_pulumi/language_host.rb +46 -0
  36. data/lib/ruby_pulumi/pulumi.rb +2 -0
  37. data/lib/ruby_pulumi/resource.rb +24 -0
  38. data/lib/ruby_pulumi/runtime.rb +7 -0
  39. data/pulumi/alias.proto +38 -0
  40. data/pulumi/analyzer.proto +293 -0
  41. data/pulumi/callback.proto +44 -0
  42. data/pulumi/codegen/hcl.proto +89 -0
  43. data/pulumi/codegen/loader.proto +51 -0
  44. data/pulumi/codegen/mapper.proto +74 -0
  45. data/pulumi/converter.proto +94 -0
  46. data/pulumi/engine.proto +113 -0
  47. data/pulumi/errors.proto +38 -0
  48. data/pulumi/events.proto +39 -0
  49. data/pulumi/language.proto +653 -0
  50. data/pulumi/plugin.proto +66 -0
  51. data/pulumi/provider.proto +1227 -0
  52. data/pulumi/resource.proto +394 -0
  53. data/pulumi/resource_status.proto +172 -0
  54. data/pulumi/source.proto +36 -0
  55. data/pulumi/testing/language.proto +106 -0
  56. data/sig/pulumi/language/ruby.rbs +8 -0
  57. metadata +125 -0
@@ -0,0 +1,94 @@
1
+ // Copyright 2016-2023, Pulumi Corporation.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ import "pulumi/codegen/hcl.proto";
18
+
19
+ package pulumirpc;
20
+
21
+ option go_package = "github.com/pulumi/pulumi/sdk/v3/proto/go;pulumirpc";
22
+
23
+ // Converter is a service for converting between other ecosystems and Pulumi.
24
+ // This is currently unstable and experimental.
25
+ service Converter {
26
+ // ConvertState converts state from the target ecosystem into a form that can be imported into Pulumi.
27
+ rpc ConvertState(ConvertStateRequest) returns (ConvertStateResponse) {}
28
+
29
+ // ConvertProgram converts a program from the target ecosystem into a form that can be used with Pulumi.
30
+ rpc ConvertProgram(ConvertProgramRequest) returns (ConvertProgramResponse) {}
31
+ }
32
+
33
+ message ConvertStateRequest {
34
+ // the gRPC target of the mapper service.
35
+ string mapper_target = 1;
36
+ // the args passed to `pulumi import` for this conversion. Normally used to specifiy a state file to
37
+ // import from.
38
+ repeated string args = 2;
39
+ }
40
+
41
+ // A ResourceImport specifies a resource to import.
42
+ message ResourceImport {
43
+ // the type token for the resource.
44
+ string type = 1;
45
+ // the name of the resource.
46
+ string name = 2;
47
+ // the ID of the resource.
48
+ string id = 3;
49
+
50
+ // the provider version to use for the resource, if any.
51
+ string version = 4;
52
+ // the provider PluginDownloadURL to use for the resource, if any.
53
+ string pluginDownloadURL = 5;
54
+
55
+ // the logical name of the resource.
56
+ string logical_name = 6;
57
+
58
+ // true if this is a component resource.
59
+ bool is_component = 7;
60
+ // true if this is a remote resource. Ignored if is_component is false.
61
+ bool is_remote = 8;
62
+ }
63
+
64
+ message ConvertStateResponse {
65
+
66
+ // a list of resources to import.
67
+ repeated ResourceImport resources = 1;
68
+
69
+ // any diagnostics from state conversion.
70
+ repeated pulumirpc.codegen.Diagnostic diagnostics = 2;
71
+ }
72
+
73
+ message ConvertProgramRequest {
74
+ // the source directory containing the program to convert from.
75
+ string source_directory = 1;
76
+ // a target directory to write the resulting PCL code and project file to.
77
+ string target_directory = 2;
78
+ // the gRPC target of the mapper service.
79
+ string mapper_target = 3;
80
+ // The target of a codegen.LoaderServer to use for loading schemas.
81
+ string loader_target = 4;
82
+ // the args passed to `pulumi convert` for this conversion. Normally used to specifiy a root file, or conversion options.
83
+ repeated string args = 5;
84
+ // the directory where the final generated project for the eventual destination language will be written.
85
+ // use to determine relative paths of any asset that will be copied over.
86
+ // Do not write files to this directory as these files might be overwritten in
87
+ // the project generation process.
88
+ string generated_project_directory = 6;
89
+ }
90
+
91
+ message ConvertProgramResponse {
92
+ // any diagnostics from code generation.
93
+ repeated pulumirpc.codegen.Diagnostic diagnostics = 1;
94
+ }
@@ -0,0 +1,113 @@
1
+ // Copyright 2016-2026, Pulumi Corporation.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ import "google/protobuf/empty.proto";
18
+ import "google/protobuf/struct.proto";
19
+
20
+ package pulumirpc;
21
+
22
+ option go_package = "github.com/pulumi/pulumi/sdk/v3/proto/go;pulumirpc";
23
+
24
+ // Engine is an auxiliary service offered to language and resource provider plugins. Its main purpose today is
25
+ // to serve as a common logging endpoint, but it also serves as a state storage mechanism for language hosts
26
+ // that can't store their own global state.
27
+ service Engine {
28
+ // Log logs a global message in the engine, including errors and warnings.
29
+ rpc Log(LogRequest) returns (google.protobuf.Empty) {}
30
+
31
+ // GetRootResource gets the URN of the root resource, the resource that should be the root of all
32
+ // otherwise-unparented resources.
33
+ rpc GetRootResource(GetRootResourceRequest) returns (GetRootResourceResponse) {}
34
+
35
+ // SetRootResource sets the URN of the root resource.
36
+ rpc SetRootResource(SetRootResourceRequest) returns (SetRootResourceResponse) {}
37
+
38
+ // StartDebugging indicates to the engine that the program has started under a debugger, and the engine
39
+ // should notify the user of how to connect to the debugger.
40
+ rpc StartDebugging(StartDebuggingRequest) returns (google.protobuf.Empty) {}
41
+
42
+ // RequirePulumiVersion checks that the version of the engine satisfies the passed in range.
43
+ rpc RequirePulumiVersion(RequirePulumiVersionRequest) returns (RequirePulumiVersionResponse) {}
44
+ }
45
+
46
+ // LogSeverity is the severity level of a log message. Errors are fatal; all others are informational.
47
+ enum LogSeverity {
48
+ DEBUG = 0; // a debug-level message not displayed to end-users (the default).
49
+ INFO = 1; // an informational message printed to output during resource operations.
50
+ WARNING = 2; // a warning to indicate that something went wrong.
51
+ ERROR = 3; // a fatal error indicating that the tool should stop processing subsequent resource operations.
52
+ }
53
+
54
+ message LogRequest {
55
+ // the logging level of this message.
56
+ LogSeverity severity = 1;
57
+
58
+ // the contents of the logged message.
59
+ string message = 2;
60
+
61
+ // the (optional) resource urn this log is associated with.
62
+ string urn = 3;
63
+
64
+ // the (optional) stream id that a stream of log messages can be associated with. This allows
65
+ // clients to not have to buffer a large set of log messages that they all want to be
66
+ // conceptually connected. Instead the messages can be sent as chunks (with the same stream id)
67
+ // and the end display can show the messages as they arrive, while still stitching them together
68
+ // into one total log message.
69
+ //
70
+ // 0/not-given means: do not associate with any stream.
71
+ int32 streamId = 4;
72
+
73
+ // Optional value indicating whether this is a status message.
74
+ bool ephemeral = 5;
75
+ }
76
+
77
+ message GetRootResourceRequest {
78
+ // empty.
79
+ }
80
+
81
+ message GetRootResourceResponse {
82
+ // the URN of the root resource, or the empty string if one was not set.
83
+ string urn = 1;
84
+ }
85
+
86
+ message SetRootResourceRequest {
87
+ // the URN of the root resource, or the empty string.
88
+ string urn = 1;
89
+ }
90
+
91
+ message SetRootResourceResponse {
92
+ // empty.
93
+ }
94
+
95
+ message StartDebuggingRequest {
96
+ // the debug configuration parameters. These are meant to be in the right format for the DAP protocol to consume.
97
+ google.protobuf.Struct config = 1;
98
+ // the string to display to the user with instructions on how to connect to the debugger.
99
+ string message = 2;
100
+ }
101
+
102
+ message RequirePulumiVersionRequest {
103
+ // A version range to check against the engine (CLI) version. If the version is not compatible with the specified
104
+ // range, an error is returned. The supported syntax for ranges is that of
105
+ // https://pkg.go.dev/github.com/blang/semver#ParseRange. For example ">=3.0.0", or "!3.1.2". Ranges can be AND-ed
106
+ // 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.
107
+ // 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.
108
+ string pulumi_version_range = 1;
109
+ }
110
+
111
+ message RequirePulumiVersionResponse {
112
+ // empty
113
+ }
@@ -0,0 +1,38 @@
1
+ // Copyright 2016-2018, Pulumi Corporation.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package pulumirpc;
18
+
19
+ option go_package = "github.com/pulumi/pulumi/sdk/v3/proto/go;pulumirpc";
20
+
21
+ message ErrorCause {
22
+ string message = 1;
23
+ string stackTrace = 2;
24
+ }
25
+
26
+ // An error that can be returned from a component provider and includes details of the
27
+ // error, which can be multiple properties.
28
+ message InputPropertiesError {
29
+ // A single invalid input property.
30
+ message PropertyError {
31
+ // The path to the property that is invalid.
32
+ string property_path = 1;
33
+ // The reason the property is invalid.
34
+ string reason = 2;
35
+ }
36
+ // The list of invalid input properties.
37
+ repeated PropertyError errors = 1;
38
+ }
@@ -0,0 +1,39 @@
1
+ // Copyright 2025, Pulumi Corporation.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ import "google/protobuf/empty.proto";
18
+
19
+ package pulumirpc;
20
+
21
+ option go_package = "github.com/pulumi/pulumi/sdk/v3/proto/go;pulumirpc";
22
+
23
+ // Events is a service for receiving engine events over gRPC.
24
+ // This service allows the Pulumi CLI to send engine events to clients
25
+ // (such as the Automation API) over a gRPC stream instead of writing them to
26
+ // a file on the filesystem and reading them from there.
27
+ service Events {
28
+ // StreamEvents allows the client to stream multiple engine events to the server.
29
+ // The client sends multiple EventRequest messages over the stream, and the server
30
+ // processes them as they arrive. When the client is done sending events, it closes
31
+ // the stream.
32
+ rpc StreamEvents(stream EventRequest) returns (google.protobuf.Empty) {}
33
+ }
34
+
35
+ // EventRequest contains a single engine event.
36
+ message EventRequest {
37
+ // event is a JSON-encoded string containing the engine event data.
38
+ string event = 1;
39
+ }