diff --git a/plugin/external/proto/iac.pb.go b/plugin/external/proto/iac.pb.go new file mode 100644 index 00000000..cb581c71 --- /dev/null +++ b/plugin/external/proto/iac.pb.go @@ -0,0 +1,5147 @@ +// iac.proto — typed gRPC contract for IaCProvider + ResourceDriver plugins. +// +// Design: docs/plans/2026-05-10-strict-contracts-force-cutover-design.md +// Plan: docs/plans/2026-05-10-strict-contracts-force-cutover.md (Task 3) +// +// Hard invariants (per cycle 4 §Acceptance criteria): +// - NO google.protobuf.Struct, NO google.protobuf.Any used in any message. +// - Free-form per-resource Config / Outputs payloads cross the wire as +// bytes _json, JSON-encoded by the plugin/host. The plugin owns +// the serialization shape; the proto layer carries opaque bytes. +// - ResourceOutput.sensitive uses typed map (NOT structpb). +// - REQUIRED service: every method must be implemented by every plugin. +// Compile fails on the SDK type-assert if a method is missing. +// - OPTIONAL services: providers register only the services they support. +// Absence of registration IS the negative signal — no NotSupported flag. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc (unknown) +// source: iac.proto + +package proto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// DriftClass mirrors interfaces.DriftClass. +// +// Wire-stable enum (int32). Translation table to interfaces.DriftClass (string): +// +// DRIFT_CLASS_UNKNOWN ↔ "" (DriftClassUnknown zero value) +// DRIFT_CLASS_IN_SYNC ↔ "in-sync" +// DRIFT_CLASS_GHOST ↔ "ghost" +// DRIFT_CLASS_CONFIG ↔ "config" +// +// Plugin/host MUST translate at the marshal boundary; missed translation +// silently coerces all values to UNKNOWN. +type DriftClass int32 + +const ( + DriftClass_DRIFT_CLASS_UNKNOWN DriftClass = 0 + DriftClass_DRIFT_CLASS_IN_SYNC DriftClass = 1 + DriftClass_DRIFT_CLASS_GHOST DriftClass = 2 + DriftClass_DRIFT_CLASS_CONFIG DriftClass = 3 +) + +// Enum value maps for DriftClass. +var ( + DriftClass_name = map[int32]string{ + 0: "DRIFT_CLASS_UNKNOWN", + 1: "DRIFT_CLASS_IN_SYNC", + 2: "DRIFT_CLASS_GHOST", + 3: "DRIFT_CLASS_CONFIG", + } + DriftClass_value = map[string]int32{ + "DRIFT_CLASS_UNKNOWN": 0, + "DRIFT_CLASS_IN_SYNC": 1, + "DRIFT_CLASS_GHOST": 2, + "DRIFT_CLASS_CONFIG": 3, + } +) + +func (x DriftClass) Enum() *DriftClass { + p := new(DriftClass) + *p = x + return p +} + +func (x DriftClass) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DriftClass) Descriptor() protoreflect.EnumDescriptor { + return file_iac_proto_enumTypes[0].Descriptor() +} + +func (DriftClass) Type() protoreflect.EnumType { + return &file_iac_proto_enumTypes[0] +} + +func (x DriftClass) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DriftClass.Descriptor instead. +func (DriftClass) EnumDescriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{0} +} + +// PlanDiagnosticSeverity mirrors interfaces.PlanDiagnosticSeverity. +// Wire ordering matches the Go iota: INFO=0, WARNING=1, ERROR=2. +type PlanDiagnosticSeverity int32 + +const ( + PlanDiagnosticSeverity_PLAN_DIAGNOSTIC_INFO PlanDiagnosticSeverity = 0 + PlanDiagnosticSeverity_PLAN_DIAGNOSTIC_WARNING PlanDiagnosticSeverity = 1 + PlanDiagnosticSeverity_PLAN_DIAGNOSTIC_ERROR PlanDiagnosticSeverity = 2 +) + +// Enum value maps for PlanDiagnosticSeverity. +var ( + PlanDiagnosticSeverity_name = map[int32]string{ + 0: "PLAN_DIAGNOSTIC_INFO", + 1: "PLAN_DIAGNOSTIC_WARNING", + 2: "PLAN_DIAGNOSTIC_ERROR", + } + PlanDiagnosticSeverity_value = map[string]int32{ + "PLAN_DIAGNOSTIC_INFO": 0, + "PLAN_DIAGNOSTIC_WARNING": 1, + "PLAN_DIAGNOSTIC_ERROR": 2, + } +) + +func (x PlanDiagnosticSeverity) Enum() *PlanDiagnosticSeverity { + p := new(PlanDiagnosticSeverity) + *p = x + return p +} + +func (x PlanDiagnosticSeverity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PlanDiagnosticSeverity) Descriptor() protoreflect.EnumDescriptor { + return file_iac_proto_enumTypes[1].Descriptor() +} + +func (PlanDiagnosticSeverity) Type() protoreflect.EnumType { + return &file_iac_proto_enumTypes[1] +} + +func (x PlanDiagnosticSeverity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PlanDiagnosticSeverity.Descriptor instead. +func (PlanDiagnosticSeverity) EnumDescriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{1} +} + +// ResourceSpec mirrors interfaces.ResourceSpec. +type ResourceSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + // config_json is a JSON-encoded map[string]any of provider-specific + // configuration. Plugins parse it with encoding/json. + ConfigJson []byte `protobuf:"bytes,3,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"` + Size string `protobuf:"bytes,4,opt,name=size,proto3" json:"size,omitempty"` // interfaces.Size string ("xs","s","m","l","xl") + Hints *ResourceHints `protobuf:"bytes,5,opt,name=hints,proto3" json:"hints,omitempty"` + DependsOn []string `protobuf:"bytes,6,rep,name=depends_on,json=dependsOn,proto3" json:"depends_on,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceSpec) Reset() { + *x = ResourceSpec{} + mi := &file_iac_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceSpec) ProtoMessage() {} + +func (x *ResourceSpec) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceSpec.ProtoReflect.Descriptor instead. +func (*ResourceSpec) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{0} +} + +func (x *ResourceSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceSpec) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ResourceSpec) GetConfigJson() []byte { + if x != nil { + return x.ConfigJson + } + return nil +} + +func (x *ResourceSpec) GetSize() string { + if x != nil { + return x.Size + } + return "" +} + +func (x *ResourceSpec) GetHints() *ResourceHints { + if x != nil { + return x.Hints + } + return nil +} + +func (x *ResourceSpec) GetDependsOn() []string { + if x != nil { + return x.DependsOn + } + return nil +} + +// ResourceRef mirrors interfaces.ResourceRef. +type ResourceRef struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + ProviderId string `protobuf:"bytes,3,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceRef) Reset() { + *x = ResourceRef{} + mi := &file_iac_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceRef) ProtoMessage() {} + +func (x *ResourceRef) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceRef.ProtoReflect.Descriptor instead. +func (*ResourceRef) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{1} +} + +func (x *ResourceRef) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceRef) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ResourceRef) GetProviderId() string { + if x != nil { + return x.ProviderId + } + return "" +} + +// ResourceHints mirrors interfaces.ResourceHints. +type ResourceHints struct { + state protoimpl.MessageState `protogen:"open.v1"` + Cpu string `protobuf:"bytes,1,opt,name=cpu,proto3" json:"cpu,omitempty"` + Memory string `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"` + Storage string `protobuf:"bytes,3,opt,name=storage,proto3" json:"storage,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceHints) Reset() { + *x = ResourceHints{} + mi := &file_iac_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceHints) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceHints) ProtoMessage() {} + +func (x *ResourceHints) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceHints.ProtoReflect.Descriptor instead. +func (*ResourceHints) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{2} +} + +func (x *ResourceHints) GetCpu() string { + if x != nil { + return x.Cpu + } + return "" +} + +func (x *ResourceHints) GetMemory() string { + if x != nil { + return x.Memory + } + return "" +} + +func (x *ResourceHints) GetStorage() string { + if x != nil { + return x.Storage + } + return "" +} + +// ProviderSizing mirrors interfaces.ProviderSizing. +type ProviderSizing struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstanceType string `protobuf:"bytes,1,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"` + SpecsJson []byte `protobuf:"bytes,2,opt,name=specs_json,json=specsJson,proto3" json:"specs_json,omitempty"` // JSON-encoded map[string]any of provider-specific specs + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ProviderSizing) Reset() { + *x = ProviderSizing{} + mi := &file_iac_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ProviderSizing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProviderSizing) ProtoMessage() {} + +func (x *ProviderSizing) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProviderSizing.ProtoReflect.Descriptor instead. +func (*ProviderSizing) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{3} +} + +func (x *ProviderSizing) GetInstanceType() string { + if x != nil { + return x.InstanceType + } + return "" +} + +func (x *ProviderSizing) GetSpecsJson() []byte { + if x != nil { + return x.SpecsJson + } + return nil +} + +// IaCCapabilityDeclaration mirrors interfaces.IaCCapabilityDeclaration. +type IaCCapabilityDeclaration struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Tier int32 `protobuf:"varint,2,opt,name=tier,proto3" json:"tier,omitempty"` + Operations []string `protobuf:"bytes,3,rep,name=operations,proto3" json:"operations,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IaCCapabilityDeclaration) Reset() { + *x = IaCCapabilityDeclaration{} + mi := &file_iac_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IaCCapabilityDeclaration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IaCCapabilityDeclaration) ProtoMessage() {} + +func (x *IaCCapabilityDeclaration) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IaCCapabilityDeclaration.ProtoReflect.Descriptor instead. +func (*IaCCapabilityDeclaration) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{4} +} + +func (x *IaCCapabilityDeclaration) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *IaCCapabilityDeclaration) GetTier() int32 { + if x != nil { + return x.Tier + } + return 0 +} + +func (x *IaCCapabilityDeclaration) GetOperations() []string { + if x != nil { + return x.Operations + } + return nil +} + +// ResourceState mirrors interfaces.ResourceState. The on-disk JSON state +// file format is unchanged across the cutover (per design §State-file +// compat invariant); this proto carries the in-flight RPC representation. +type ResourceState struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Provider string `protobuf:"bytes,4,opt,name=provider,proto3" json:"provider,omitempty"` + ProviderRef string `protobuf:"bytes,5,opt,name=provider_ref,json=providerRef,proto3" json:"provider_ref,omitempty"` + ProviderId string `protobuf:"bytes,6,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"` + ConfigHash string `protobuf:"bytes,7,opt,name=config_hash,json=configHash,proto3" json:"config_hash,omitempty"` + // applied_config_json is the JSON-encoded map[string]any. + AppliedConfigJson []byte `protobuf:"bytes,8,opt,name=applied_config_json,json=appliedConfigJson,proto3" json:"applied_config_json,omitempty"` + // applied_config_source: "" | "apply" | "adoption" (provenance discriminator). + AppliedConfigSource string `protobuf:"bytes,9,opt,name=applied_config_source,json=appliedConfigSource,proto3" json:"applied_config_source,omitempty"` + // outputs_json is the JSON-encoded map[string]any. + OutputsJson []byte `protobuf:"bytes,10,opt,name=outputs_json,json=outputsJson,proto3" json:"outputs_json,omitempty"` + Dependencies []string `protobuf:"bytes,11,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + LastDriftCheck *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=last_drift_check,json=lastDriftCheck,proto3" json:"last_drift_check,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceState) Reset() { + *x = ResourceState{} + mi := &file_iac_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceState) ProtoMessage() {} + +func (x *ResourceState) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceState.ProtoReflect.Descriptor instead. +func (*ResourceState) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{5} +} + +func (x *ResourceState) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ResourceState) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceState) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ResourceState) GetProvider() string { + if x != nil { + return x.Provider + } + return "" +} + +func (x *ResourceState) GetProviderRef() string { + if x != nil { + return x.ProviderRef + } + return "" +} + +func (x *ResourceState) GetProviderId() string { + if x != nil { + return x.ProviderId + } + return "" +} + +func (x *ResourceState) GetConfigHash() string { + if x != nil { + return x.ConfigHash + } + return "" +} + +func (x *ResourceState) GetAppliedConfigJson() []byte { + if x != nil { + return x.AppliedConfigJson + } + return nil +} + +func (x *ResourceState) GetAppliedConfigSource() string { + if x != nil { + return x.AppliedConfigSource + } + return "" +} + +func (x *ResourceState) GetOutputsJson() []byte { + if x != nil { + return x.OutputsJson + } + return nil +} + +func (x *ResourceState) GetDependencies() []string { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *ResourceState) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *ResourceState) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *ResourceState) GetLastDriftCheck() *timestamppb.Timestamp { + if x != nil { + return x.LastDriftCheck + } + return nil +} + +// ResourceOutput mirrors interfaces.ResourceOutput. The sensitive map is +// typed map per the design — the structpb roundtrip that +// previously dropped this map silently is eliminated. +type ResourceOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + ProviderId string `protobuf:"bytes,3,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"` + // outputs_json is the JSON-encoded map[string]any of provider-emitted + // fields (IPs, endpoints, connection strings, etc.). + OutputsJson []byte `protobuf:"bytes,4,opt,name=outputs_json,json=outputsJson,proto3" json:"outputs_json,omitempty"` + Sensitive map[string]bool `protobuf:"bytes,5,rep,name=sensitive,proto3" json:"sensitive,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceOutput) Reset() { + *x = ResourceOutput{} + mi := &file_iac_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceOutput) ProtoMessage() {} + +func (x *ResourceOutput) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceOutput.ProtoReflect.Descriptor instead. +func (*ResourceOutput) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{6} +} + +func (x *ResourceOutput) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceOutput) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ResourceOutput) GetProviderId() string { + if x != nil { + return x.ProviderId + } + return "" +} + +func (x *ResourceOutput) GetOutputsJson() []byte { + if x != nil { + return x.OutputsJson + } + return nil +} + +func (x *ResourceOutput) GetSensitive() map[string]bool { + if x != nil { + return x.Sensitive + } + return nil +} + +func (x *ResourceOutput) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +// ResourceStatus mirrors interfaces.ResourceStatus. +type ResourceStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + ProviderId string `protobuf:"bytes,3,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` // running | stopped | degraded | unknown + OutputsJson []byte `protobuf:"bytes,5,opt,name=outputs_json,json=outputsJson,proto3" json:"outputs_json,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceStatus) Reset() { + *x = ResourceStatus{} + mi := &file_iac_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceStatus) ProtoMessage() {} + +func (x *ResourceStatus) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceStatus.ProtoReflect.Descriptor instead. +func (*ResourceStatus) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{7} +} + +func (x *ResourceStatus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ResourceStatus) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ResourceStatus) GetProviderId() string { + if x != nil { + return x.ProviderId + } + return "" +} + +func (x *ResourceStatus) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ResourceStatus) GetOutputsJson() []byte { + if x != nil { + return x.OutputsJson + } + return nil +} + +// FieldChange mirrors interfaces.FieldChange. +type FieldChange struct { + state protoimpl.MessageState `protogen:"open.v1"` + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + // old_json / new_json carry arbitrary scalar/map/list values JSON-encoded. + OldJson []byte `protobuf:"bytes,2,opt,name=old_json,json=oldJson,proto3" json:"old_json,omitempty"` + NewJson []byte `protobuf:"bytes,3,opt,name=new_json,json=newJson,proto3" json:"new_json,omitempty"` + ForceNew bool `protobuf:"varint,4,opt,name=force_new,json=forceNew,proto3" json:"force_new,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FieldChange) Reset() { + *x = FieldChange{} + mi := &file_iac_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FieldChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldChange) ProtoMessage() {} + +func (x *FieldChange) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldChange.ProtoReflect.Descriptor instead. +func (*FieldChange) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{8} +} + +func (x *FieldChange) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *FieldChange) GetOldJson() []byte { + if x != nil { + return x.OldJson + } + return nil +} + +func (x *FieldChange) GetNewJson() []byte { + if x != nil { + return x.NewJson + } + return nil +} + +func (x *FieldChange) GetForceNew() bool { + if x != nil { + return x.ForceNew + } + return false +} + +// DiffResult mirrors interfaces.DiffResult. +type DiffResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + NeedsUpdate bool `protobuf:"varint,1,opt,name=needs_update,json=needsUpdate,proto3" json:"needs_update,omitempty"` + NeedsReplace bool `protobuf:"varint,2,opt,name=needs_replace,json=needsReplace,proto3" json:"needs_replace,omitempty"` + Changes []*FieldChange `protobuf:"bytes,3,rep,name=changes,proto3" json:"changes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DiffResult) Reset() { + *x = DiffResult{} + mi := &file_iac_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DiffResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiffResult) ProtoMessage() {} + +func (x *DiffResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiffResult.ProtoReflect.Descriptor instead. +func (*DiffResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{9} +} + +func (x *DiffResult) GetNeedsUpdate() bool { + if x != nil { + return x.NeedsUpdate + } + return false +} + +func (x *DiffResult) GetNeedsReplace() bool { + if x != nil { + return x.NeedsReplace + } + return false +} + +func (x *DiffResult) GetChanges() []*FieldChange { + if x != nil { + return x.Changes + } + return nil +} + +// DriftResult mirrors interfaces.DriftResult. +type DriftResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Drifted bool `protobuf:"varint,3,opt,name=drifted,proto3" json:"drifted,omitempty"` + Class DriftClass `protobuf:"varint,4,opt,name=class,proto3,enum=workflow.plugin.external.iac.DriftClass" json:"class,omitempty"` + ExpectedJson []byte `protobuf:"bytes,5,opt,name=expected_json,json=expectedJson,proto3" json:"expected_json,omitempty"` // JSON-encoded map[string]any + ActualJson []byte `protobuf:"bytes,6,opt,name=actual_json,json=actualJson,proto3" json:"actual_json,omitempty"` // JSON-encoded map[string]any + Fields []string `protobuf:"bytes,7,rep,name=fields,proto3" json:"fields,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DriftResult) Reset() { + *x = DriftResult{} + mi := &file_iac_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DriftResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DriftResult) ProtoMessage() {} + +func (x *DriftResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DriftResult.ProtoReflect.Descriptor instead. +func (*DriftResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{10} +} + +func (x *DriftResult) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DriftResult) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *DriftResult) GetDrifted() bool { + if x != nil { + return x.Drifted + } + return false +} + +func (x *DriftResult) GetClass() DriftClass { + if x != nil { + return x.Class + } + return DriftClass_DRIFT_CLASS_UNKNOWN +} + +func (x *DriftResult) GetExpectedJson() []byte { + if x != nil { + return x.ExpectedJson + } + return nil +} + +func (x *DriftResult) GetActualJson() []byte { + if x != nil { + return x.ActualJson + } + return nil +} + +func (x *DriftResult) GetFields() []string { + if x != nil { + return x.Fields + } + return nil +} + +// DriftEntry mirrors interfaces.DriftEntry. +type DriftEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + PlanFingerprint string `protobuf:"bytes,2,opt,name=plan_fingerprint,json=planFingerprint,proto3" json:"plan_fingerprint,omitempty"` + ApplyFingerprint string `protobuf:"bytes,3,opt,name=apply_fingerprint,json=applyFingerprint,proto3" json:"apply_fingerprint,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DriftEntry) Reset() { + *x = DriftEntry{} + mi := &file_iac_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DriftEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DriftEntry) ProtoMessage() {} + +func (x *DriftEntry) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DriftEntry.ProtoReflect.Descriptor instead. +func (*DriftEntry) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{11} +} + +func (x *DriftEntry) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DriftEntry) GetPlanFingerprint() string { + if x != nil { + return x.PlanFingerprint + } + return "" +} + +func (x *DriftEntry) GetApplyFingerprint() string { + if x != nil { + return x.ApplyFingerprint + } + return "" +} + +// HealthResult mirrors interfaces.HealthResult. +type HealthResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HealthResult) Reset() { + *x = HealthResult{} + mi := &file_iac_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HealthResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthResult) ProtoMessage() {} + +func (x *HealthResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HealthResult.ProtoReflect.Descriptor instead. +func (*HealthResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{12} +} + +func (x *HealthResult) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *HealthResult) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// Diagnostic mirrors interfaces.Diagnostic (Troubleshooter type). +type Diagnostic struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Phase string `protobuf:"bytes,2,opt,name=phase,proto3" json:"phase,omitempty"` + Cause string `protobuf:"bytes,3,opt,name=cause,proto3" json:"cause,omitempty"` + At *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=at,proto3" json:"at,omitempty"` + Detail string `protobuf:"bytes,5,opt,name=detail,proto3" json:"detail,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Diagnostic) Reset() { + *x = Diagnostic{} + mi := &file_iac_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Diagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Diagnostic) ProtoMessage() {} + +func (x *Diagnostic) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Diagnostic.ProtoReflect.Descriptor instead. +func (*Diagnostic) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{13} +} + +func (x *Diagnostic) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Diagnostic) GetPhase() string { + if x != nil { + return x.Phase + } + return "" +} + +func (x *Diagnostic) GetCause() string { + if x != nil { + return x.Cause + } + return "" +} + +func (x *Diagnostic) GetAt() *timestamppb.Timestamp { + if x != nil { + return x.At + } + return nil +} + +func (x *Diagnostic) GetDetail() string { + if x != nil { + return x.Detail + } + return "" +} + +// PlanDiagnostic mirrors interfaces.PlanDiagnostic. +type PlanDiagnostic struct { + state protoimpl.MessageState `protogen:"open.v1"` + Severity PlanDiagnosticSeverity `protobuf:"varint,1,opt,name=severity,proto3,enum=workflow.plugin.external.iac.PlanDiagnosticSeverity" json:"severity,omitempty"` + Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + Field string `protobuf:"bytes,3,opt,name=field,proto3" json:"field,omitempty"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanDiagnostic) Reset() { + *x = PlanDiagnostic{} + mi := &file_iac_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanDiagnostic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanDiagnostic) ProtoMessage() {} + +func (x *PlanDiagnostic) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlanDiagnostic.ProtoReflect.Descriptor instead. +func (*PlanDiagnostic) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{14} +} + +func (x *PlanDiagnostic) GetSeverity() PlanDiagnosticSeverity { + if x != nil { + return x.Severity + } + return PlanDiagnosticSeverity_PLAN_DIAGNOSTIC_INFO +} + +func (x *PlanDiagnostic) GetResource() string { + if x != nil { + return x.Resource + } + return "" +} + +func (x *PlanDiagnostic) GetField() string { + if x != nil { + return x.Field + } + return "" +} + +func (x *PlanDiagnostic) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// PlanAction mirrors interfaces.PlanAction. +type PlanAction struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` // create | update | replace | delete + Resource *ResourceSpec `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + Current *ResourceState `protobuf:"bytes,3,opt,name=current,proto3" json:"current,omitempty"` + Changes []*FieldChange `protobuf:"bytes,4,rep,name=changes,proto3" json:"changes,omitempty"` + ResolvedConfigHash string `protobuf:"bytes,5,opt,name=resolved_config_hash,json=resolvedConfigHash,proto3" json:"resolved_config_hash,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanAction) Reset() { + *x = PlanAction{} + mi := &file_iac_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanAction) ProtoMessage() {} + +func (x *PlanAction) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlanAction.ProtoReflect.Descriptor instead. +func (*PlanAction) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{15} +} + +func (x *PlanAction) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *PlanAction) GetResource() *ResourceSpec { + if x != nil { + return x.Resource + } + return nil +} + +func (x *PlanAction) GetCurrent() *ResourceState { + if x != nil { + return x.Current + } + return nil +} + +func (x *PlanAction) GetChanges() []*FieldChange { + if x != nil { + return x.Changes + } + return nil +} + +func (x *PlanAction) GetResolvedConfigHash() string { + if x != nil { + return x.ResolvedConfigHash + } + return "" +} + +// IaCPlan mirrors interfaces.IaCPlan. +type IaCPlan struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Actions []*PlanAction `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + DesiredHash string `protobuf:"bytes,4,opt,name=desired_hash,json=desiredHash,proto3" json:"desired_hash,omitempty"` + SchemaVersion int32 `protobuf:"varint,5,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"` + InputSnapshot map[string]string `protobuf:"bytes,6,rep,name=input_snapshot,json=inputSnapshot,proto3" json:"input_snapshot,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IaCPlan) Reset() { + *x = IaCPlan{} + mi := &file_iac_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IaCPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IaCPlan) ProtoMessage() {} + +func (x *IaCPlan) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IaCPlan.ProtoReflect.Descriptor instead. +func (*IaCPlan) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{16} +} + +func (x *IaCPlan) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *IaCPlan) GetActions() []*PlanAction { + if x != nil { + return x.Actions + } + return nil +} + +func (x *IaCPlan) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *IaCPlan) GetDesiredHash() string { + if x != nil { + return x.DesiredHash + } + return "" +} + +func (x *IaCPlan) GetSchemaVersion() int32 { + if x != nil { + return x.SchemaVersion + } + return 0 +} + +func (x *IaCPlan) GetInputSnapshot() map[string]string { + if x != nil { + return x.InputSnapshot + } + return nil +} + +// ActionError mirrors interfaces.ActionError. +type ActionError struct { + state protoimpl.MessageState `protogen:"open.v1"` + Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` + Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"` + Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ActionError) Reset() { + *x = ActionError{} + mi := &file_iac_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ActionError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionError) ProtoMessage() {} + +func (x *ActionError) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ActionError.ProtoReflect.Descriptor instead. +func (*ActionError) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{17} +} + +func (x *ActionError) GetResource() string { + if x != nil { + return x.Resource + } + return "" +} + +func (x *ActionError) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (x *ActionError) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +// ApplyResult mirrors interfaces.ApplyResult. +type ApplyResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + PlanId string `protobuf:"bytes,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` + Resources []*ResourceOutput `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"` + Errors []*ActionError `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + InitialInputSnapshot map[string]string `protobuf:"bytes,4,rep,name=initial_input_snapshot,json=initialInputSnapshot,proto3" json:"initial_input_snapshot,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + InputDriftReport []*DriftEntry `protobuf:"bytes,5,rep,name=input_drift_report,json=inputDriftReport,proto3" json:"input_drift_report,omitempty"` + ReplaceIdMap map[string]string `protobuf:"bytes,6,rep,name=replace_id_map,json=replaceIdMap,proto3" json:"replace_id_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ApplyResult) Reset() { + *x = ApplyResult{} + mi := &file_iac_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ApplyResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyResult) ProtoMessage() {} + +func (x *ApplyResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplyResult.ProtoReflect.Descriptor instead. +func (*ApplyResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{18} +} + +func (x *ApplyResult) GetPlanId() string { + if x != nil { + return x.PlanId + } + return "" +} + +func (x *ApplyResult) GetResources() []*ResourceOutput { + if x != nil { + return x.Resources + } + return nil +} + +func (x *ApplyResult) GetErrors() []*ActionError { + if x != nil { + return x.Errors + } + return nil +} + +func (x *ApplyResult) GetInitialInputSnapshot() map[string]string { + if x != nil { + return x.InitialInputSnapshot + } + return nil +} + +func (x *ApplyResult) GetInputDriftReport() []*DriftEntry { + if x != nil { + return x.InputDriftReport + } + return nil +} + +func (x *ApplyResult) GetReplaceIdMap() map[string]string { + if x != nil { + return x.ReplaceIdMap + } + return nil +} + +// DestroyResult mirrors interfaces.DestroyResult. +type DestroyResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Destroyed []string `protobuf:"bytes,1,rep,name=destroyed,proto3" json:"destroyed,omitempty"` + Errors []*ActionError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DestroyResult) Reset() { + *x = DestroyResult{} + mi := &file_iac_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DestroyResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyResult) ProtoMessage() {} + +func (x *DestroyResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyResult.ProtoReflect.Descriptor instead. +func (*DestroyResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{19} +} + +func (x *DestroyResult) GetDestroyed() []string { + if x != nil { + return x.Destroyed + } + return nil +} + +func (x *DestroyResult) GetErrors() []*ActionError { + if x != nil { + return x.Errors + } + return nil +} + +// BootstrapResult mirrors interfaces.BootstrapResult. +type BootstrapResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` + Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` + Endpoint string `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + EnvVars map[string]string `protobuf:"bytes,4,rep,name=env_vars,json=envVars,proto3" json:"env_vars,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BootstrapResult) Reset() { + *x = BootstrapResult{} + mi := &file_iac_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BootstrapResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BootstrapResult) ProtoMessage() {} + +func (x *BootstrapResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BootstrapResult.ProtoReflect.Descriptor instead. +func (*BootstrapResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{20} +} + +func (x *BootstrapResult) GetBucket() string { + if x != nil { + return x.Bucket + } + return "" +} + +func (x *BootstrapResult) GetRegion() string { + if x != nil { + return x.Region + } + return "" +} + +func (x *BootstrapResult) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *BootstrapResult) GetEnvVars() map[string]string { + if x != nil { + return x.EnvVars + } + return nil +} + +// MigrationRepairRequest mirrors interfaces.MigrationRepairRequest. +type MigrationRepairRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + AppResourceName string `protobuf:"bytes,1,opt,name=app_resource_name,json=appResourceName,proto3" json:"app_resource_name,omitempty"` + DatabaseResourceName string `protobuf:"bytes,2,opt,name=database_resource_name,json=databaseResourceName,proto3" json:"database_resource_name,omitempty"` + JobImage string `protobuf:"bytes,3,opt,name=job_image,json=jobImage,proto3" json:"job_image,omitempty"` + SourceDir string `protobuf:"bytes,4,opt,name=source_dir,json=sourceDir,proto3" json:"source_dir,omitempty"` + ExpectedDirtyVersion string `protobuf:"bytes,5,opt,name=expected_dirty_version,json=expectedDirtyVersion,proto3" json:"expected_dirty_version,omitempty"` + ForceVersion string `protobuf:"bytes,6,opt,name=force_version,json=forceVersion,proto3" json:"force_version,omitempty"` + ThenUp bool `protobuf:"varint,7,opt,name=then_up,json=thenUp,proto3" json:"then_up,omitempty"` + UpIfClean bool `protobuf:"varint,8,opt,name=up_if_clean,json=upIfClean,proto3" json:"up_if_clean,omitempty"` + // confirm_force MUST equal interfaces.MigrationRepairConfirmation + // ("FORCE_MIGRATION_METADATA"); the plugin re-validates server-side. + ConfirmForce string `protobuf:"bytes,9,opt,name=confirm_force,json=confirmForce,proto3" json:"confirm_force,omitempty"` + Env map[string]string `protobuf:"bytes,10,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + TimeoutSeconds int32 `protobuf:"varint,11,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MigrationRepairRequest) Reset() { + *x = MigrationRepairRequest{} + mi := &file_iac_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MigrationRepairRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MigrationRepairRequest) ProtoMessage() {} + +func (x *MigrationRepairRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MigrationRepairRequest.ProtoReflect.Descriptor instead. +func (*MigrationRepairRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{21} +} + +func (x *MigrationRepairRequest) GetAppResourceName() string { + if x != nil { + return x.AppResourceName + } + return "" +} + +func (x *MigrationRepairRequest) GetDatabaseResourceName() string { + if x != nil { + return x.DatabaseResourceName + } + return "" +} + +func (x *MigrationRepairRequest) GetJobImage() string { + if x != nil { + return x.JobImage + } + return "" +} + +func (x *MigrationRepairRequest) GetSourceDir() string { + if x != nil { + return x.SourceDir + } + return "" +} + +func (x *MigrationRepairRequest) GetExpectedDirtyVersion() string { + if x != nil { + return x.ExpectedDirtyVersion + } + return "" +} + +func (x *MigrationRepairRequest) GetForceVersion() string { + if x != nil { + return x.ForceVersion + } + return "" +} + +func (x *MigrationRepairRequest) GetThenUp() bool { + if x != nil { + return x.ThenUp + } + return false +} + +func (x *MigrationRepairRequest) GetUpIfClean() bool { + if x != nil { + return x.UpIfClean + } + return false +} + +func (x *MigrationRepairRequest) GetConfirmForce() string { + if x != nil { + return x.ConfirmForce + } + return "" +} + +func (x *MigrationRepairRequest) GetEnv() map[string]string { + if x != nil { + return x.Env + } + return nil +} + +func (x *MigrationRepairRequest) GetTimeoutSeconds() int32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + +// MigrationRepairResult mirrors interfaces.MigrationRepairResult. +type MigrationRepairResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + ProviderJobId string `protobuf:"bytes,1,opt,name=provider_job_id,json=providerJobId,proto3" json:"provider_job_id,omitempty"` + // status is one of MigrationRepairStatusSucceeded / Failed / + // ApprovalRequired / Unsupported (interfaces/migration_repair.go). + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Applied []string `protobuf:"bytes,3,rep,name=applied,proto3" json:"applied,omitempty"` + Logs string `protobuf:"bytes,4,opt,name=logs,proto3" json:"logs,omitempty"` + Diagnostics []*Diagnostic `protobuf:"bytes,5,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MigrationRepairResult) Reset() { + *x = MigrationRepairResult{} + mi := &file_iac_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MigrationRepairResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MigrationRepairResult) ProtoMessage() {} + +func (x *MigrationRepairResult) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MigrationRepairResult.ProtoReflect.Descriptor instead. +func (*MigrationRepairResult) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{22} +} + +func (x *MigrationRepairResult) GetProviderJobId() string { + if x != nil { + return x.ProviderJobId + } + return "" +} + +func (x *MigrationRepairResult) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *MigrationRepairResult) GetApplied() []string { + if x != nil { + return x.Applied + } + return nil +} + +func (x *MigrationRepairResult) GetLogs() string { + if x != nil { + return x.Logs + } + return "" +} + +func (x *MigrationRepairResult) GetDiagnostics() []*Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +type InitializeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // config_json is the JSON-encoded provider-config map[string]any. + ConfigJson []byte `protobuf:"bytes,1,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InitializeRequest) Reset() { + *x = InitializeRequest{} + mi := &file_iac_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InitializeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitializeRequest) ProtoMessage() {} + +func (x *InitializeRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitializeRequest.ProtoReflect.Descriptor instead. +func (*InitializeRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{23} +} + +func (x *InitializeRequest) GetConfigJson() []byte { + if x != nil { + return x.ConfigJson + } + return nil +} + +type InitializeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InitializeResponse) Reset() { + *x = InitializeResponse{} + mi := &file_iac_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InitializeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitializeResponse) ProtoMessage() {} + +func (x *InitializeResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InitializeResponse.ProtoReflect.Descriptor instead. +func (*InitializeResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{24} +} + +type NameRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NameRequest) Reset() { + *x = NameRequest{} + mi := &file_iac_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NameRequest) ProtoMessage() {} + +func (x *NameRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NameRequest.ProtoReflect.Descriptor instead. +func (*NameRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{25} +} + +type NameResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NameResponse) Reset() { + *x = NameResponse{} + mi := &file_iac_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NameResponse) ProtoMessage() {} + +func (x *NameResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NameResponse.ProtoReflect.Descriptor instead. +func (*NameResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{26} +} + +func (x *NameResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type VersionRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VersionRequest) Reset() { + *x = VersionRequest{} + mi := &file_iac_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionRequest) ProtoMessage() {} + +func (x *VersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead. +func (*VersionRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{27} +} + +type VersionResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VersionResponse) Reset() { + *x = VersionResponse{} + mi := &file_iac_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VersionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionResponse) ProtoMessage() {} + +func (x *VersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VersionResponse.ProtoReflect.Descriptor instead. +func (*VersionResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{28} +} + +func (x *VersionResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type CapabilitiesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CapabilitiesRequest) Reset() { + *x = CapabilitiesRequest{} + mi := &file_iac_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CapabilitiesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CapabilitiesRequest) ProtoMessage() {} + +func (x *CapabilitiesRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CapabilitiesRequest.ProtoReflect.Descriptor instead. +func (*CapabilitiesRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{29} +} + +type CapabilitiesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Capabilities []*IaCCapabilityDeclaration `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CapabilitiesResponse) Reset() { + *x = CapabilitiesResponse{} + mi := &file_iac_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CapabilitiesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CapabilitiesResponse) ProtoMessage() {} + +func (x *CapabilitiesResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CapabilitiesResponse.ProtoReflect.Descriptor instead. +func (*CapabilitiesResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{30} +} + +func (x *CapabilitiesResponse) GetCapabilities() []*IaCCapabilityDeclaration { + if x != nil { + return x.Capabilities + } + return nil +} + +type PlanRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Desired []*ResourceSpec `protobuf:"bytes,1,rep,name=desired,proto3" json:"desired,omitempty"` + Current []*ResourceState `protobuf:"bytes,2,rep,name=current,proto3" json:"current,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanRequest) Reset() { + *x = PlanRequest{} + mi := &file_iac_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanRequest) ProtoMessage() {} + +func (x *PlanRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlanRequest.ProtoReflect.Descriptor instead. +func (*PlanRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{31} +} + +func (x *PlanRequest) GetDesired() []*ResourceSpec { + if x != nil { + return x.Desired + } + return nil +} + +func (x *PlanRequest) GetCurrent() []*ResourceState { + if x != nil { + return x.Current + } + return nil +} + +type PlanResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Plan *IaCPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PlanResponse) Reset() { + *x = PlanResponse{} + mi := &file_iac_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PlanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlanResponse) ProtoMessage() {} + +func (x *PlanResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PlanResponse.ProtoReflect.Descriptor instead. +func (*PlanResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{32} +} + +func (x *PlanResponse) GetPlan() *IaCPlan { + if x != nil { + return x.Plan + } + return nil +} + +type ApplyRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Plan *IaCPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ApplyRequest) Reset() { + *x = ApplyRequest{} + mi := &file_iac_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ApplyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyRequest) ProtoMessage() {} + +func (x *ApplyRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplyRequest.ProtoReflect.Descriptor instead. +func (*ApplyRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{33} +} + +func (x *ApplyRequest) GetPlan() *IaCPlan { + if x != nil { + return x.Plan + } + return nil +} + +type ApplyResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *ApplyResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ApplyResponse) Reset() { + *x = ApplyResponse{} + mi := &file_iac_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ApplyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplyResponse) ProtoMessage() {} + +func (x *ApplyResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[34] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApplyResponse.ProtoReflect.Descriptor instead. +func (*ApplyResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{34} +} + +func (x *ApplyResponse) GetResult() *ApplyResult { + if x != nil { + return x.Result + } + return nil +} + +type DestroyRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DestroyRequest) Reset() { + *x = DestroyRequest{} + mi := &file_iac_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DestroyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyRequest) ProtoMessage() {} + +func (x *DestroyRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyRequest.ProtoReflect.Descriptor instead. +func (*DestroyRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{35} +} + +func (x *DestroyRequest) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +type DestroyResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *DestroyResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DestroyResponse) Reset() { + *x = DestroyResponse{} + mi := &file_iac_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DestroyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyResponse) ProtoMessage() {} + +func (x *DestroyResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyResponse.ProtoReflect.Descriptor instead. +func (*DestroyResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{36} +} + +func (x *DestroyResponse) GetResult() *DestroyResult { + if x != nil { + return x.Result + } + return nil +} + +type StatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatusRequest) Reset() { + *x = StatusRequest{} + mi := &file_iac_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusRequest) ProtoMessage() {} + +func (x *StatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. +func (*StatusRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{37} +} + +func (x *StatusRequest) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +type StatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Statuses []*ResourceStatus `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatusResponse) Reset() { + *x = StatusResponse{} + mi := &file_iac_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusResponse) ProtoMessage() {} + +func (x *StatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. +func (*StatusResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{38} +} + +func (x *StatusResponse) GetStatuses() []*ResourceStatus { + if x != nil { + return x.Statuses + } + return nil +} + +type ImportRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ProviderId string `protobuf:"bytes,1,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"` + ResourceType string `protobuf:"bytes,2,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImportRequest) Reset() { + *x = ImportRequest{} + mi := &file_iac_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportRequest) ProtoMessage() {} + +func (x *ImportRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[39] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportRequest.ProtoReflect.Descriptor instead. +func (*ImportRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{39} +} + +func (x *ImportRequest) GetProviderId() string { + if x != nil { + return x.ProviderId + } + return "" +} + +func (x *ImportRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +type ImportResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + State *ResourceState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImportResponse) Reset() { + *x = ImportResponse{} + mi := &file_iac_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImportResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportResponse) ProtoMessage() {} + +func (x *ImportResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[40] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportResponse.ProtoReflect.Descriptor instead. +func (*ImportResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{40} +} + +func (x *ImportResponse) GetState() *ResourceState { + if x != nil { + return x.State + } + return nil +} + +type ResolveSizingRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Size string `protobuf:"bytes,2,opt,name=size,proto3" json:"size,omitempty"` // interfaces.Size string + Hints *ResourceHints `protobuf:"bytes,3,opt,name=hints,proto3" json:"hints,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResolveSizingRequest) Reset() { + *x = ResolveSizingRequest{} + mi := &file_iac_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResolveSizingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveSizingRequest) ProtoMessage() {} + +func (x *ResolveSizingRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[41] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResolveSizingRequest.ProtoReflect.Descriptor instead. +func (*ResolveSizingRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{41} +} + +func (x *ResolveSizingRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResolveSizingRequest) GetSize() string { + if x != nil { + return x.Size + } + return "" +} + +func (x *ResolveSizingRequest) GetHints() *ResourceHints { + if x != nil { + return x.Hints + } + return nil +} + +type ResolveSizingResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Sizing *ProviderSizing `protobuf:"bytes,1,opt,name=sizing,proto3" json:"sizing,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResolveSizingResponse) Reset() { + *x = ResolveSizingResponse{} + mi := &file_iac_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResolveSizingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveSizingResponse) ProtoMessage() {} + +func (x *ResolveSizingResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[42] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResolveSizingResponse.ProtoReflect.Descriptor instead. +func (*ResolveSizingResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{42} +} + +func (x *ResolveSizingResponse) GetSizing() *ProviderSizing { + if x != nil { + return x.Sizing + } + return nil +} + +type BootstrapStateBackendRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // config_json is the JSON-encoded iac.state module config map[string]any. + ConfigJson []byte `protobuf:"bytes,1,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BootstrapStateBackendRequest) Reset() { + *x = BootstrapStateBackendRequest{} + mi := &file_iac_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BootstrapStateBackendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BootstrapStateBackendRequest) ProtoMessage() {} + +func (x *BootstrapStateBackendRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[43] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BootstrapStateBackendRequest.ProtoReflect.Descriptor instead. +func (*BootstrapStateBackendRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{43} +} + +func (x *BootstrapStateBackendRequest) GetConfigJson() []byte { + if x != nil { + return x.ConfigJson + } + return nil +} + +type BootstrapStateBackendResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *BootstrapResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BootstrapStateBackendResponse) Reset() { + *x = BootstrapStateBackendResponse{} + mi := &file_iac_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BootstrapStateBackendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BootstrapStateBackendResponse) ProtoMessage() {} + +func (x *BootstrapStateBackendResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[44] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BootstrapStateBackendResponse.ProtoReflect.Descriptor instead. +func (*BootstrapStateBackendResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{44} +} + +func (x *BootstrapStateBackendResponse) GetResult() *BootstrapResult { + if x != nil { + return x.Result + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderEnumerator messages. +// ───────────────────────────────────────────────────────────────────────────── +type EnumerateAllRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnumerateAllRequest) Reset() { + *x = EnumerateAllRequest{} + mi := &file_iac_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnumerateAllRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumerateAllRequest) ProtoMessage() {} + +func (x *EnumerateAllRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[45] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumerateAllRequest.ProtoReflect.Descriptor instead. +func (*EnumerateAllRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{45} +} + +func (x *EnumerateAllRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +type EnumerateAllResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Outputs []*ResourceOutput `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnumerateAllResponse) Reset() { + *x = EnumerateAllResponse{} + mi := &file_iac_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnumerateAllResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumerateAllResponse) ProtoMessage() {} + +func (x *EnumerateAllResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[46] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumerateAllResponse.ProtoReflect.Descriptor instead. +func (*EnumerateAllResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{46} +} + +func (x *EnumerateAllResponse) GetOutputs() []*ResourceOutput { + if x != nil { + return x.Outputs + } + return nil +} + +type EnumerateByTagRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnumerateByTagRequest) Reset() { + *x = EnumerateByTagRequest{} + mi := &file_iac_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnumerateByTagRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumerateByTagRequest) ProtoMessage() {} + +func (x *EnumerateByTagRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[47] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumerateByTagRequest.ProtoReflect.Descriptor instead. +func (*EnumerateByTagRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{47} +} + +func (x *EnumerateByTagRequest) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +type EnumerateByTagResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnumerateByTagResponse) Reset() { + *x = EnumerateByTagResponse{} + mi := &file_iac_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnumerateByTagResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumerateByTagResponse) ProtoMessage() {} + +func (x *EnumerateByTagResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[48] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumerateByTagResponse.ProtoReflect.Descriptor instead. +func (*EnumerateByTagResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{48} +} + +func (x *EnumerateByTagResponse) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderDriftDetector messages. +// ───────────────────────────────────────────────────────────────────────────── +type DetectDriftRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftRequest) Reset() { + *x = DetectDriftRequest{} + mi := &file_iac_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftRequest) ProtoMessage() {} + +func (x *DetectDriftRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[49] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftRequest.ProtoReflect.Descriptor instead. +func (*DetectDriftRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{49} +} + +func (x *DetectDriftRequest) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +type DetectDriftResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Drifts []*DriftResult `protobuf:"bytes,1,rep,name=drifts,proto3" json:"drifts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftResponse) Reset() { + *x = DetectDriftResponse{} + mi := &file_iac_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftResponse) ProtoMessage() {} + +func (x *DetectDriftResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[50] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftResponse.ProtoReflect.Descriptor instead. +func (*DetectDriftResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{50} +} + +func (x *DetectDriftResponse) GetDrifts() []*DriftResult { + if x != nil { + return x.Drifts + } + return nil +} + +type DetectDriftWithSpecsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + // specs is keyed by ResourceRef.Name (matches ResourceState.Name) per the + // Go DriftConfigDetector.DetectDriftWithSpecs contract. + Specs map[string]*ResourceSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftWithSpecsRequest) Reset() { + *x = DetectDriftWithSpecsRequest{} + mi := &file_iac_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftWithSpecsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftWithSpecsRequest) ProtoMessage() {} + +func (x *DetectDriftWithSpecsRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[51] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftWithSpecsRequest.ProtoReflect.Descriptor instead. +func (*DetectDriftWithSpecsRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{51} +} + +func (x *DetectDriftWithSpecsRequest) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +func (x *DetectDriftWithSpecsRequest) GetSpecs() map[string]*ResourceSpec { + if x != nil { + return x.Specs + } + return nil +} + +type DetectDriftWithSpecsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Drifts []*DriftResult `protobuf:"bytes,1,rep,name=drifts,proto3" json:"drifts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftWithSpecsResponse) Reset() { + *x = DetectDriftWithSpecsResponse{} + mi := &file_iac_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftWithSpecsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftWithSpecsResponse) ProtoMessage() {} + +func (x *DetectDriftWithSpecsResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[52] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftWithSpecsResponse.ProtoReflect.Descriptor instead. +func (*DetectDriftWithSpecsResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{52} +} + +func (x *DetectDriftWithSpecsResponse) GetDrifts() []*DriftResult { + if x != nil { + return x.Drifts + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderCredentialRevoker messages. +// ───────────────────────────────────────────────────────────────────────────── +type RevokeProviderCredentialRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // source is the provider_credential source string (e.g. "digitalocean.spaces"). + Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + // credential_id is the provider-specific identifier of the OLD credential. + CredentialId string `protobuf:"bytes,2,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RevokeProviderCredentialRequest) Reset() { + *x = RevokeProviderCredentialRequest{} + mi := &file_iac_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RevokeProviderCredentialRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevokeProviderCredentialRequest) ProtoMessage() {} + +func (x *RevokeProviderCredentialRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[53] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RevokeProviderCredentialRequest.ProtoReflect.Descriptor instead. +func (*RevokeProviderCredentialRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{53} +} + +func (x *RevokeProviderCredentialRequest) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *RevokeProviderCredentialRequest) GetCredentialId() string { + if x != nil { + return x.CredentialId + } + return "" +} + +type RevokeProviderCredentialResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RevokeProviderCredentialResponse) Reset() { + *x = RevokeProviderCredentialResponse{} + mi := &file_iac_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RevokeProviderCredentialResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevokeProviderCredentialResponse) ProtoMessage() {} + +func (x *RevokeProviderCredentialResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[54] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RevokeProviderCredentialResponse.ProtoReflect.Descriptor instead. +func (*RevokeProviderCredentialResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{54} +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderMigrationRepairer messages. +// ───────────────────────────────────────────────────────────────────────────── +type RepairDirtyMigrationRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Request *MigrationRepairRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RepairDirtyMigrationRequest) Reset() { + *x = RepairDirtyMigrationRequest{} + mi := &file_iac_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RepairDirtyMigrationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepairDirtyMigrationRequest) ProtoMessage() {} + +func (x *RepairDirtyMigrationRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[55] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepairDirtyMigrationRequest.ProtoReflect.Descriptor instead. +func (*RepairDirtyMigrationRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{55} +} + +func (x *RepairDirtyMigrationRequest) GetRequest() *MigrationRepairRequest { + if x != nil { + return x.Request + } + return nil +} + +type RepairDirtyMigrationResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *MigrationRepairResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RepairDirtyMigrationResponse) Reset() { + *x = RepairDirtyMigrationResponse{} + mi := &file_iac_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RepairDirtyMigrationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepairDirtyMigrationResponse) ProtoMessage() {} + +func (x *RepairDirtyMigrationResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[56] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RepairDirtyMigrationResponse.ProtoReflect.Descriptor instead. +func (*RepairDirtyMigrationResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{56} +} + +func (x *RepairDirtyMigrationResponse) GetResult() *MigrationRepairResult { + if x != nil { + return x.Result + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderValidator messages. +// ───────────────────────────────────────────────────────────────────────────── +type ValidatePlanRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Plan *IaCPlan `protobuf:"bytes,1,opt,name=plan,proto3" json:"plan,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidatePlanRequest) Reset() { + *x = ValidatePlanRequest{} + mi := &file_iac_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidatePlanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatePlanRequest) ProtoMessage() {} + +func (x *ValidatePlanRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[57] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatePlanRequest.ProtoReflect.Descriptor instead. +func (*ValidatePlanRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{57} +} + +func (x *ValidatePlanRequest) GetPlan() *IaCPlan { + if x != nil { + return x.Plan + } + return nil +} + +type ValidatePlanResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Diagnostics []*PlanDiagnostic `protobuf:"bytes,1,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidatePlanResponse) Reset() { + *x = ValidatePlanResponse{} + mi := &file_iac_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidatePlanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatePlanResponse) ProtoMessage() {} + +func (x *ValidatePlanResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[58] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatePlanResponse.ProtoReflect.Descriptor instead. +func (*ValidatePlanResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{58} +} + +func (x *ValidatePlanResponse) GetDiagnostics() []*PlanDiagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderDriftConfigDetector messages. +// Mirrors the existing interfaces.DriftConfigDetector.DetectDriftWithSpecs +// contract: refs + per-ref applied-config specs → drift classifications. +// Carried as a separate optional service per design §Optional services. +// ───────────────────────────────────────────────────────────────────────────── +type DetectDriftConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Refs []*ResourceRef `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"` + Specs map[string]*ResourceSpec `protobuf:"bytes,2,rep,name=specs,proto3" json:"specs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftConfigRequest) Reset() { + *x = DetectDriftConfigRequest{} + mi := &file_iac_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftConfigRequest) ProtoMessage() {} + +func (x *DetectDriftConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[59] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftConfigRequest.ProtoReflect.Descriptor instead. +func (*DetectDriftConfigRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{59} +} + +func (x *DetectDriftConfigRequest) GetRefs() []*ResourceRef { + if x != nil { + return x.Refs + } + return nil +} + +func (x *DetectDriftConfigRequest) GetSpecs() map[string]*ResourceSpec { + if x != nil { + return x.Specs + } + return nil +} + +type DetectDriftConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Drifts []*DriftResult `protobuf:"bytes,1,rep,name=drifts,proto3" json:"drifts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DetectDriftConfigResponse) Reset() { + *x = DetectDriftConfigResponse{} + mi := &file_iac_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DetectDriftConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DetectDriftConfigResponse) ProtoMessage() {} + +func (x *DetectDriftConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[60] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DetectDriftConfigResponse.ProtoReflect.Descriptor instead. +func (*DetectDriftConfigResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{60} +} + +func (x *DetectDriftConfigResponse) GetDrifts() []*DriftResult { + if x != nil { + return x.Drifts + } + return nil +} + +// ───────────────────────────────────────────────────────────────────────────── +// ResourceDriver request/response messages. +// Each request carries resource_type so a single ResourceDriver server can +// dispatch to the per-type driver implementation (matches DO plugin's +// 14-driver type-routing pattern in Task 11). +// ───────────────────────────────────────────────────────────────────────────── +type ResourceCreateRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Spec *ResourceSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceCreateRequest) Reset() { + *x = ResourceCreateRequest{} + mi := &file_iac_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceCreateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceCreateRequest) ProtoMessage() {} + +func (x *ResourceCreateRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[61] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceCreateRequest.ProtoReflect.Descriptor instead. +func (*ResourceCreateRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{61} +} + +func (x *ResourceCreateRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceCreateRequest) GetSpec() *ResourceSpec { + if x != nil { + return x.Spec + } + return nil +} + +type ResourceCreateResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Output *ResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceCreateResponse) Reset() { + *x = ResourceCreateResponse{} + mi := &file_iac_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceCreateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceCreateResponse) ProtoMessage() {} + +func (x *ResourceCreateResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[62] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceCreateResponse.ProtoReflect.Descriptor instead. +func (*ResourceCreateResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{62} +} + +func (x *ResourceCreateResponse) GetOutput() *ResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type ResourceReadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceReadRequest) Reset() { + *x = ResourceReadRequest{} + mi := &file_iac_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceReadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceReadRequest) ProtoMessage() {} + +func (x *ResourceReadRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[63] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceReadRequest.ProtoReflect.Descriptor instead. +func (*ResourceReadRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{63} +} + +func (x *ResourceReadRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceReadRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +type ResourceReadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Output *ResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceReadResponse) Reset() { + *x = ResourceReadResponse{} + mi := &file_iac_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceReadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceReadResponse) ProtoMessage() {} + +func (x *ResourceReadResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[64] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceReadResponse.ProtoReflect.Descriptor instead. +func (*ResourceReadResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{64} +} + +func (x *ResourceReadResponse) GetOutput() *ResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type ResourceUpdateRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + Spec *ResourceSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceUpdateRequest) Reset() { + *x = ResourceUpdateRequest{} + mi := &file_iac_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceUpdateRequest) ProtoMessage() {} + +func (x *ResourceUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[65] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceUpdateRequest.ProtoReflect.Descriptor instead. +func (*ResourceUpdateRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{65} +} + +func (x *ResourceUpdateRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceUpdateRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +func (x *ResourceUpdateRequest) GetSpec() *ResourceSpec { + if x != nil { + return x.Spec + } + return nil +} + +type ResourceUpdateResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Output *ResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceUpdateResponse) Reset() { + *x = ResourceUpdateResponse{} + mi := &file_iac_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceUpdateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceUpdateResponse) ProtoMessage() {} + +func (x *ResourceUpdateResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[66] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceUpdateResponse.ProtoReflect.Descriptor instead. +func (*ResourceUpdateResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{66} +} + +func (x *ResourceUpdateResponse) GetOutput() *ResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type ResourceDeleteRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceDeleteRequest) Reset() { + *x = ResourceDeleteRequest{} + mi := &file_iac_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceDeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceDeleteRequest) ProtoMessage() {} + +func (x *ResourceDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[67] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceDeleteRequest.ProtoReflect.Descriptor instead. +func (*ResourceDeleteRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{67} +} + +func (x *ResourceDeleteRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceDeleteRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +type ResourceDeleteResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceDeleteResponse) Reset() { + *x = ResourceDeleteResponse{} + mi := &file_iac_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceDeleteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceDeleteResponse) ProtoMessage() {} + +func (x *ResourceDeleteResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[68] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceDeleteResponse.ProtoReflect.Descriptor instead. +func (*ResourceDeleteResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{68} +} + +type ResourceDiffRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Desired *ResourceSpec `protobuf:"bytes,2,opt,name=desired,proto3" json:"desired,omitempty"` + Current *ResourceOutput `protobuf:"bytes,3,opt,name=current,proto3" json:"current,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceDiffRequest) Reset() { + *x = ResourceDiffRequest{} + mi := &file_iac_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceDiffRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceDiffRequest) ProtoMessage() {} + +func (x *ResourceDiffRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[69] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceDiffRequest.ProtoReflect.Descriptor instead. +func (*ResourceDiffRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{69} +} + +func (x *ResourceDiffRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceDiffRequest) GetDesired() *ResourceSpec { + if x != nil { + return x.Desired + } + return nil +} + +func (x *ResourceDiffRequest) GetCurrent() *ResourceOutput { + if x != nil { + return x.Current + } + return nil +} + +type ResourceDiffResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *DiffResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceDiffResponse) Reset() { + *x = ResourceDiffResponse{} + mi := &file_iac_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceDiffResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceDiffResponse) ProtoMessage() {} + +func (x *ResourceDiffResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[70] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceDiffResponse.ProtoReflect.Descriptor instead. +func (*ResourceDiffResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{70} +} + +func (x *ResourceDiffResponse) GetResult() *DiffResult { + if x != nil { + return x.Result + } + return nil +} + +type ResourceScaleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + Replicas int32 `protobuf:"varint,3,opt,name=replicas,proto3" json:"replicas,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceScaleRequest) Reset() { + *x = ResourceScaleRequest{} + mi := &file_iac_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceScaleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceScaleRequest) ProtoMessage() {} + +func (x *ResourceScaleRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[71] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceScaleRequest.ProtoReflect.Descriptor instead. +func (*ResourceScaleRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{71} +} + +func (x *ResourceScaleRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceScaleRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +func (x *ResourceScaleRequest) GetReplicas() int32 { + if x != nil { + return x.Replicas + } + return 0 +} + +type ResourceScaleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Output *ResourceOutput `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceScaleResponse) Reset() { + *x = ResourceScaleResponse{} + mi := &file_iac_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceScaleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceScaleResponse) ProtoMessage() {} + +func (x *ResourceScaleResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[72] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceScaleResponse.ProtoReflect.Descriptor instead. +func (*ResourceScaleResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{72} +} + +func (x *ResourceScaleResponse) GetOutput() *ResourceOutput { + if x != nil { + return x.Output + } + return nil +} + +type ResourceHealthCheckRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceHealthCheckRequest) Reset() { + *x = ResourceHealthCheckRequest{} + mi := &file_iac_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceHealthCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceHealthCheckRequest) ProtoMessage() {} + +func (x *ResourceHealthCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[73] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceHealthCheckRequest.ProtoReflect.Descriptor instead. +func (*ResourceHealthCheckRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{73} +} + +func (x *ResourceHealthCheckRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *ResourceHealthCheckRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +type ResourceHealthCheckResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result *HealthResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceHealthCheckResponse) Reset() { + *x = ResourceHealthCheckResponse{} + mi := &file_iac_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceHealthCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceHealthCheckResponse) ProtoMessage() {} + +func (x *ResourceHealthCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[74] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceHealthCheckResponse.ProtoReflect.Descriptor instead. +func (*ResourceHealthCheckResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{74} +} + +func (x *ResourceHealthCheckResponse) GetResult() *HealthResult { + if x != nil { + return x.Result + } + return nil +} + +type SensitiveKeysRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SensitiveKeysRequest) Reset() { + *x = SensitiveKeysRequest{} + mi := &file_iac_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SensitiveKeysRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SensitiveKeysRequest) ProtoMessage() {} + +func (x *SensitiveKeysRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[75] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SensitiveKeysRequest.ProtoReflect.Descriptor instead. +func (*SensitiveKeysRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{75} +} + +func (x *SensitiveKeysRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +type SensitiveKeysResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SensitiveKeysResponse) Reset() { + *x = SensitiveKeysResponse{} + mi := &file_iac_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SensitiveKeysResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SensitiveKeysResponse) ProtoMessage() {} + +func (x *SensitiveKeysResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[76] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SensitiveKeysResponse.ProtoReflect.Descriptor instead. +func (*SensitiveKeysResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{76} +} + +func (x *SensitiveKeysResponse) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type TroubleshootRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + Ref *ResourceRef `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` + FailureMsg string `protobuf:"bytes,3,opt,name=failure_msg,json=failureMsg,proto3" json:"failure_msg,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TroubleshootRequest) Reset() { + *x = TroubleshootRequest{} + mi := &file_iac_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TroubleshootRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TroubleshootRequest) ProtoMessage() {} + +func (x *TroubleshootRequest) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[77] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TroubleshootRequest.ProtoReflect.Descriptor instead. +func (*TroubleshootRequest) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{77} +} + +func (x *TroubleshootRequest) GetResourceType() string { + if x != nil { + return x.ResourceType + } + return "" +} + +func (x *TroubleshootRequest) GetRef() *ResourceRef { + if x != nil { + return x.Ref + } + return nil +} + +func (x *TroubleshootRequest) GetFailureMsg() string { + if x != nil { + return x.FailureMsg + } + return "" +} + +type TroubleshootResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Diagnostics []*Diagnostic `protobuf:"bytes,1,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TroubleshootResponse) Reset() { + *x = TroubleshootResponse{} + mi := &file_iac_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TroubleshootResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TroubleshootResponse) ProtoMessage() {} + +func (x *TroubleshootResponse) ProtoReflect() protoreflect.Message { + mi := &file_iac_proto_msgTypes[78] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TroubleshootResponse.ProtoReflect.Descriptor instead. +func (*TroubleshootResponse) Descriptor() ([]byte, []int) { + return file_iac_proto_rawDescGZIP(), []int{78} +} + +func (x *TroubleshootResponse) GetDiagnostics() []*Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +var File_iac_proto protoreflect.FileDescriptor + +const file_iac_proto_rawDesc = "" + + "\n" + + "\tiac.proto\x12\x1cworkflow.plugin.external.iac\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcd\x01\n" + + "\fResourceSpec\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x1f\n" + + "\vconfig_json\x18\x03 \x01(\fR\n" + + "configJson\x12\x12\n" + + "\x04size\x18\x04 \x01(\tR\x04size\x12A\n" + + "\x05hints\x18\x05 \x01(\v2+.workflow.plugin.external.iac.ResourceHintsR\x05hints\x12\x1d\n" + + "\n" + + "depends_on\x18\x06 \x03(\tR\tdependsOn\"V\n" + + "\vResourceRef\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x1f\n" + + "\vprovider_id\x18\x03 \x01(\tR\n" + + "providerId\"S\n" + + "\rResourceHints\x12\x10\n" + + "\x03cpu\x18\x01 \x01(\tR\x03cpu\x12\x16\n" + + "\x06memory\x18\x02 \x01(\tR\x06memory\x12\x18\n" + + "\astorage\x18\x03 \x01(\tR\astorage\"T\n" + + "\x0eProviderSizing\x12#\n" + + "\rinstance_type\x18\x01 \x01(\tR\finstanceType\x12\x1d\n" + + "\n" + + "specs_json\x18\x02 \x01(\fR\tspecsJson\"s\n" + + "\x18IaCCapabilityDeclaration\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12\x12\n" + + "\x04tier\x18\x02 \x01(\x05R\x04tier\x12\x1e\n" + + "\n" + + "operations\x18\x03 \x03(\tR\n" + + "operations\"\xaf\x04\n" + + "\rResourceState\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x03 \x01(\tR\x04type\x12\x1a\n" + + "\bprovider\x18\x04 \x01(\tR\bprovider\x12!\n" + + "\fprovider_ref\x18\x05 \x01(\tR\vproviderRef\x12\x1f\n" + + "\vprovider_id\x18\x06 \x01(\tR\n" + + "providerId\x12\x1f\n" + + "\vconfig_hash\x18\a \x01(\tR\n" + + "configHash\x12.\n" + + "\x13applied_config_json\x18\b \x01(\fR\x11appliedConfigJson\x122\n" + + "\x15applied_config_source\x18\t \x01(\tR\x13appliedConfigSource\x12!\n" + + "\foutputs_json\x18\n" + + " \x01(\fR\voutputsJson\x12\"\n" + + "\fdependencies\x18\v \x03(\tR\fdependencies\x129\n" + + "\n" + + "created_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" + + "\n" + + "updated_at\x18\r \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x12D\n" + + "\x10last_drift_check\x18\x0e \x01(\v2\x1a.google.protobuf.TimestampR\x0elastDriftCheck\"\xad\x02\n" + + "\x0eResourceOutput\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x1f\n" + + "\vprovider_id\x18\x03 \x01(\tR\n" + + "providerId\x12!\n" + + "\foutputs_json\x18\x04 \x01(\fR\voutputsJson\x12Y\n" + + "\tsensitive\x18\x05 \x03(\v2;.workflow.plugin.external.iac.ResourceOutput.SensitiveEntryR\tsensitive\x12\x16\n" + + "\x06status\x18\x06 \x01(\tR\x06status\x1a<\n" + + "\x0eSensitiveEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"\x94\x01\n" + + "\x0eResourceStatus\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x1f\n" + + "\vprovider_id\x18\x03 \x01(\tR\n" + + "providerId\x12\x16\n" + + "\x06status\x18\x04 \x01(\tR\x06status\x12!\n" + + "\foutputs_json\x18\x05 \x01(\fR\voutputsJson\"t\n" + + "\vFieldChange\x12\x12\n" + + "\x04path\x18\x01 \x01(\tR\x04path\x12\x19\n" + + "\bold_json\x18\x02 \x01(\fR\aoldJson\x12\x19\n" + + "\bnew_json\x18\x03 \x01(\fR\anewJson\x12\x1b\n" + + "\tforce_new\x18\x04 \x01(\bR\bforceNew\"\x99\x01\n" + + "\n" + + "DiffResult\x12!\n" + + "\fneeds_update\x18\x01 \x01(\bR\vneedsUpdate\x12#\n" + + "\rneeds_replace\x18\x02 \x01(\bR\fneedsReplace\x12C\n" + + "\achanges\x18\x03 \x03(\v2).workflow.plugin.external.iac.FieldChangeR\achanges\"\xed\x01\n" + + "\vDriftResult\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" + + "\x04type\x18\x02 \x01(\tR\x04type\x12\x18\n" + + "\adrifted\x18\x03 \x01(\bR\adrifted\x12>\n" + + "\x05class\x18\x04 \x01(\x0e2(.workflow.plugin.external.iac.DriftClassR\x05class\x12#\n" + + "\rexpected_json\x18\x05 \x01(\fR\fexpectedJson\x12\x1f\n" + + "\vactual_json\x18\x06 \x01(\fR\n" + + "actualJson\x12\x16\n" + + "\x06fields\x18\a \x03(\tR\x06fields\"x\n" + + "\n" + + "DriftEntry\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12)\n" + + "\x10plan_fingerprint\x18\x02 \x01(\tR\x0fplanFingerprint\x12+\n" + + "\x11apply_fingerprint\x18\x03 \x01(\tR\x10applyFingerprint\"B\n" + + "\fHealthResult\x12\x18\n" + + "\ahealthy\x18\x01 \x01(\bR\ahealthy\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"\x8c\x01\n" + + "\n" + + "Diagnostic\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" + + "\x05phase\x18\x02 \x01(\tR\x05phase\x12\x14\n" + + "\x05cause\x18\x03 \x01(\tR\x05cause\x12*\n" + + "\x02at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\x02at\x12\x16\n" + + "\x06detail\x18\x05 \x01(\tR\x06detail\"\xae\x01\n" + + "\x0ePlanDiagnostic\x12P\n" + + "\bseverity\x18\x01 \x01(\x0e24.workflow.plugin.external.iac.PlanDiagnosticSeverityR\bseverity\x12\x1a\n" + + "\bresource\x18\x02 \x01(\tR\bresource\x12\x14\n" + + "\x05field\x18\x03 \x01(\tR\x05field\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\"\xaa\x02\n" + + "\n" + + "PlanAction\x12\x16\n" + + "\x06action\x18\x01 \x01(\tR\x06action\x12F\n" + + "\bresource\x18\x02 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\bresource\x12E\n" + + "\acurrent\x18\x03 \x01(\v2+.workflow.plugin.external.iac.ResourceStateR\acurrent\x12C\n" + + "\achanges\x18\x04 \x03(\v2).workflow.plugin.external.iac.FieldChangeR\achanges\x120\n" + + "\x14resolved_config_hash\x18\x05 \x01(\tR\x12resolvedConfigHash\"\x85\x03\n" + + "\aIaCPlan\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12B\n" + + "\aactions\x18\x02 \x03(\v2(.workflow.plugin.external.iac.PlanActionR\aactions\x129\n" + + "\n" + + "created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12!\n" + + "\fdesired_hash\x18\x04 \x01(\tR\vdesiredHash\x12%\n" + + "\x0eschema_version\x18\x05 \x01(\x05R\rschemaVersion\x12_\n" + + "\x0einput_snapshot\x18\x06 \x03(\v28.workflow.plugin.external.iac.IaCPlan.InputSnapshotEntryR\rinputSnapshot\x1a@\n" + + "\x12InputSnapshotEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"W\n" + + "\vActionError\x12\x1a\n" + + "\bresource\x18\x01 \x01(\tR\bresource\x12\x16\n" + + "\x06action\x18\x02 \x01(\tR\x06action\x12\x14\n" + + "\x05error\x18\x03 \x01(\tR\x05error\"\xf5\x04\n" + + "\vApplyResult\x12\x17\n" + + "\aplan_id\x18\x01 \x01(\tR\x06planId\x12J\n" + + "\tresources\x18\x02 \x03(\v2,.workflow.plugin.external.iac.ResourceOutputR\tresources\x12A\n" + + "\x06errors\x18\x03 \x03(\v2).workflow.plugin.external.iac.ActionErrorR\x06errors\x12y\n" + + "\x16initial_input_snapshot\x18\x04 \x03(\v2C.workflow.plugin.external.iac.ApplyResult.InitialInputSnapshotEntryR\x14initialInputSnapshot\x12V\n" + + "\x12input_drift_report\x18\x05 \x03(\v2(.workflow.plugin.external.iac.DriftEntryR\x10inputDriftReport\x12a\n" + + "\x0ereplace_id_map\x18\x06 \x03(\v2;.workflow.plugin.external.iac.ApplyResult.ReplaceIdMapEntryR\freplaceIdMap\x1aG\n" + + "\x19InitialInputSnapshotEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a?\n" + + "\x11ReplaceIdMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"p\n" + + "\rDestroyResult\x12\x1c\n" + + "\tdestroyed\x18\x01 \x03(\tR\tdestroyed\x12A\n" + + "\x06errors\x18\x02 \x03(\v2).workflow.plugin.external.iac.ActionErrorR\x06errors\"\xf0\x01\n" + + "\x0fBootstrapResult\x12\x16\n" + + "\x06bucket\x18\x01 \x01(\tR\x06bucket\x12\x16\n" + + "\x06region\x18\x02 \x01(\tR\x06region\x12\x1a\n" + + "\bendpoint\x18\x03 \x01(\tR\bendpoint\x12U\n" + + "\benv_vars\x18\x04 \x03(\v2:.workflow.plugin.external.iac.BootstrapResult.EnvVarsEntryR\aenvVars\x1a:\n" + + "\fEnvVarsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa1\x04\n" + + "\x16MigrationRepairRequest\x12*\n" + + "\x11app_resource_name\x18\x01 \x01(\tR\x0fappResourceName\x124\n" + + "\x16database_resource_name\x18\x02 \x01(\tR\x14databaseResourceName\x12\x1b\n" + + "\tjob_image\x18\x03 \x01(\tR\bjobImage\x12\x1d\n" + + "\n" + + "source_dir\x18\x04 \x01(\tR\tsourceDir\x124\n" + + "\x16expected_dirty_version\x18\x05 \x01(\tR\x14expectedDirtyVersion\x12#\n" + + "\rforce_version\x18\x06 \x01(\tR\fforceVersion\x12\x17\n" + + "\athen_up\x18\a \x01(\bR\x06thenUp\x12\x1e\n" + + "\vup_if_clean\x18\b \x01(\bR\tupIfClean\x12#\n" + + "\rconfirm_force\x18\t \x01(\tR\fconfirmForce\x12O\n" + + "\x03env\x18\n" + + " \x03(\v2=.workflow.plugin.external.iac.MigrationRepairRequest.EnvEntryR\x03env\x12'\n" + + "\x0ftimeout_seconds\x18\v \x01(\x05R\x0etimeoutSeconds\x1a6\n" + + "\bEnvEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xd1\x01\n" + + "\x15MigrationRepairResult\x12&\n" + + "\x0fprovider_job_id\x18\x01 \x01(\tR\rproviderJobId\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x18\n" + + "\aapplied\x18\x03 \x03(\tR\aapplied\x12\x12\n" + + "\x04logs\x18\x04 \x01(\tR\x04logs\x12J\n" + + "\vdiagnostics\x18\x05 \x03(\v2(.workflow.plugin.external.iac.DiagnosticR\vdiagnostics\"4\n" + + "\x11InitializeRequest\x12\x1f\n" + + "\vconfig_json\x18\x01 \x01(\fR\n" + + "configJson\"\x14\n" + + "\x12InitializeResponse\"\r\n" + + "\vNameRequest\"\"\n" + + "\fNameResponse\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\"\x10\n" + + "\x0eVersionRequest\"+\n" + + "\x0fVersionResponse\x12\x18\n" + + "\aversion\x18\x01 \x01(\tR\aversion\"\x15\n" + + "\x13CapabilitiesRequest\"r\n" + + "\x14CapabilitiesResponse\x12Z\n" + + "\fcapabilities\x18\x01 \x03(\v26.workflow.plugin.external.iac.IaCCapabilityDeclarationR\fcapabilities\"\x9a\x01\n" + + "\vPlanRequest\x12D\n" + + "\adesired\x18\x01 \x03(\v2*.workflow.plugin.external.iac.ResourceSpecR\adesired\x12E\n" + + "\acurrent\x18\x02 \x03(\v2+.workflow.plugin.external.iac.ResourceStateR\acurrent\"I\n" + + "\fPlanResponse\x129\n" + + "\x04plan\x18\x01 \x01(\v2%.workflow.plugin.external.iac.IaCPlanR\x04plan\"I\n" + + "\fApplyRequest\x129\n" + + "\x04plan\x18\x01 \x01(\v2%.workflow.plugin.external.iac.IaCPlanR\x04plan\"R\n" + + "\rApplyResponse\x12A\n" + + "\x06result\x18\x01 \x01(\v2).workflow.plugin.external.iac.ApplyResultR\x06result\"O\n" + + "\x0eDestroyRequest\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\"V\n" + + "\x0fDestroyResponse\x12C\n" + + "\x06result\x18\x01 \x01(\v2+.workflow.plugin.external.iac.DestroyResultR\x06result\"N\n" + + "\rStatusRequest\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\"Z\n" + + "\x0eStatusResponse\x12H\n" + + "\bstatuses\x18\x01 \x03(\v2,.workflow.plugin.external.iac.ResourceStatusR\bstatuses\"U\n" + + "\rImportRequest\x12\x1f\n" + + "\vprovider_id\x18\x01 \x01(\tR\n" + + "providerId\x12#\n" + + "\rresource_type\x18\x02 \x01(\tR\fresourceType\"S\n" + + "\x0eImportResponse\x12A\n" + + "\x05state\x18\x01 \x01(\v2+.workflow.plugin.external.iac.ResourceStateR\x05state\"\x92\x01\n" + + "\x14ResolveSizingRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12\x12\n" + + "\x04size\x18\x02 \x01(\tR\x04size\x12A\n" + + "\x05hints\x18\x03 \x01(\v2+.workflow.plugin.external.iac.ResourceHintsR\x05hints\"]\n" + + "\x15ResolveSizingResponse\x12D\n" + + "\x06sizing\x18\x01 \x01(\v2,.workflow.plugin.external.iac.ProviderSizingR\x06sizing\"?\n" + + "\x1cBootstrapStateBackendRequest\x12\x1f\n" + + "\vconfig_json\x18\x01 \x01(\fR\n" + + "configJson\"f\n" + + "\x1dBootstrapStateBackendResponse\x12E\n" + + "\x06result\x18\x01 \x01(\v2-.workflow.plugin.external.iac.BootstrapResultR\x06result\":\n" + + "\x13EnumerateAllRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\"^\n" + + "\x14EnumerateAllResponse\x12F\n" + + "\aoutputs\x18\x01 \x03(\v2,.workflow.plugin.external.iac.ResourceOutputR\aoutputs\")\n" + + "\x15EnumerateByTagRequest\x12\x10\n" + + "\x03tag\x18\x01 \x01(\tR\x03tag\"W\n" + + "\x16EnumerateByTagResponse\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\"S\n" + + "\x12DetectDriftRequest\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\"X\n" + + "\x13DetectDriftResponse\x12A\n" + + "\x06drifts\x18\x01 \x03(\v2).workflow.plugin.external.iac.DriftResultR\x06drifts\"\x9e\x02\n" + + "\x1bDetectDriftWithSpecsRequest\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\x12Z\n" + + "\x05specs\x18\x02 \x03(\v2D.workflow.plugin.external.iac.DetectDriftWithSpecsRequest.SpecsEntryR\x05specs\x1ad\n" + + "\n" + + "SpecsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12@\n" + + "\x05value\x18\x02 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\x05value:\x028\x01\"a\n" + + "\x1cDetectDriftWithSpecsResponse\x12A\n" + + "\x06drifts\x18\x01 \x03(\v2).workflow.plugin.external.iac.DriftResultR\x06drifts\"^\n" + + "\x1fRevokeProviderCredentialRequest\x12\x16\n" + + "\x06source\x18\x01 \x01(\tR\x06source\x12#\n" + + "\rcredential_id\x18\x02 \x01(\tR\fcredentialId\"\"\n" + + " RevokeProviderCredentialResponse\"m\n" + + "\x1bRepairDirtyMigrationRequest\x12N\n" + + "\arequest\x18\x01 \x01(\v24.workflow.plugin.external.iac.MigrationRepairRequestR\arequest\"k\n" + + "\x1cRepairDirtyMigrationResponse\x12K\n" + + "\x06result\x18\x01 \x01(\v23.workflow.plugin.external.iac.MigrationRepairResultR\x06result\"P\n" + + "\x13ValidatePlanRequest\x129\n" + + "\x04plan\x18\x01 \x01(\v2%.workflow.plugin.external.iac.IaCPlanR\x04plan\"f\n" + + "\x14ValidatePlanResponse\x12N\n" + + "\vdiagnostics\x18\x01 \x03(\v2,.workflow.plugin.external.iac.PlanDiagnosticR\vdiagnostics\"\x98\x02\n" + + "\x18DetectDriftConfigRequest\x12=\n" + + "\x04refs\x18\x01 \x03(\v2).workflow.plugin.external.iac.ResourceRefR\x04refs\x12W\n" + + "\x05specs\x18\x02 \x03(\v2A.workflow.plugin.external.iac.DetectDriftConfigRequest.SpecsEntryR\x05specs\x1ad\n" + + "\n" + + "SpecsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12@\n" + + "\x05value\x18\x02 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\x05value:\x028\x01\"^\n" + + "\x19DetectDriftConfigResponse\x12A\n" + + "\x06drifts\x18\x01 \x03(\v2).workflow.plugin.external.iac.DriftResultR\x06drifts\"|\n" + + "\x15ResourceCreateRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12>\n" + + "\x04spec\x18\x02 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\x04spec\"^\n" + + "\x16ResourceCreateResponse\x12D\n" + + "\x06output\x18\x01 \x01(\v2,.workflow.plugin.external.iac.ResourceOutputR\x06output\"w\n" + + "\x13ResourceReadRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\"\\\n" + + "\x14ResourceReadResponse\x12D\n" + + "\x06output\x18\x01 \x01(\v2,.workflow.plugin.external.iac.ResourceOutputR\x06output\"\xb9\x01\n" + + "\x15ResourceUpdateRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\x12>\n" + + "\x04spec\x18\x03 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\x04spec\"^\n" + + "\x16ResourceUpdateResponse\x12D\n" + + "\x06output\x18\x01 \x01(\v2,.workflow.plugin.external.iac.ResourceOutputR\x06output\"y\n" + + "\x15ResourceDeleteRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\"\x18\n" + + "\x16ResourceDeleteResponse\"\xc8\x01\n" + + "\x13ResourceDiffRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12D\n" + + "\adesired\x18\x02 \x01(\v2*.workflow.plugin.external.iac.ResourceSpecR\adesired\x12F\n" + + "\acurrent\x18\x03 \x01(\v2,.workflow.plugin.external.iac.ResourceOutputR\acurrent\"X\n" + + "\x14ResourceDiffResponse\x12@\n" + + "\x06result\x18\x01 \x01(\v2(.workflow.plugin.external.iac.DiffResultR\x06result\"\x94\x01\n" + + "\x14ResourceScaleRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\x12\x1a\n" + + "\breplicas\x18\x03 \x01(\x05R\breplicas\"]\n" + + "\x15ResourceScaleResponse\x12D\n" + + "\x06output\x18\x01 \x01(\v2,.workflow.plugin.external.iac.ResourceOutputR\x06output\"~\n" + + "\x1aResourceHealthCheckRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\"a\n" + + "\x1bResourceHealthCheckResponse\x12B\n" + + "\x06result\x18\x01 \x01(\v2*.workflow.plugin.external.iac.HealthResultR\x06result\";\n" + + "\x14SensitiveKeysRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\"+\n" + + "\x15SensitiveKeysResponse\x12\x12\n" + + "\x04keys\x18\x01 \x03(\tR\x04keys\"\x98\x01\n" + + "\x13TroubleshootRequest\x12#\n" + + "\rresource_type\x18\x01 \x01(\tR\fresourceType\x12;\n" + + "\x03ref\x18\x02 \x01(\v2).workflow.plugin.external.iac.ResourceRefR\x03ref\x12\x1f\n" + + "\vfailure_msg\x18\x03 \x01(\tR\n" + + "failureMsg\"b\n" + + "\x14TroubleshootResponse\x12J\n" + + "\vdiagnostics\x18\x01 \x03(\v2(.workflow.plugin.external.iac.DiagnosticR\vdiagnostics*m\n" + + "\n" + + "DriftClass\x12\x17\n" + + "\x13DRIFT_CLASS_UNKNOWN\x10\x00\x12\x17\n" + + "\x13DRIFT_CLASS_IN_SYNC\x10\x01\x12\x15\n" + + "\x11DRIFT_CLASS_GHOST\x10\x02\x12\x16\n" + + "\x12DRIFT_CLASS_CONFIG\x10\x03*j\n" + + "\x16PlanDiagnosticSeverity\x12\x18\n" + + "\x14PLAN_DIAGNOSTIC_INFO\x10\x00\x12\x1b\n" + + "\x17PLAN_DIAGNOSTIC_WARNING\x10\x01\x12\x19\n" + + "\x15PLAN_DIAGNOSTIC_ERROR\x10\x022\xc4\t\n" + + "\x13IaCProviderRequired\x12o\n" + + "\n" + + "Initialize\x12/.workflow.plugin.external.iac.InitializeRequest\x1a0.workflow.plugin.external.iac.InitializeResponse\x12]\n" + + "\x04Name\x12).workflow.plugin.external.iac.NameRequest\x1a*.workflow.plugin.external.iac.NameResponse\x12f\n" + + "\aVersion\x12,.workflow.plugin.external.iac.VersionRequest\x1a-.workflow.plugin.external.iac.VersionResponse\x12u\n" + + "\fCapabilities\x121.workflow.plugin.external.iac.CapabilitiesRequest\x1a2.workflow.plugin.external.iac.CapabilitiesResponse\x12]\n" + + "\x04Plan\x12).workflow.plugin.external.iac.PlanRequest\x1a*.workflow.plugin.external.iac.PlanResponse\x12`\n" + + "\x05Apply\x12*.workflow.plugin.external.iac.ApplyRequest\x1a+.workflow.plugin.external.iac.ApplyResponse\x12f\n" + + "\aDestroy\x12,.workflow.plugin.external.iac.DestroyRequest\x1a-.workflow.plugin.external.iac.DestroyResponse\x12c\n" + + "\x06Status\x12+.workflow.plugin.external.iac.StatusRequest\x1a,.workflow.plugin.external.iac.StatusResponse\x12c\n" + + "\x06Import\x12+.workflow.plugin.external.iac.ImportRequest\x1a,.workflow.plugin.external.iac.ImportResponse\x12x\n" + + "\rResolveSizing\x122.workflow.plugin.external.iac.ResolveSizingRequest\x1a3.workflow.plugin.external.iac.ResolveSizingResponse\x12\x90\x01\n" + + "\x15BootstrapStateBackend\x12:.workflow.plugin.external.iac.BootstrapStateBackendRequest\x1a;.workflow.plugin.external.iac.BootstrapStateBackendResponse2\x8b\x02\n" + + "\x15IaCProviderEnumerator\x12u\n" + + "\fEnumerateAll\x121.workflow.plugin.external.iac.EnumerateAllRequest\x1a2.workflow.plugin.external.iac.EnumerateAllResponse\x12{\n" + + "\x0eEnumerateByTag\x123.workflow.plugin.external.iac.EnumerateByTagRequest\x1a4.workflow.plugin.external.iac.EnumerateByTagResponse2\x9e\x02\n" + + "\x18IaCProviderDriftDetector\x12r\n" + + "\vDetectDrift\x120.workflow.plugin.external.iac.DetectDriftRequest\x1a1.workflow.plugin.external.iac.DetectDriftResponse\x12\x8d\x01\n" + + "\x14DetectDriftWithSpecs\x129.workflow.plugin.external.iac.DetectDriftWithSpecsRequest\x1a:.workflow.plugin.external.iac.DetectDriftWithSpecsResponse2\xba\x01\n" + + "\x1cIaCProviderCredentialRevoker\x12\x99\x01\n" + + "\x18RevokeProviderCredential\x12=.workflow.plugin.external.iac.RevokeProviderCredentialRequest\x1a>.workflow.plugin.external.iac.RevokeProviderCredentialResponse2\xae\x01\n" + + "\x1cIaCProviderMigrationRepairer\x12\x8d\x01\n" + + "\x14RepairDirtyMigration\x129.workflow.plugin.external.iac.RepairDirtyMigrationRequest\x1a:.workflow.plugin.external.iac.RepairDirtyMigrationResponse2\x8d\x01\n" + + "\x14IaCProviderValidator\x12u\n" + + "\fValidatePlan\x121.workflow.plugin.external.iac.ValidatePlanRequest\x1a2.workflow.plugin.external.iac.ValidatePlanResponse2\xa7\x01\n" + + "\x1eIaCProviderDriftConfigDetector\x12\x84\x01\n" + + "\x11DetectDriftConfig\x126.workflow.plugin.external.iac.DetectDriftConfigRequest\x1a7.workflow.plugin.external.iac.DetectDriftConfigResponse2\xb5\b\n" + + "\x0eResourceDriver\x12s\n" + + "\x06Create\x123.workflow.plugin.external.iac.ResourceCreateRequest\x1a4.workflow.plugin.external.iac.ResourceCreateResponse\x12m\n" + + "\x04Read\x121.workflow.plugin.external.iac.ResourceReadRequest\x1a2.workflow.plugin.external.iac.ResourceReadResponse\x12s\n" + + "\x06Update\x123.workflow.plugin.external.iac.ResourceUpdateRequest\x1a4.workflow.plugin.external.iac.ResourceUpdateResponse\x12s\n" + + "\x06Delete\x123.workflow.plugin.external.iac.ResourceDeleteRequest\x1a4.workflow.plugin.external.iac.ResourceDeleteResponse\x12m\n" + + "\x04Diff\x121.workflow.plugin.external.iac.ResourceDiffRequest\x1a2.workflow.plugin.external.iac.ResourceDiffResponse\x12p\n" + + "\x05Scale\x122.workflow.plugin.external.iac.ResourceScaleRequest\x1a3.workflow.plugin.external.iac.ResourceScaleResponse\x12\x82\x01\n" + + "\vHealthCheck\x128.workflow.plugin.external.iac.ResourceHealthCheckRequest\x1a9.workflow.plugin.external.iac.ResourceHealthCheckResponse\x12x\n" + + "\rSensitiveKeys\x122.workflow.plugin.external.iac.SensitiveKeysRequest\x1a3.workflow.plugin.external.iac.SensitiveKeysResponse\x12u\n" + + "\fTroubleshoot\x121.workflow.plugin.external.iac.TroubleshootRequest\x1a2.workflow.plugin.external.iac.TroubleshootResponseB=Z;github.com/GoCodeAlone/workflow/plugin/external/proto;protob\x06proto3" + +var ( + file_iac_proto_rawDescOnce sync.Once + file_iac_proto_rawDescData []byte +) + +func file_iac_proto_rawDescGZIP() []byte { + file_iac_proto_rawDescOnce.Do(func() { + file_iac_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_iac_proto_rawDesc), len(file_iac_proto_rawDesc))) + }) + return file_iac_proto_rawDescData +} + +var file_iac_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_iac_proto_msgTypes = make([]protoimpl.MessageInfo, 87) +var file_iac_proto_goTypes = []any{ + (DriftClass)(0), // 0: workflow.plugin.external.iac.DriftClass + (PlanDiagnosticSeverity)(0), // 1: workflow.plugin.external.iac.PlanDiagnosticSeverity + (*ResourceSpec)(nil), // 2: workflow.plugin.external.iac.ResourceSpec + (*ResourceRef)(nil), // 3: workflow.plugin.external.iac.ResourceRef + (*ResourceHints)(nil), // 4: workflow.plugin.external.iac.ResourceHints + (*ProviderSizing)(nil), // 5: workflow.plugin.external.iac.ProviderSizing + (*IaCCapabilityDeclaration)(nil), // 6: workflow.plugin.external.iac.IaCCapabilityDeclaration + (*ResourceState)(nil), // 7: workflow.plugin.external.iac.ResourceState + (*ResourceOutput)(nil), // 8: workflow.plugin.external.iac.ResourceOutput + (*ResourceStatus)(nil), // 9: workflow.plugin.external.iac.ResourceStatus + (*FieldChange)(nil), // 10: workflow.plugin.external.iac.FieldChange + (*DiffResult)(nil), // 11: workflow.plugin.external.iac.DiffResult + (*DriftResult)(nil), // 12: workflow.plugin.external.iac.DriftResult + (*DriftEntry)(nil), // 13: workflow.plugin.external.iac.DriftEntry + (*HealthResult)(nil), // 14: workflow.plugin.external.iac.HealthResult + (*Diagnostic)(nil), // 15: workflow.plugin.external.iac.Diagnostic + (*PlanDiagnostic)(nil), // 16: workflow.plugin.external.iac.PlanDiagnostic + (*PlanAction)(nil), // 17: workflow.plugin.external.iac.PlanAction + (*IaCPlan)(nil), // 18: workflow.plugin.external.iac.IaCPlan + (*ActionError)(nil), // 19: workflow.plugin.external.iac.ActionError + (*ApplyResult)(nil), // 20: workflow.plugin.external.iac.ApplyResult + (*DestroyResult)(nil), // 21: workflow.plugin.external.iac.DestroyResult + (*BootstrapResult)(nil), // 22: workflow.plugin.external.iac.BootstrapResult + (*MigrationRepairRequest)(nil), // 23: workflow.plugin.external.iac.MigrationRepairRequest + (*MigrationRepairResult)(nil), // 24: workflow.plugin.external.iac.MigrationRepairResult + (*InitializeRequest)(nil), // 25: workflow.plugin.external.iac.InitializeRequest + (*InitializeResponse)(nil), // 26: workflow.plugin.external.iac.InitializeResponse + (*NameRequest)(nil), // 27: workflow.plugin.external.iac.NameRequest + (*NameResponse)(nil), // 28: workflow.plugin.external.iac.NameResponse + (*VersionRequest)(nil), // 29: workflow.plugin.external.iac.VersionRequest + (*VersionResponse)(nil), // 30: workflow.plugin.external.iac.VersionResponse + (*CapabilitiesRequest)(nil), // 31: workflow.plugin.external.iac.CapabilitiesRequest + (*CapabilitiesResponse)(nil), // 32: workflow.plugin.external.iac.CapabilitiesResponse + (*PlanRequest)(nil), // 33: workflow.plugin.external.iac.PlanRequest + (*PlanResponse)(nil), // 34: workflow.plugin.external.iac.PlanResponse + (*ApplyRequest)(nil), // 35: workflow.plugin.external.iac.ApplyRequest + (*ApplyResponse)(nil), // 36: workflow.plugin.external.iac.ApplyResponse + (*DestroyRequest)(nil), // 37: workflow.plugin.external.iac.DestroyRequest + (*DestroyResponse)(nil), // 38: workflow.plugin.external.iac.DestroyResponse + (*StatusRequest)(nil), // 39: workflow.plugin.external.iac.StatusRequest + (*StatusResponse)(nil), // 40: workflow.plugin.external.iac.StatusResponse + (*ImportRequest)(nil), // 41: workflow.plugin.external.iac.ImportRequest + (*ImportResponse)(nil), // 42: workflow.plugin.external.iac.ImportResponse + (*ResolveSizingRequest)(nil), // 43: workflow.plugin.external.iac.ResolveSizingRequest + (*ResolveSizingResponse)(nil), // 44: workflow.plugin.external.iac.ResolveSizingResponse + (*BootstrapStateBackendRequest)(nil), // 45: workflow.plugin.external.iac.BootstrapStateBackendRequest + (*BootstrapStateBackendResponse)(nil), // 46: workflow.plugin.external.iac.BootstrapStateBackendResponse + (*EnumerateAllRequest)(nil), // 47: workflow.plugin.external.iac.EnumerateAllRequest + (*EnumerateAllResponse)(nil), // 48: workflow.plugin.external.iac.EnumerateAllResponse + (*EnumerateByTagRequest)(nil), // 49: workflow.plugin.external.iac.EnumerateByTagRequest + (*EnumerateByTagResponse)(nil), // 50: workflow.plugin.external.iac.EnumerateByTagResponse + (*DetectDriftRequest)(nil), // 51: workflow.plugin.external.iac.DetectDriftRequest + (*DetectDriftResponse)(nil), // 52: workflow.plugin.external.iac.DetectDriftResponse + (*DetectDriftWithSpecsRequest)(nil), // 53: workflow.plugin.external.iac.DetectDriftWithSpecsRequest + (*DetectDriftWithSpecsResponse)(nil), // 54: workflow.plugin.external.iac.DetectDriftWithSpecsResponse + (*RevokeProviderCredentialRequest)(nil), // 55: workflow.plugin.external.iac.RevokeProviderCredentialRequest + (*RevokeProviderCredentialResponse)(nil), // 56: workflow.plugin.external.iac.RevokeProviderCredentialResponse + (*RepairDirtyMigrationRequest)(nil), // 57: workflow.plugin.external.iac.RepairDirtyMigrationRequest + (*RepairDirtyMigrationResponse)(nil), // 58: workflow.plugin.external.iac.RepairDirtyMigrationResponse + (*ValidatePlanRequest)(nil), // 59: workflow.plugin.external.iac.ValidatePlanRequest + (*ValidatePlanResponse)(nil), // 60: workflow.plugin.external.iac.ValidatePlanResponse + (*DetectDriftConfigRequest)(nil), // 61: workflow.plugin.external.iac.DetectDriftConfigRequest + (*DetectDriftConfigResponse)(nil), // 62: workflow.plugin.external.iac.DetectDriftConfigResponse + (*ResourceCreateRequest)(nil), // 63: workflow.plugin.external.iac.ResourceCreateRequest + (*ResourceCreateResponse)(nil), // 64: workflow.plugin.external.iac.ResourceCreateResponse + (*ResourceReadRequest)(nil), // 65: workflow.plugin.external.iac.ResourceReadRequest + (*ResourceReadResponse)(nil), // 66: workflow.plugin.external.iac.ResourceReadResponse + (*ResourceUpdateRequest)(nil), // 67: workflow.plugin.external.iac.ResourceUpdateRequest + (*ResourceUpdateResponse)(nil), // 68: workflow.plugin.external.iac.ResourceUpdateResponse + (*ResourceDeleteRequest)(nil), // 69: workflow.plugin.external.iac.ResourceDeleteRequest + (*ResourceDeleteResponse)(nil), // 70: workflow.plugin.external.iac.ResourceDeleteResponse + (*ResourceDiffRequest)(nil), // 71: workflow.plugin.external.iac.ResourceDiffRequest + (*ResourceDiffResponse)(nil), // 72: workflow.plugin.external.iac.ResourceDiffResponse + (*ResourceScaleRequest)(nil), // 73: workflow.plugin.external.iac.ResourceScaleRequest + (*ResourceScaleResponse)(nil), // 74: workflow.plugin.external.iac.ResourceScaleResponse + (*ResourceHealthCheckRequest)(nil), // 75: workflow.plugin.external.iac.ResourceHealthCheckRequest + (*ResourceHealthCheckResponse)(nil), // 76: workflow.plugin.external.iac.ResourceHealthCheckResponse + (*SensitiveKeysRequest)(nil), // 77: workflow.plugin.external.iac.SensitiveKeysRequest + (*SensitiveKeysResponse)(nil), // 78: workflow.plugin.external.iac.SensitiveKeysResponse + (*TroubleshootRequest)(nil), // 79: workflow.plugin.external.iac.TroubleshootRequest + (*TroubleshootResponse)(nil), // 80: workflow.plugin.external.iac.TroubleshootResponse + nil, // 81: workflow.plugin.external.iac.ResourceOutput.SensitiveEntry + nil, // 82: workflow.plugin.external.iac.IaCPlan.InputSnapshotEntry + nil, // 83: workflow.plugin.external.iac.ApplyResult.InitialInputSnapshotEntry + nil, // 84: workflow.plugin.external.iac.ApplyResult.ReplaceIdMapEntry + nil, // 85: workflow.plugin.external.iac.BootstrapResult.EnvVarsEntry + nil, // 86: workflow.plugin.external.iac.MigrationRepairRequest.EnvEntry + nil, // 87: workflow.plugin.external.iac.DetectDriftWithSpecsRequest.SpecsEntry + nil, // 88: workflow.plugin.external.iac.DetectDriftConfigRequest.SpecsEntry + (*timestamppb.Timestamp)(nil), // 89: google.protobuf.Timestamp +} +var file_iac_proto_depIdxs = []int32{ + 4, // 0: workflow.plugin.external.iac.ResourceSpec.hints:type_name -> workflow.plugin.external.iac.ResourceHints + 89, // 1: workflow.plugin.external.iac.ResourceState.created_at:type_name -> google.protobuf.Timestamp + 89, // 2: workflow.plugin.external.iac.ResourceState.updated_at:type_name -> google.protobuf.Timestamp + 89, // 3: workflow.plugin.external.iac.ResourceState.last_drift_check:type_name -> google.protobuf.Timestamp + 81, // 4: workflow.plugin.external.iac.ResourceOutput.sensitive:type_name -> workflow.plugin.external.iac.ResourceOutput.SensitiveEntry + 10, // 5: workflow.plugin.external.iac.DiffResult.changes:type_name -> workflow.plugin.external.iac.FieldChange + 0, // 6: workflow.plugin.external.iac.DriftResult.class:type_name -> workflow.plugin.external.iac.DriftClass + 89, // 7: workflow.plugin.external.iac.Diagnostic.at:type_name -> google.protobuf.Timestamp + 1, // 8: workflow.plugin.external.iac.PlanDiagnostic.severity:type_name -> workflow.plugin.external.iac.PlanDiagnosticSeverity + 2, // 9: workflow.plugin.external.iac.PlanAction.resource:type_name -> workflow.plugin.external.iac.ResourceSpec + 7, // 10: workflow.plugin.external.iac.PlanAction.current:type_name -> workflow.plugin.external.iac.ResourceState + 10, // 11: workflow.plugin.external.iac.PlanAction.changes:type_name -> workflow.plugin.external.iac.FieldChange + 17, // 12: workflow.plugin.external.iac.IaCPlan.actions:type_name -> workflow.plugin.external.iac.PlanAction + 89, // 13: workflow.plugin.external.iac.IaCPlan.created_at:type_name -> google.protobuf.Timestamp + 82, // 14: workflow.plugin.external.iac.IaCPlan.input_snapshot:type_name -> workflow.plugin.external.iac.IaCPlan.InputSnapshotEntry + 8, // 15: workflow.plugin.external.iac.ApplyResult.resources:type_name -> workflow.plugin.external.iac.ResourceOutput + 19, // 16: workflow.plugin.external.iac.ApplyResult.errors:type_name -> workflow.plugin.external.iac.ActionError + 83, // 17: workflow.plugin.external.iac.ApplyResult.initial_input_snapshot:type_name -> workflow.plugin.external.iac.ApplyResult.InitialInputSnapshotEntry + 13, // 18: workflow.plugin.external.iac.ApplyResult.input_drift_report:type_name -> workflow.plugin.external.iac.DriftEntry + 84, // 19: workflow.plugin.external.iac.ApplyResult.replace_id_map:type_name -> workflow.plugin.external.iac.ApplyResult.ReplaceIdMapEntry + 19, // 20: workflow.plugin.external.iac.DestroyResult.errors:type_name -> workflow.plugin.external.iac.ActionError + 85, // 21: workflow.plugin.external.iac.BootstrapResult.env_vars:type_name -> workflow.plugin.external.iac.BootstrapResult.EnvVarsEntry + 86, // 22: workflow.plugin.external.iac.MigrationRepairRequest.env:type_name -> workflow.plugin.external.iac.MigrationRepairRequest.EnvEntry + 15, // 23: workflow.plugin.external.iac.MigrationRepairResult.diagnostics:type_name -> workflow.plugin.external.iac.Diagnostic + 6, // 24: workflow.plugin.external.iac.CapabilitiesResponse.capabilities:type_name -> workflow.plugin.external.iac.IaCCapabilityDeclaration + 2, // 25: workflow.plugin.external.iac.PlanRequest.desired:type_name -> workflow.plugin.external.iac.ResourceSpec + 7, // 26: workflow.plugin.external.iac.PlanRequest.current:type_name -> workflow.plugin.external.iac.ResourceState + 18, // 27: workflow.plugin.external.iac.PlanResponse.plan:type_name -> workflow.plugin.external.iac.IaCPlan + 18, // 28: workflow.plugin.external.iac.ApplyRequest.plan:type_name -> workflow.plugin.external.iac.IaCPlan + 20, // 29: workflow.plugin.external.iac.ApplyResponse.result:type_name -> workflow.plugin.external.iac.ApplyResult + 3, // 30: workflow.plugin.external.iac.DestroyRequest.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 21, // 31: workflow.plugin.external.iac.DestroyResponse.result:type_name -> workflow.plugin.external.iac.DestroyResult + 3, // 32: workflow.plugin.external.iac.StatusRequest.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 9, // 33: workflow.plugin.external.iac.StatusResponse.statuses:type_name -> workflow.plugin.external.iac.ResourceStatus + 7, // 34: workflow.plugin.external.iac.ImportResponse.state:type_name -> workflow.plugin.external.iac.ResourceState + 4, // 35: workflow.plugin.external.iac.ResolveSizingRequest.hints:type_name -> workflow.plugin.external.iac.ResourceHints + 5, // 36: workflow.plugin.external.iac.ResolveSizingResponse.sizing:type_name -> workflow.plugin.external.iac.ProviderSizing + 22, // 37: workflow.plugin.external.iac.BootstrapStateBackendResponse.result:type_name -> workflow.plugin.external.iac.BootstrapResult + 8, // 38: workflow.plugin.external.iac.EnumerateAllResponse.outputs:type_name -> workflow.plugin.external.iac.ResourceOutput + 3, // 39: workflow.plugin.external.iac.EnumerateByTagResponse.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 3, // 40: workflow.plugin.external.iac.DetectDriftRequest.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 12, // 41: workflow.plugin.external.iac.DetectDriftResponse.drifts:type_name -> workflow.plugin.external.iac.DriftResult + 3, // 42: workflow.plugin.external.iac.DetectDriftWithSpecsRequest.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 87, // 43: workflow.plugin.external.iac.DetectDriftWithSpecsRequest.specs:type_name -> workflow.plugin.external.iac.DetectDriftWithSpecsRequest.SpecsEntry + 12, // 44: workflow.plugin.external.iac.DetectDriftWithSpecsResponse.drifts:type_name -> workflow.plugin.external.iac.DriftResult + 23, // 45: workflow.plugin.external.iac.RepairDirtyMigrationRequest.request:type_name -> workflow.plugin.external.iac.MigrationRepairRequest + 24, // 46: workflow.plugin.external.iac.RepairDirtyMigrationResponse.result:type_name -> workflow.plugin.external.iac.MigrationRepairResult + 18, // 47: workflow.plugin.external.iac.ValidatePlanRequest.plan:type_name -> workflow.plugin.external.iac.IaCPlan + 16, // 48: workflow.plugin.external.iac.ValidatePlanResponse.diagnostics:type_name -> workflow.plugin.external.iac.PlanDiagnostic + 3, // 49: workflow.plugin.external.iac.DetectDriftConfigRequest.refs:type_name -> workflow.plugin.external.iac.ResourceRef + 88, // 50: workflow.plugin.external.iac.DetectDriftConfigRequest.specs:type_name -> workflow.plugin.external.iac.DetectDriftConfigRequest.SpecsEntry + 12, // 51: workflow.plugin.external.iac.DetectDriftConfigResponse.drifts:type_name -> workflow.plugin.external.iac.DriftResult + 2, // 52: workflow.plugin.external.iac.ResourceCreateRequest.spec:type_name -> workflow.plugin.external.iac.ResourceSpec + 8, // 53: workflow.plugin.external.iac.ResourceCreateResponse.output:type_name -> workflow.plugin.external.iac.ResourceOutput + 3, // 54: workflow.plugin.external.iac.ResourceReadRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 8, // 55: workflow.plugin.external.iac.ResourceReadResponse.output:type_name -> workflow.plugin.external.iac.ResourceOutput + 3, // 56: workflow.plugin.external.iac.ResourceUpdateRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 2, // 57: workflow.plugin.external.iac.ResourceUpdateRequest.spec:type_name -> workflow.plugin.external.iac.ResourceSpec + 8, // 58: workflow.plugin.external.iac.ResourceUpdateResponse.output:type_name -> workflow.plugin.external.iac.ResourceOutput + 3, // 59: workflow.plugin.external.iac.ResourceDeleteRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 2, // 60: workflow.plugin.external.iac.ResourceDiffRequest.desired:type_name -> workflow.plugin.external.iac.ResourceSpec + 8, // 61: workflow.plugin.external.iac.ResourceDiffRequest.current:type_name -> workflow.plugin.external.iac.ResourceOutput + 11, // 62: workflow.plugin.external.iac.ResourceDiffResponse.result:type_name -> workflow.plugin.external.iac.DiffResult + 3, // 63: workflow.plugin.external.iac.ResourceScaleRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 8, // 64: workflow.plugin.external.iac.ResourceScaleResponse.output:type_name -> workflow.plugin.external.iac.ResourceOutput + 3, // 65: workflow.plugin.external.iac.ResourceHealthCheckRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 14, // 66: workflow.plugin.external.iac.ResourceHealthCheckResponse.result:type_name -> workflow.plugin.external.iac.HealthResult + 3, // 67: workflow.plugin.external.iac.TroubleshootRequest.ref:type_name -> workflow.plugin.external.iac.ResourceRef + 15, // 68: workflow.plugin.external.iac.TroubleshootResponse.diagnostics:type_name -> workflow.plugin.external.iac.Diagnostic + 2, // 69: workflow.plugin.external.iac.DetectDriftWithSpecsRequest.SpecsEntry.value:type_name -> workflow.plugin.external.iac.ResourceSpec + 2, // 70: workflow.plugin.external.iac.DetectDriftConfigRequest.SpecsEntry.value:type_name -> workflow.plugin.external.iac.ResourceSpec + 25, // 71: workflow.plugin.external.iac.IaCProviderRequired.Initialize:input_type -> workflow.plugin.external.iac.InitializeRequest + 27, // 72: workflow.plugin.external.iac.IaCProviderRequired.Name:input_type -> workflow.plugin.external.iac.NameRequest + 29, // 73: workflow.plugin.external.iac.IaCProviderRequired.Version:input_type -> workflow.plugin.external.iac.VersionRequest + 31, // 74: workflow.plugin.external.iac.IaCProviderRequired.Capabilities:input_type -> workflow.plugin.external.iac.CapabilitiesRequest + 33, // 75: workflow.plugin.external.iac.IaCProviderRequired.Plan:input_type -> workflow.plugin.external.iac.PlanRequest + 35, // 76: workflow.plugin.external.iac.IaCProviderRequired.Apply:input_type -> workflow.plugin.external.iac.ApplyRequest + 37, // 77: workflow.plugin.external.iac.IaCProviderRequired.Destroy:input_type -> workflow.plugin.external.iac.DestroyRequest + 39, // 78: workflow.plugin.external.iac.IaCProviderRequired.Status:input_type -> workflow.plugin.external.iac.StatusRequest + 41, // 79: workflow.plugin.external.iac.IaCProviderRequired.Import:input_type -> workflow.plugin.external.iac.ImportRequest + 43, // 80: workflow.plugin.external.iac.IaCProviderRequired.ResolveSizing:input_type -> workflow.plugin.external.iac.ResolveSizingRequest + 45, // 81: workflow.plugin.external.iac.IaCProviderRequired.BootstrapStateBackend:input_type -> workflow.plugin.external.iac.BootstrapStateBackendRequest + 47, // 82: workflow.plugin.external.iac.IaCProviderEnumerator.EnumerateAll:input_type -> workflow.plugin.external.iac.EnumerateAllRequest + 49, // 83: workflow.plugin.external.iac.IaCProviderEnumerator.EnumerateByTag:input_type -> workflow.plugin.external.iac.EnumerateByTagRequest + 51, // 84: workflow.plugin.external.iac.IaCProviderDriftDetector.DetectDrift:input_type -> workflow.plugin.external.iac.DetectDriftRequest + 53, // 85: workflow.plugin.external.iac.IaCProviderDriftDetector.DetectDriftWithSpecs:input_type -> workflow.plugin.external.iac.DetectDriftWithSpecsRequest + 55, // 86: workflow.plugin.external.iac.IaCProviderCredentialRevoker.RevokeProviderCredential:input_type -> workflow.plugin.external.iac.RevokeProviderCredentialRequest + 57, // 87: workflow.plugin.external.iac.IaCProviderMigrationRepairer.RepairDirtyMigration:input_type -> workflow.plugin.external.iac.RepairDirtyMigrationRequest + 59, // 88: workflow.plugin.external.iac.IaCProviderValidator.ValidatePlan:input_type -> workflow.plugin.external.iac.ValidatePlanRequest + 61, // 89: workflow.plugin.external.iac.IaCProviderDriftConfigDetector.DetectDriftConfig:input_type -> workflow.plugin.external.iac.DetectDriftConfigRequest + 63, // 90: workflow.plugin.external.iac.ResourceDriver.Create:input_type -> workflow.plugin.external.iac.ResourceCreateRequest + 65, // 91: workflow.plugin.external.iac.ResourceDriver.Read:input_type -> workflow.plugin.external.iac.ResourceReadRequest + 67, // 92: workflow.plugin.external.iac.ResourceDriver.Update:input_type -> workflow.plugin.external.iac.ResourceUpdateRequest + 69, // 93: workflow.plugin.external.iac.ResourceDriver.Delete:input_type -> workflow.plugin.external.iac.ResourceDeleteRequest + 71, // 94: workflow.plugin.external.iac.ResourceDriver.Diff:input_type -> workflow.plugin.external.iac.ResourceDiffRequest + 73, // 95: workflow.plugin.external.iac.ResourceDriver.Scale:input_type -> workflow.plugin.external.iac.ResourceScaleRequest + 75, // 96: workflow.plugin.external.iac.ResourceDriver.HealthCheck:input_type -> workflow.plugin.external.iac.ResourceHealthCheckRequest + 77, // 97: workflow.plugin.external.iac.ResourceDriver.SensitiveKeys:input_type -> workflow.plugin.external.iac.SensitiveKeysRequest + 79, // 98: workflow.plugin.external.iac.ResourceDriver.Troubleshoot:input_type -> workflow.plugin.external.iac.TroubleshootRequest + 26, // 99: workflow.plugin.external.iac.IaCProviderRequired.Initialize:output_type -> workflow.plugin.external.iac.InitializeResponse + 28, // 100: workflow.plugin.external.iac.IaCProviderRequired.Name:output_type -> workflow.plugin.external.iac.NameResponse + 30, // 101: workflow.plugin.external.iac.IaCProviderRequired.Version:output_type -> workflow.plugin.external.iac.VersionResponse + 32, // 102: workflow.plugin.external.iac.IaCProviderRequired.Capabilities:output_type -> workflow.plugin.external.iac.CapabilitiesResponse + 34, // 103: workflow.plugin.external.iac.IaCProviderRequired.Plan:output_type -> workflow.plugin.external.iac.PlanResponse + 36, // 104: workflow.plugin.external.iac.IaCProviderRequired.Apply:output_type -> workflow.plugin.external.iac.ApplyResponse + 38, // 105: workflow.plugin.external.iac.IaCProviderRequired.Destroy:output_type -> workflow.plugin.external.iac.DestroyResponse + 40, // 106: workflow.plugin.external.iac.IaCProviderRequired.Status:output_type -> workflow.plugin.external.iac.StatusResponse + 42, // 107: workflow.plugin.external.iac.IaCProviderRequired.Import:output_type -> workflow.plugin.external.iac.ImportResponse + 44, // 108: workflow.plugin.external.iac.IaCProviderRequired.ResolveSizing:output_type -> workflow.plugin.external.iac.ResolveSizingResponse + 46, // 109: workflow.plugin.external.iac.IaCProviderRequired.BootstrapStateBackend:output_type -> workflow.plugin.external.iac.BootstrapStateBackendResponse + 48, // 110: workflow.plugin.external.iac.IaCProviderEnumerator.EnumerateAll:output_type -> workflow.plugin.external.iac.EnumerateAllResponse + 50, // 111: workflow.plugin.external.iac.IaCProviderEnumerator.EnumerateByTag:output_type -> workflow.plugin.external.iac.EnumerateByTagResponse + 52, // 112: workflow.plugin.external.iac.IaCProviderDriftDetector.DetectDrift:output_type -> workflow.plugin.external.iac.DetectDriftResponse + 54, // 113: workflow.plugin.external.iac.IaCProviderDriftDetector.DetectDriftWithSpecs:output_type -> workflow.plugin.external.iac.DetectDriftWithSpecsResponse + 56, // 114: workflow.plugin.external.iac.IaCProviderCredentialRevoker.RevokeProviderCredential:output_type -> workflow.plugin.external.iac.RevokeProviderCredentialResponse + 58, // 115: workflow.plugin.external.iac.IaCProviderMigrationRepairer.RepairDirtyMigration:output_type -> workflow.plugin.external.iac.RepairDirtyMigrationResponse + 60, // 116: workflow.plugin.external.iac.IaCProviderValidator.ValidatePlan:output_type -> workflow.plugin.external.iac.ValidatePlanResponse + 62, // 117: workflow.plugin.external.iac.IaCProviderDriftConfigDetector.DetectDriftConfig:output_type -> workflow.plugin.external.iac.DetectDriftConfigResponse + 64, // 118: workflow.plugin.external.iac.ResourceDriver.Create:output_type -> workflow.plugin.external.iac.ResourceCreateResponse + 66, // 119: workflow.plugin.external.iac.ResourceDriver.Read:output_type -> workflow.plugin.external.iac.ResourceReadResponse + 68, // 120: workflow.plugin.external.iac.ResourceDriver.Update:output_type -> workflow.plugin.external.iac.ResourceUpdateResponse + 70, // 121: workflow.plugin.external.iac.ResourceDriver.Delete:output_type -> workflow.plugin.external.iac.ResourceDeleteResponse + 72, // 122: workflow.plugin.external.iac.ResourceDriver.Diff:output_type -> workflow.plugin.external.iac.ResourceDiffResponse + 74, // 123: workflow.plugin.external.iac.ResourceDriver.Scale:output_type -> workflow.plugin.external.iac.ResourceScaleResponse + 76, // 124: workflow.plugin.external.iac.ResourceDriver.HealthCheck:output_type -> workflow.plugin.external.iac.ResourceHealthCheckResponse + 78, // 125: workflow.plugin.external.iac.ResourceDriver.SensitiveKeys:output_type -> workflow.plugin.external.iac.SensitiveKeysResponse + 80, // 126: workflow.plugin.external.iac.ResourceDriver.Troubleshoot:output_type -> workflow.plugin.external.iac.TroubleshootResponse + 99, // [99:127] is the sub-list for method output_type + 71, // [71:99] is the sub-list for method input_type + 71, // [71:71] is the sub-list for extension type_name + 71, // [71:71] is the sub-list for extension extendee + 0, // [0:71] is the sub-list for field type_name +} + +func init() { file_iac_proto_init() } +func file_iac_proto_init() { + if File_iac_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_iac_proto_rawDesc), len(file_iac_proto_rawDesc)), + NumEnums: 2, + NumMessages: 87, + NumExtensions: 0, + NumServices: 8, + }, + GoTypes: file_iac_proto_goTypes, + DependencyIndexes: file_iac_proto_depIdxs, + EnumInfos: file_iac_proto_enumTypes, + MessageInfos: file_iac_proto_msgTypes, + }.Build() + File_iac_proto = out.File + file_iac_proto_goTypes = nil + file_iac_proto_depIdxs = nil +} diff --git a/plugin/external/proto/iac.proto b/plugin/external/proto/iac.proto new file mode 100644 index 00000000..b6d6a110 --- /dev/null +++ b/plugin/external/proto/iac.proto @@ -0,0 +1,584 @@ +// iac.proto — typed gRPC contract for IaCProvider + ResourceDriver plugins. +// +// Design: docs/plans/2026-05-10-strict-contracts-force-cutover-design.md +// Plan: docs/plans/2026-05-10-strict-contracts-force-cutover.md (Task 3) +// +// Hard invariants (per cycle 4 §Acceptance criteria): +// - NO google.protobuf.Struct, NO google.protobuf.Any used in any message. +// - Free-form per-resource Config / Outputs payloads cross the wire as +// bytes _json, JSON-encoded by the plugin/host. The plugin owns +// the serialization shape; the proto layer carries opaque bytes. +// - ResourceOutput.sensitive uses typed map (NOT structpb). +// - REQUIRED service: every method must be implemented by every plugin. +// Compile fails on the SDK type-assert if a method is missing. +// - OPTIONAL services: providers register only the services they support. +// Absence of registration IS the negative signal — no NotSupported flag. +syntax = "proto3"; + +package workflow.plugin.external.iac; + +option go_package = "github.com/GoCodeAlone/workflow/plugin/external/proto;proto"; + +import "google/protobuf/timestamp.proto"; + +// ───────────────────────────────────────────────────────────────────────────── +// REQUIRED service — every IaC provider MUST implement every RPC. +// Go compiler enforces full interface satisfaction at the SDK type-assert. +// ───────────────────────────────────────────────────────────────────────────── +service IaCProviderRequired { + rpc Initialize(InitializeRequest) returns (InitializeResponse); + rpc Name(NameRequest) returns (NameResponse); + rpc Version(VersionRequest) returns (VersionResponse); + rpc Capabilities(CapabilitiesRequest) returns (CapabilitiesResponse); + rpc Plan(PlanRequest) returns (PlanResponse); + rpc Apply(ApplyRequest) returns (ApplyResponse); + rpc Destroy(DestroyRequest) returns (DestroyResponse); + rpc Status(StatusRequest) returns (StatusResponse); + rpc Import(ImportRequest) returns (ImportResponse); + rpc ResolveSizing(ResolveSizingRequest) returns (ResolveSizingResponse); + rpc BootstrapStateBackend(BootstrapStateBackendRequest) returns (BootstrapStateBackendResponse); +} + +// ───────────────────────────────────────────────────────────────────────────── +// OPTIONAL services — providers register only the services they implement. +// wfctl checks at handle-open which optional services are registered via +// the existing ContractRegistry RPC. The absence of a registration is the +// negative signal; there is no NotSupported field on any optional response. +// ───────────────────────────────────────────────────────────────────────────── +service IaCProviderEnumerator { + rpc EnumerateAll(EnumerateAllRequest) returns (EnumerateAllResponse); + rpc EnumerateByTag(EnumerateByTagRequest) returns (EnumerateByTagResponse); +} + +service IaCProviderDriftDetector { + rpc DetectDrift(DetectDriftRequest) returns (DetectDriftResponse); + rpc DetectDriftWithSpecs(DetectDriftWithSpecsRequest) returns (DetectDriftWithSpecsResponse); +} + +service IaCProviderCredentialRevoker { + rpc RevokeProviderCredential(RevokeProviderCredentialRequest) returns (RevokeProviderCredentialResponse); +} + +service IaCProviderMigrationRepairer { + rpc RepairDirtyMigration(RepairDirtyMigrationRequest) returns (RepairDirtyMigrationResponse); +} + +service IaCProviderValidator { + rpc ValidatePlan(ValidatePlanRequest) returns (ValidatePlanResponse); +} + +service IaCProviderDriftConfigDetector { + rpc DetectDriftConfig(DetectDriftConfigRequest) returns (DetectDriftConfigResponse); +} + +// ───────────────────────────────────────────────────────────────────────────── +// ResourceDriver — separate gRPC service for per-resource-type CRUD dispatch. +// The driver instance is identified by (resource_type) carried on every RPC. +// ───────────────────────────────────────────────────────────────────────────── +service ResourceDriver { + rpc Create(ResourceCreateRequest) returns (ResourceCreateResponse); + rpc Read(ResourceReadRequest) returns (ResourceReadResponse); + rpc Update(ResourceUpdateRequest) returns (ResourceUpdateResponse); + rpc Delete(ResourceDeleteRequest) returns (ResourceDeleteResponse); + rpc Diff(ResourceDiffRequest) returns (ResourceDiffResponse); + rpc Scale(ResourceScaleRequest) returns (ResourceScaleResponse); + rpc HealthCheck(ResourceHealthCheckRequest) returns (ResourceHealthCheckResponse); + rpc SensitiveKeys(SensitiveKeysRequest) returns (SensitiveKeysResponse); + rpc Troubleshoot(TroubleshootRequest) returns (TroubleshootResponse); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Common typed messages. +// +// JSON-bytes fields (config_json, outputs_json, applied_config_json, +// old_json, new_json) carry provider-specific free-form payloads that +// cannot be statically typed at the engine boundary. They are the +// strict-contract replacement for *structpb.Struct: the plugin owns +// json.Marshal/Unmarshal directly, eliminating the structpb conversion +// surface that previously dropped map[string]bool entries silently +// (T3.9 runtime-launch-validation finding). +// ───────────────────────────────────────────────────────────────────────────── + +// ResourceSpec mirrors interfaces.ResourceSpec. +message ResourceSpec { + string name = 1; + string type = 2; + // config_json is a JSON-encoded map[string]any of provider-specific + // configuration. Plugins parse it with encoding/json. + bytes config_json = 3; + string size = 4; // interfaces.Size string ("xs","s","m","l","xl") + ResourceHints hints = 5; + repeated string depends_on = 6; +} + +// ResourceRef mirrors interfaces.ResourceRef. +message ResourceRef { + string name = 1; + string type = 2; + string provider_id = 3; +} + +// ResourceHints mirrors interfaces.ResourceHints. +message ResourceHints { + string cpu = 1; + string memory = 2; + string storage = 3; +} + +// ProviderSizing mirrors interfaces.ProviderSizing. +message ProviderSizing { + string instance_type = 1; + bytes specs_json = 2; // JSON-encoded map[string]any of provider-specific specs +} + +// IaCCapabilityDeclaration mirrors interfaces.IaCCapabilityDeclaration. +message IaCCapabilityDeclaration { + string resource_type = 1; + int32 tier = 2; + repeated string operations = 3; +} + +// ResourceState mirrors interfaces.ResourceState. The on-disk JSON state +// file format is unchanged across the cutover (per design §State-file +// compat invariant); this proto carries the in-flight RPC representation. +message ResourceState { + string id = 1; + string name = 2; + string type = 3; + string provider = 4; + string provider_ref = 5; + string provider_id = 6; + string config_hash = 7; + // applied_config_json is the JSON-encoded map[string]any. + bytes applied_config_json = 8; + // applied_config_source: "" | "apply" | "adoption" (provenance discriminator). + string applied_config_source = 9; + // outputs_json is the JSON-encoded map[string]any. + bytes outputs_json = 10; + repeated string dependencies = 11; + google.protobuf.Timestamp created_at = 12; + google.protobuf.Timestamp updated_at = 13; + google.protobuf.Timestamp last_drift_check = 14; +} + +// ResourceOutput mirrors interfaces.ResourceOutput. The sensitive map is +// typed map per the design — the structpb roundtrip that +// previously dropped this map silently is eliminated. +message ResourceOutput { + string name = 1; + string type = 2; + string provider_id = 3; + // outputs_json is the JSON-encoded map[string]any of provider-emitted + // fields (IPs, endpoints, connection strings, etc.). + bytes outputs_json = 4; + map sensitive = 5; + string status = 6; +} + +// ResourceStatus mirrors interfaces.ResourceStatus. +message ResourceStatus { + string name = 1; + string type = 2; + string provider_id = 3; + string status = 4; // running | stopped | degraded | unknown + bytes outputs_json = 5; +} + +// FieldChange mirrors interfaces.FieldChange. +message FieldChange { + string path = 1; + // old_json / new_json carry arbitrary scalar/map/list values JSON-encoded. + bytes old_json = 2; + bytes new_json = 3; + bool force_new = 4; +} + +// DiffResult mirrors interfaces.DiffResult. +message DiffResult { + bool needs_update = 1; + bool needs_replace = 2; + repeated FieldChange changes = 3; +} + +// DriftClass mirrors interfaces.DriftClass. +// +// Wire-stable enum (int32). Translation table to interfaces.DriftClass (string): +// DRIFT_CLASS_UNKNOWN ↔ "" (DriftClassUnknown zero value) +// DRIFT_CLASS_IN_SYNC ↔ "in-sync" +// DRIFT_CLASS_GHOST ↔ "ghost" +// DRIFT_CLASS_CONFIG ↔ "config" +// Plugin/host MUST translate at the marshal boundary; missed translation +// silently coerces all values to UNKNOWN. +enum DriftClass { + DRIFT_CLASS_UNKNOWN = 0; + DRIFT_CLASS_IN_SYNC = 1; + DRIFT_CLASS_GHOST = 2; + DRIFT_CLASS_CONFIG = 3; +} + +// DriftResult mirrors interfaces.DriftResult. +message DriftResult { + string name = 1; + string type = 2; + bool drifted = 3; + DriftClass class = 4; + bytes expected_json = 5; // JSON-encoded map[string]any + bytes actual_json = 6; // JSON-encoded map[string]any + repeated string fields = 7; +} + +// DriftEntry mirrors interfaces.DriftEntry. +message DriftEntry { + string name = 1; + string plan_fingerprint = 2; + string apply_fingerprint = 3; +} + +// HealthResult mirrors interfaces.HealthResult. +message HealthResult { + bool healthy = 1; + string message = 2; +} + +// Diagnostic mirrors interfaces.Diagnostic (Troubleshooter type). +message Diagnostic { + string id = 1; + string phase = 2; + string cause = 3; + google.protobuf.Timestamp at = 4; + string detail = 5; +} + +// PlanDiagnosticSeverity mirrors interfaces.PlanDiagnosticSeverity. +// Wire ordering matches the Go iota: INFO=0, WARNING=1, ERROR=2. +enum PlanDiagnosticSeverity { + PLAN_DIAGNOSTIC_INFO = 0; + PLAN_DIAGNOSTIC_WARNING = 1; + PLAN_DIAGNOSTIC_ERROR = 2; +} + +// PlanDiagnostic mirrors interfaces.PlanDiagnostic. +message PlanDiagnostic { + PlanDiagnosticSeverity severity = 1; + string resource = 2; + string field = 3; + string message = 4; +} + +// PlanAction mirrors interfaces.PlanAction. +message PlanAction { + string action = 1; // create | update | replace | delete + ResourceSpec resource = 2; + ResourceState current = 3; + repeated FieldChange changes = 4; + string resolved_config_hash = 5; +} + +// IaCPlan mirrors interfaces.IaCPlan. +message IaCPlan { + string id = 1; + repeated PlanAction actions = 2; + google.protobuf.Timestamp created_at = 3; + string desired_hash = 4; + int32 schema_version = 5; + map input_snapshot = 6; +} + +// ActionError mirrors interfaces.ActionError. +message ActionError { + string resource = 1; + string action = 2; + string error = 3; +} + +// ApplyResult mirrors interfaces.ApplyResult. +message ApplyResult { + string plan_id = 1; + repeated ResourceOutput resources = 2; + repeated ActionError errors = 3; + map initial_input_snapshot = 4; + repeated DriftEntry input_drift_report = 5; + map replace_id_map = 6; +} + +// DestroyResult mirrors interfaces.DestroyResult. +message DestroyResult { + repeated string destroyed = 1; + repeated ActionError errors = 2; +} + +// BootstrapResult mirrors interfaces.BootstrapResult. +message BootstrapResult { + string bucket = 1; + string region = 2; + string endpoint = 3; + map env_vars = 4; +} + +// MigrationRepairRequest mirrors interfaces.MigrationRepairRequest. +message MigrationRepairRequest { + string app_resource_name = 1; + string database_resource_name = 2; + string job_image = 3; + string source_dir = 4; + string expected_dirty_version = 5; + string force_version = 6; + bool then_up = 7; + bool up_if_clean = 8; + // confirm_force MUST equal interfaces.MigrationRepairConfirmation + // ("FORCE_MIGRATION_METADATA"); the plugin re-validates server-side. + string confirm_force = 9; + map env = 10; + int32 timeout_seconds = 11; +} + +// MigrationRepairResult mirrors interfaces.MigrationRepairResult. +message MigrationRepairResult { + string provider_job_id = 1; + // status is one of MigrationRepairStatusSucceeded / Failed / + // ApprovalRequired / Unsupported (interfaces/migration_repair.go). + string status = 2; + repeated string applied = 3; + string logs = 4; + repeated Diagnostic diagnostics = 5; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderRequired request/response messages. +// ───────────────────────────────────────────────────────────────────────────── + +message InitializeRequest { + // config_json is the JSON-encoded provider-config map[string]any. + bytes config_json = 1; +} +message InitializeResponse {} + +message NameRequest {} +message NameResponse { + string name = 1; +} + +message VersionRequest {} +message VersionResponse { + string version = 1; +} + +message CapabilitiesRequest {} +message CapabilitiesResponse { + repeated IaCCapabilityDeclaration capabilities = 1; +} + +message PlanRequest { + repeated ResourceSpec desired = 1; + repeated ResourceState current = 2; +} +message PlanResponse { + IaCPlan plan = 1; +} + +message ApplyRequest { + IaCPlan plan = 1; +} +message ApplyResponse { + ApplyResult result = 1; +} + +message DestroyRequest { + repeated ResourceRef refs = 1; +} +message DestroyResponse { + DestroyResult result = 1; +} + +message StatusRequest { + repeated ResourceRef refs = 1; +} +message StatusResponse { + repeated ResourceStatus statuses = 1; +} + +message ImportRequest { + string provider_id = 1; + string resource_type = 2; +} +message ImportResponse { + ResourceState state = 1; +} + +message ResolveSizingRequest { + string resource_type = 1; + string size = 2; // interfaces.Size string + ResourceHints hints = 3; +} +message ResolveSizingResponse { + ProviderSizing sizing = 1; +} + +message BootstrapStateBackendRequest { + // config_json is the JSON-encoded iac.state module config map[string]any. + bytes config_json = 1; +} +message BootstrapStateBackendResponse { + BootstrapResult result = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderEnumerator messages. +// ───────────────────────────────────────────────────────────────────────────── +message EnumerateAllRequest { + string resource_type = 1; +} +message EnumerateAllResponse { + repeated ResourceOutput outputs = 1; +} + +message EnumerateByTagRequest { + string tag = 1; +} +message EnumerateByTagResponse { + repeated ResourceRef refs = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderDriftDetector messages. +// ───────────────────────────────────────────────────────────────────────────── +message DetectDriftRequest { + repeated ResourceRef refs = 1; +} +message DetectDriftResponse { + repeated DriftResult drifts = 1; +} + +message DetectDriftWithSpecsRequest { + repeated ResourceRef refs = 1; + // specs is keyed by ResourceRef.Name (matches ResourceState.Name) per the + // Go DriftConfigDetector.DetectDriftWithSpecs contract. + map specs = 2; +} +message DetectDriftWithSpecsResponse { + repeated DriftResult drifts = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderCredentialRevoker messages. +// ───────────────────────────────────────────────────────────────────────────── +message RevokeProviderCredentialRequest { + // source is the provider_credential source string (e.g. "digitalocean.spaces"). + string source = 1; + // credential_id is the provider-specific identifier of the OLD credential. + string credential_id = 2; +} +message RevokeProviderCredentialResponse {} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderMigrationRepairer messages. +// ───────────────────────────────────────────────────────────────────────────── +message RepairDirtyMigrationRequest { + MigrationRepairRequest request = 1; +} +message RepairDirtyMigrationResponse { + MigrationRepairResult result = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderValidator messages. +// ───────────────────────────────────────────────────────────────────────────── +message ValidatePlanRequest { + IaCPlan plan = 1; +} +message ValidatePlanResponse { + repeated PlanDiagnostic diagnostics = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// IaCProviderDriftConfigDetector messages. +// Mirrors the existing interfaces.DriftConfigDetector.DetectDriftWithSpecs +// contract: refs + per-ref applied-config specs → drift classifications. +// Carried as a separate optional service per design §Optional services. +// ───────────────────────────────────────────────────────────────────────────── +message DetectDriftConfigRequest { + repeated ResourceRef refs = 1; + map specs = 2; +} +message DetectDriftConfigResponse { + repeated DriftResult drifts = 1; +} + +// ───────────────────────────────────────────────────────────────────────────── +// ResourceDriver request/response messages. +// Each request carries resource_type so a single ResourceDriver server can +// dispatch to the per-type driver implementation (matches DO plugin's +// 14-driver type-routing pattern in Task 11). +// ───────────────────────────────────────────────────────────────────────────── +message ResourceCreateRequest { + string resource_type = 1; + ResourceSpec spec = 2; +} +message ResourceCreateResponse { + ResourceOutput output = 1; +} + +message ResourceReadRequest { + string resource_type = 1; + ResourceRef ref = 2; +} +message ResourceReadResponse { + ResourceOutput output = 1; +} + +message ResourceUpdateRequest { + string resource_type = 1; + ResourceRef ref = 2; + ResourceSpec spec = 3; +} +message ResourceUpdateResponse { + ResourceOutput output = 1; +} + +message ResourceDeleteRequest { + string resource_type = 1; + ResourceRef ref = 2; +} +message ResourceDeleteResponse {} + +message ResourceDiffRequest { + string resource_type = 1; + ResourceSpec desired = 2; + ResourceOutput current = 3; +} +message ResourceDiffResponse { + DiffResult result = 1; +} + +message ResourceScaleRequest { + string resource_type = 1; + ResourceRef ref = 2; + int32 replicas = 3; +} +message ResourceScaleResponse { + ResourceOutput output = 1; +} + +message ResourceHealthCheckRequest { + string resource_type = 1; + ResourceRef ref = 2; +} +message ResourceHealthCheckResponse { + HealthResult result = 1; +} + +message SensitiveKeysRequest { + string resource_type = 1; +} +message SensitiveKeysResponse { + repeated string keys = 1; +} + +message TroubleshootRequest { + string resource_type = 1; + ResourceRef ref = 2; + string failure_msg = 3; +} +message TroubleshootResponse { + repeated Diagnostic diagnostics = 1; +} diff --git a/plugin/external/proto/iac_grpc.pb.go b/plugin/external/proto/iac_grpc.pb.go new file mode 100644 index 00000000..aaa61c77 --- /dev/null +++ b/plugin/external/proto/iac_grpc.pb.go @@ -0,0 +1,1649 @@ +// iac.proto — typed gRPC contract for IaCProvider + ResourceDriver plugins. +// +// Design: docs/plans/2026-05-10-strict-contracts-force-cutover-design.md +// Plan: docs/plans/2026-05-10-strict-contracts-force-cutover.md (Task 3) +// +// Hard invariants (per cycle 4 §Acceptance criteria): +// - NO google.protobuf.Struct, NO google.protobuf.Any used in any message. +// - Free-form per-resource Config / Outputs payloads cross the wire as +// bytes _json, JSON-encoded by the plugin/host. The plugin owns +// the serialization shape; the proto layer carries opaque bytes. +// - ResourceOutput.sensitive uses typed map (NOT structpb). +// - REQUIRED service: every method must be implemented by every plugin. +// Compile fails on the SDK type-assert if a method is missing. +// - OPTIONAL services: providers register only the services they support. +// Absence of registration IS the negative signal — no NotSupported flag. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.6.1 +// - protoc (unknown) +// source: iac.proto + +package proto + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + IaCProviderRequired_Initialize_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Initialize" + IaCProviderRequired_Name_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Name" + IaCProviderRequired_Version_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Version" + IaCProviderRequired_Capabilities_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Capabilities" + IaCProviderRequired_Plan_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Plan" + IaCProviderRequired_Apply_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Apply" + IaCProviderRequired_Destroy_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Destroy" + IaCProviderRequired_Status_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Status" + IaCProviderRequired_Import_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/Import" + IaCProviderRequired_ResolveSizing_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/ResolveSizing" + IaCProviderRequired_BootstrapStateBackend_FullMethodName = "/workflow.plugin.external.iac.IaCProviderRequired/BootstrapStateBackend" +) + +// IaCProviderRequiredClient is the client API for IaCProviderRequired service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// ───────────────────────────────────────────────────────────────────────────── +// REQUIRED service — every IaC provider MUST implement every RPC. +// Go compiler enforces full interface satisfaction at the SDK type-assert. +// ───────────────────────────────────────────────────────────────────────────── +type IaCProviderRequiredClient interface { + Initialize(ctx context.Context, in *InitializeRequest, opts ...grpc.CallOption) (*InitializeResponse, error) + Name(ctx context.Context, in *NameRequest, opts ...grpc.CallOption) (*NameResponse, error) + Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) + Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error) + Plan(ctx context.Context, in *PlanRequest, opts ...grpc.CallOption) (*PlanResponse, error) + Apply(ctx context.Context, in *ApplyRequest, opts ...grpc.CallOption) (*ApplyResponse, error) + Destroy(ctx context.Context, in *DestroyRequest, opts ...grpc.CallOption) (*DestroyResponse, error) + Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) + Import(ctx context.Context, in *ImportRequest, opts ...grpc.CallOption) (*ImportResponse, error) + ResolveSizing(ctx context.Context, in *ResolveSizingRequest, opts ...grpc.CallOption) (*ResolveSizingResponse, error) + BootstrapStateBackend(ctx context.Context, in *BootstrapStateBackendRequest, opts ...grpc.CallOption) (*BootstrapStateBackendResponse, error) +} + +type iaCProviderRequiredClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderRequiredClient(cc grpc.ClientConnInterface) IaCProviderRequiredClient { + return &iaCProviderRequiredClient{cc} +} + +func (c *iaCProviderRequiredClient) Initialize(ctx context.Context, in *InitializeRequest, opts ...grpc.CallOption) (*InitializeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(InitializeResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Initialize_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Name(ctx context.Context, in *NameRequest, opts ...grpc.CallOption) (*NameResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(NameResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Name_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(VersionResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Version_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CapabilitiesResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Capabilities_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Plan(ctx context.Context, in *PlanRequest, opts ...grpc.CallOption) (*PlanResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PlanResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Plan_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Apply(ctx context.Context, in *ApplyRequest, opts ...grpc.CallOption) (*ApplyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ApplyResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Apply_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Destroy(ctx context.Context, in *DestroyRequest, opts ...grpc.CallOption) (*DestroyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DestroyResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Destroy_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(StatusResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Status_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) Import(ctx context.Context, in *ImportRequest, opts ...grpc.CallOption) (*ImportResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ImportResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_Import_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) ResolveSizing(ctx context.Context, in *ResolveSizingRequest, opts ...grpc.CallOption) (*ResolveSizingResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResolveSizingResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_ResolveSizing_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderRequiredClient) BootstrapStateBackend(ctx context.Context, in *BootstrapStateBackendRequest, opts ...grpc.CallOption) (*BootstrapStateBackendResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BootstrapStateBackendResponse) + err := c.cc.Invoke(ctx, IaCProviderRequired_BootstrapStateBackend_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderRequiredServer is the server API for IaCProviderRequired service. +// All implementations must embed UnimplementedIaCProviderRequiredServer +// for forward compatibility. +// +// ───────────────────────────────────────────────────────────────────────────── +// REQUIRED service — every IaC provider MUST implement every RPC. +// Go compiler enforces full interface satisfaction at the SDK type-assert. +// ───────────────────────────────────────────────────────────────────────────── +type IaCProviderRequiredServer interface { + Initialize(context.Context, *InitializeRequest) (*InitializeResponse, error) + Name(context.Context, *NameRequest) (*NameResponse, error) + Version(context.Context, *VersionRequest) (*VersionResponse, error) + Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error) + Plan(context.Context, *PlanRequest) (*PlanResponse, error) + Apply(context.Context, *ApplyRequest) (*ApplyResponse, error) + Destroy(context.Context, *DestroyRequest) (*DestroyResponse, error) + Status(context.Context, *StatusRequest) (*StatusResponse, error) + Import(context.Context, *ImportRequest) (*ImportResponse, error) + ResolveSizing(context.Context, *ResolveSizingRequest) (*ResolveSizingResponse, error) + BootstrapStateBackend(context.Context, *BootstrapStateBackendRequest) (*BootstrapStateBackendResponse, error) + mustEmbedUnimplementedIaCProviderRequiredServer() +} + +// UnimplementedIaCProviderRequiredServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderRequiredServer struct{} + +func (UnimplementedIaCProviderRequiredServer) Initialize(context.Context, *InitializeRequest) (*InitializeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Initialize not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Name(context.Context, *NameRequest) (*NameResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Name not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Version(context.Context, *VersionRequest) (*VersionResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Capabilities not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Plan(context.Context, *PlanRequest) (*PlanResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Plan not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Apply(context.Context, *ApplyRequest) (*ApplyResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Apply not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Destroy(context.Context, *DestroyRequest) (*DestroyResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Destroy not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Status(context.Context, *StatusRequest) (*StatusResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Status not implemented") +} +func (UnimplementedIaCProviderRequiredServer) Import(context.Context, *ImportRequest) (*ImportResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Import not implemented") +} +func (UnimplementedIaCProviderRequiredServer) ResolveSizing(context.Context, *ResolveSizingRequest) (*ResolveSizingResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ResolveSizing not implemented") +} +func (UnimplementedIaCProviderRequiredServer) BootstrapStateBackend(context.Context, *BootstrapStateBackendRequest) (*BootstrapStateBackendResponse, error) { + return nil, status.Error(codes.Unimplemented, "method BootstrapStateBackend not implemented") +} +func (UnimplementedIaCProviderRequiredServer) mustEmbedUnimplementedIaCProviderRequiredServer() {} +func (UnimplementedIaCProviderRequiredServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderRequiredServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderRequiredServer will +// result in compilation errors. +type UnsafeIaCProviderRequiredServer interface { + mustEmbedUnimplementedIaCProviderRequiredServer() +} + +func RegisterIaCProviderRequiredServer(s grpc.ServiceRegistrar, srv IaCProviderRequiredServer) { + // If the following call panics, it indicates UnimplementedIaCProviderRequiredServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderRequired_ServiceDesc, srv) +} + +func _IaCProviderRequired_Initialize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InitializeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Initialize(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Initialize_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Initialize(ctx, req.(*InitializeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Name_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Name(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Name_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Name(ctx, req.(*NameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Version_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Version(ctx, req.(*VersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Capabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Capabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Capabilities_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Capabilities(ctx, req.(*CapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Plan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PlanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Plan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Plan_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Plan(ctx, req.(*PlanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Apply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ApplyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Apply(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Apply_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Apply(ctx, req.(*ApplyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Destroy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DestroyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Destroy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Destroy_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Destroy(ctx, req.(*DestroyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Status(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Status_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Status(ctx, req.(*StatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_Import_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).Import(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_Import_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).Import(ctx, req.(*ImportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_ResolveSizing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResolveSizingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).ResolveSizing(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_ResolveSizing_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).ResolveSizing(ctx, req.(*ResolveSizingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderRequired_BootstrapStateBackend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BootstrapStateBackendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderRequiredServer).BootstrapStateBackend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderRequired_BootstrapStateBackend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderRequiredServer).BootstrapStateBackend(ctx, req.(*BootstrapStateBackendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderRequired_ServiceDesc is the grpc.ServiceDesc for IaCProviderRequired service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderRequired_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderRequired", + HandlerType: (*IaCProviderRequiredServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Initialize", + Handler: _IaCProviderRequired_Initialize_Handler, + }, + { + MethodName: "Name", + Handler: _IaCProviderRequired_Name_Handler, + }, + { + MethodName: "Version", + Handler: _IaCProviderRequired_Version_Handler, + }, + { + MethodName: "Capabilities", + Handler: _IaCProviderRequired_Capabilities_Handler, + }, + { + MethodName: "Plan", + Handler: _IaCProviderRequired_Plan_Handler, + }, + { + MethodName: "Apply", + Handler: _IaCProviderRequired_Apply_Handler, + }, + { + MethodName: "Destroy", + Handler: _IaCProviderRequired_Destroy_Handler, + }, + { + MethodName: "Status", + Handler: _IaCProviderRequired_Status_Handler, + }, + { + MethodName: "Import", + Handler: _IaCProviderRequired_Import_Handler, + }, + { + MethodName: "ResolveSizing", + Handler: _IaCProviderRequired_ResolveSizing_Handler, + }, + { + MethodName: "BootstrapStateBackend", + Handler: _IaCProviderRequired_BootstrapStateBackend_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderEnumerator_EnumerateAll_FullMethodName = "/workflow.plugin.external.iac.IaCProviderEnumerator/EnumerateAll" + IaCProviderEnumerator_EnumerateByTag_FullMethodName = "/workflow.plugin.external.iac.IaCProviderEnumerator/EnumerateByTag" +) + +// IaCProviderEnumeratorClient is the client API for IaCProviderEnumerator service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// ───────────────────────────────────────────────────────────────────────────── +// OPTIONAL services — providers register only the services they implement. +// wfctl checks at handle-open which optional services are registered via +// the existing ContractRegistry RPC. The absence of a registration is the +// negative signal; there is no NotSupported field on any optional response. +// ───────────────────────────────────────────────────────────────────────────── +type IaCProviderEnumeratorClient interface { + EnumerateAll(ctx context.Context, in *EnumerateAllRequest, opts ...grpc.CallOption) (*EnumerateAllResponse, error) + EnumerateByTag(ctx context.Context, in *EnumerateByTagRequest, opts ...grpc.CallOption) (*EnumerateByTagResponse, error) +} + +type iaCProviderEnumeratorClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderEnumeratorClient(cc grpc.ClientConnInterface) IaCProviderEnumeratorClient { + return &iaCProviderEnumeratorClient{cc} +} + +func (c *iaCProviderEnumeratorClient) EnumerateAll(ctx context.Context, in *EnumerateAllRequest, opts ...grpc.CallOption) (*EnumerateAllResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(EnumerateAllResponse) + err := c.cc.Invoke(ctx, IaCProviderEnumerator_EnumerateAll_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderEnumeratorClient) EnumerateByTag(ctx context.Context, in *EnumerateByTagRequest, opts ...grpc.CallOption) (*EnumerateByTagResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(EnumerateByTagResponse) + err := c.cc.Invoke(ctx, IaCProviderEnumerator_EnumerateByTag_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderEnumeratorServer is the server API for IaCProviderEnumerator service. +// All implementations must embed UnimplementedIaCProviderEnumeratorServer +// for forward compatibility. +// +// ───────────────────────────────────────────────────────────────────────────── +// OPTIONAL services — providers register only the services they implement. +// wfctl checks at handle-open which optional services are registered via +// the existing ContractRegistry RPC. The absence of a registration is the +// negative signal; there is no NotSupported field on any optional response. +// ───────────────────────────────────────────────────────────────────────────── +type IaCProviderEnumeratorServer interface { + EnumerateAll(context.Context, *EnumerateAllRequest) (*EnumerateAllResponse, error) + EnumerateByTag(context.Context, *EnumerateByTagRequest) (*EnumerateByTagResponse, error) + mustEmbedUnimplementedIaCProviderEnumeratorServer() +} + +// UnimplementedIaCProviderEnumeratorServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderEnumeratorServer struct{} + +func (UnimplementedIaCProviderEnumeratorServer) EnumerateAll(context.Context, *EnumerateAllRequest) (*EnumerateAllResponse, error) { + return nil, status.Error(codes.Unimplemented, "method EnumerateAll not implemented") +} +func (UnimplementedIaCProviderEnumeratorServer) EnumerateByTag(context.Context, *EnumerateByTagRequest) (*EnumerateByTagResponse, error) { + return nil, status.Error(codes.Unimplemented, "method EnumerateByTag not implemented") +} +func (UnimplementedIaCProviderEnumeratorServer) mustEmbedUnimplementedIaCProviderEnumeratorServer() {} +func (UnimplementedIaCProviderEnumeratorServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderEnumeratorServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderEnumeratorServer will +// result in compilation errors. +type UnsafeIaCProviderEnumeratorServer interface { + mustEmbedUnimplementedIaCProviderEnumeratorServer() +} + +func RegisterIaCProviderEnumeratorServer(s grpc.ServiceRegistrar, srv IaCProviderEnumeratorServer) { + // If the following call panics, it indicates UnimplementedIaCProviderEnumeratorServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderEnumerator_ServiceDesc, srv) +} + +func _IaCProviderEnumerator_EnumerateAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnumerateAllRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderEnumeratorServer).EnumerateAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderEnumerator_EnumerateAll_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderEnumeratorServer).EnumerateAll(ctx, req.(*EnumerateAllRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderEnumerator_EnumerateByTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnumerateByTagRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderEnumeratorServer).EnumerateByTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderEnumerator_EnumerateByTag_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderEnumeratorServer).EnumerateByTag(ctx, req.(*EnumerateByTagRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderEnumerator_ServiceDesc is the grpc.ServiceDesc for IaCProviderEnumerator service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderEnumerator_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderEnumerator", + HandlerType: (*IaCProviderEnumeratorServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "EnumerateAll", + Handler: _IaCProviderEnumerator_EnumerateAll_Handler, + }, + { + MethodName: "EnumerateByTag", + Handler: _IaCProviderEnumerator_EnumerateByTag_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderDriftDetector_DetectDrift_FullMethodName = "/workflow.plugin.external.iac.IaCProviderDriftDetector/DetectDrift" + IaCProviderDriftDetector_DetectDriftWithSpecs_FullMethodName = "/workflow.plugin.external.iac.IaCProviderDriftDetector/DetectDriftWithSpecs" +) + +// IaCProviderDriftDetectorClient is the client API for IaCProviderDriftDetector service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IaCProviderDriftDetectorClient interface { + DetectDrift(ctx context.Context, in *DetectDriftRequest, opts ...grpc.CallOption) (*DetectDriftResponse, error) + DetectDriftWithSpecs(ctx context.Context, in *DetectDriftWithSpecsRequest, opts ...grpc.CallOption) (*DetectDriftWithSpecsResponse, error) +} + +type iaCProviderDriftDetectorClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderDriftDetectorClient(cc grpc.ClientConnInterface) IaCProviderDriftDetectorClient { + return &iaCProviderDriftDetectorClient{cc} +} + +func (c *iaCProviderDriftDetectorClient) DetectDrift(ctx context.Context, in *DetectDriftRequest, opts ...grpc.CallOption) (*DetectDriftResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DetectDriftResponse) + err := c.cc.Invoke(ctx, IaCProviderDriftDetector_DetectDrift_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *iaCProviderDriftDetectorClient) DetectDriftWithSpecs(ctx context.Context, in *DetectDriftWithSpecsRequest, opts ...grpc.CallOption) (*DetectDriftWithSpecsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DetectDriftWithSpecsResponse) + err := c.cc.Invoke(ctx, IaCProviderDriftDetector_DetectDriftWithSpecs_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderDriftDetectorServer is the server API for IaCProviderDriftDetector service. +// All implementations must embed UnimplementedIaCProviderDriftDetectorServer +// for forward compatibility. +type IaCProviderDriftDetectorServer interface { + DetectDrift(context.Context, *DetectDriftRequest) (*DetectDriftResponse, error) + DetectDriftWithSpecs(context.Context, *DetectDriftWithSpecsRequest) (*DetectDriftWithSpecsResponse, error) + mustEmbedUnimplementedIaCProviderDriftDetectorServer() +} + +// UnimplementedIaCProviderDriftDetectorServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderDriftDetectorServer struct{} + +func (UnimplementedIaCProviderDriftDetectorServer) DetectDrift(context.Context, *DetectDriftRequest) (*DetectDriftResponse, error) { + return nil, status.Error(codes.Unimplemented, "method DetectDrift not implemented") +} +func (UnimplementedIaCProviderDriftDetectorServer) DetectDriftWithSpecs(context.Context, *DetectDriftWithSpecsRequest) (*DetectDriftWithSpecsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method DetectDriftWithSpecs not implemented") +} +func (UnimplementedIaCProviderDriftDetectorServer) mustEmbedUnimplementedIaCProviderDriftDetectorServer() { +} +func (UnimplementedIaCProviderDriftDetectorServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderDriftDetectorServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderDriftDetectorServer will +// result in compilation errors. +type UnsafeIaCProviderDriftDetectorServer interface { + mustEmbedUnimplementedIaCProviderDriftDetectorServer() +} + +func RegisterIaCProviderDriftDetectorServer(s grpc.ServiceRegistrar, srv IaCProviderDriftDetectorServer) { + // If the following call panics, it indicates UnimplementedIaCProviderDriftDetectorServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderDriftDetector_ServiceDesc, srv) +} + +func _IaCProviderDriftDetector_DetectDrift_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DetectDriftRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderDriftDetectorServer).DetectDrift(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderDriftDetector_DetectDrift_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderDriftDetectorServer).DetectDrift(ctx, req.(*DetectDriftRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IaCProviderDriftDetector_DetectDriftWithSpecs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DetectDriftWithSpecsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderDriftDetectorServer).DetectDriftWithSpecs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderDriftDetector_DetectDriftWithSpecs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderDriftDetectorServer).DetectDriftWithSpecs(ctx, req.(*DetectDriftWithSpecsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderDriftDetector_ServiceDesc is the grpc.ServiceDesc for IaCProviderDriftDetector service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderDriftDetector_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderDriftDetector", + HandlerType: (*IaCProviderDriftDetectorServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "DetectDrift", + Handler: _IaCProviderDriftDetector_DetectDrift_Handler, + }, + { + MethodName: "DetectDriftWithSpecs", + Handler: _IaCProviderDriftDetector_DetectDriftWithSpecs_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderCredentialRevoker_RevokeProviderCredential_FullMethodName = "/workflow.plugin.external.iac.IaCProviderCredentialRevoker/RevokeProviderCredential" +) + +// IaCProviderCredentialRevokerClient is the client API for IaCProviderCredentialRevoker service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IaCProviderCredentialRevokerClient interface { + RevokeProviderCredential(ctx context.Context, in *RevokeProviderCredentialRequest, opts ...grpc.CallOption) (*RevokeProviderCredentialResponse, error) +} + +type iaCProviderCredentialRevokerClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderCredentialRevokerClient(cc grpc.ClientConnInterface) IaCProviderCredentialRevokerClient { + return &iaCProviderCredentialRevokerClient{cc} +} + +func (c *iaCProviderCredentialRevokerClient) RevokeProviderCredential(ctx context.Context, in *RevokeProviderCredentialRequest, opts ...grpc.CallOption) (*RevokeProviderCredentialResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RevokeProviderCredentialResponse) + err := c.cc.Invoke(ctx, IaCProviderCredentialRevoker_RevokeProviderCredential_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderCredentialRevokerServer is the server API for IaCProviderCredentialRevoker service. +// All implementations must embed UnimplementedIaCProviderCredentialRevokerServer +// for forward compatibility. +type IaCProviderCredentialRevokerServer interface { + RevokeProviderCredential(context.Context, *RevokeProviderCredentialRequest) (*RevokeProviderCredentialResponse, error) + mustEmbedUnimplementedIaCProviderCredentialRevokerServer() +} + +// UnimplementedIaCProviderCredentialRevokerServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderCredentialRevokerServer struct{} + +func (UnimplementedIaCProviderCredentialRevokerServer) RevokeProviderCredential(context.Context, *RevokeProviderCredentialRequest) (*RevokeProviderCredentialResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RevokeProviderCredential not implemented") +} +func (UnimplementedIaCProviderCredentialRevokerServer) mustEmbedUnimplementedIaCProviderCredentialRevokerServer() { +} +func (UnimplementedIaCProviderCredentialRevokerServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderCredentialRevokerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderCredentialRevokerServer will +// result in compilation errors. +type UnsafeIaCProviderCredentialRevokerServer interface { + mustEmbedUnimplementedIaCProviderCredentialRevokerServer() +} + +func RegisterIaCProviderCredentialRevokerServer(s grpc.ServiceRegistrar, srv IaCProviderCredentialRevokerServer) { + // If the following call panics, it indicates UnimplementedIaCProviderCredentialRevokerServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderCredentialRevoker_ServiceDesc, srv) +} + +func _IaCProviderCredentialRevoker_RevokeProviderCredential_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RevokeProviderCredentialRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderCredentialRevokerServer).RevokeProviderCredential(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderCredentialRevoker_RevokeProviderCredential_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderCredentialRevokerServer).RevokeProviderCredential(ctx, req.(*RevokeProviderCredentialRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderCredentialRevoker_ServiceDesc is the grpc.ServiceDesc for IaCProviderCredentialRevoker service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderCredentialRevoker_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderCredentialRevoker", + HandlerType: (*IaCProviderCredentialRevokerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RevokeProviderCredential", + Handler: _IaCProviderCredentialRevoker_RevokeProviderCredential_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderMigrationRepairer_RepairDirtyMigration_FullMethodName = "/workflow.plugin.external.iac.IaCProviderMigrationRepairer/RepairDirtyMigration" +) + +// IaCProviderMigrationRepairerClient is the client API for IaCProviderMigrationRepairer service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IaCProviderMigrationRepairerClient interface { + RepairDirtyMigration(ctx context.Context, in *RepairDirtyMigrationRequest, opts ...grpc.CallOption) (*RepairDirtyMigrationResponse, error) +} + +type iaCProviderMigrationRepairerClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderMigrationRepairerClient(cc grpc.ClientConnInterface) IaCProviderMigrationRepairerClient { + return &iaCProviderMigrationRepairerClient{cc} +} + +func (c *iaCProviderMigrationRepairerClient) RepairDirtyMigration(ctx context.Context, in *RepairDirtyMigrationRequest, opts ...grpc.CallOption) (*RepairDirtyMigrationResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RepairDirtyMigrationResponse) + err := c.cc.Invoke(ctx, IaCProviderMigrationRepairer_RepairDirtyMigration_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderMigrationRepairerServer is the server API for IaCProviderMigrationRepairer service. +// All implementations must embed UnimplementedIaCProviderMigrationRepairerServer +// for forward compatibility. +type IaCProviderMigrationRepairerServer interface { + RepairDirtyMigration(context.Context, *RepairDirtyMigrationRequest) (*RepairDirtyMigrationResponse, error) + mustEmbedUnimplementedIaCProviderMigrationRepairerServer() +} + +// UnimplementedIaCProviderMigrationRepairerServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderMigrationRepairerServer struct{} + +func (UnimplementedIaCProviderMigrationRepairerServer) RepairDirtyMigration(context.Context, *RepairDirtyMigrationRequest) (*RepairDirtyMigrationResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RepairDirtyMigration not implemented") +} +func (UnimplementedIaCProviderMigrationRepairerServer) mustEmbedUnimplementedIaCProviderMigrationRepairerServer() { +} +func (UnimplementedIaCProviderMigrationRepairerServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderMigrationRepairerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderMigrationRepairerServer will +// result in compilation errors. +type UnsafeIaCProviderMigrationRepairerServer interface { + mustEmbedUnimplementedIaCProviderMigrationRepairerServer() +} + +func RegisterIaCProviderMigrationRepairerServer(s grpc.ServiceRegistrar, srv IaCProviderMigrationRepairerServer) { + // If the following call panics, it indicates UnimplementedIaCProviderMigrationRepairerServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderMigrationRepairer_ServiceDesc, srv) +} + +func _IaCProviderMigrationRepairer_RepairDirtyMigration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RepairDirtyMigrationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderMigrationRepairerServer).RepairDirtyMigration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderMigrationRepairer_RepairDirtyMigration_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderMigrationRepairerServer).RepairDirtyMigration(ctx, req.(*RepairDirtyMigrationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderMigrationRepairer_ServiceDesc is the grpc.ServiceDesc for IaCProviderMigrationRepairer service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderMigrationRepairer_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderMigrationRepairer", + HandlerType: (*IaCProviderMigrationRepairerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RepairDirtyMigration", + Handler: _IaCProviderMigrationRepairer_RepairDirtyMigration_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderValidator_ValidatePlan_FullMethodName = "/workflow.plugin.external.iac.IaCProviderValidator/ValidatePlan" +) + +// IaCProviderValidatorClient is the client API for IaCProviderValidator service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IaCProviderValidatorClient interface { + ValidatePlan(ctx context.Context, in *ValidatePlanRequest, opts ...grpc.CallOption) (*ValidatePlanResponse, error) +} + +type iaCProviderValidatorClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderValidatorClient(cc grpc.ClientConnInterface) IaCProviderValidatorClient { + return &iaCProviderValidatorClient{cc} +} + +func (c *iaCProviderValidatorClient) ValidatePlan(ctx context.Context, in *ValidatePlanRequest, opts ...grpc.CallOption) (*ValidatePlanResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ValidatePlanResponse) + err := c.cc.Invoke(ctx, IaCProviderValidator_ValidatePlan_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderValidatorServer is the server API for IaCProviderValidator service. +// All implementations must embed UnimplementedIaCProviderValidatorServer +// for forward compatibility. +type IaCProviderValidatorServer interface { + ValidatePlan(context.Context, *ValidatePlanRequest) (*ValidatePlanResponse, error) + mustEmbedUnimplementedIaCProviderValidatorServer() +} + +// UnimplementedIaCProviderValidatorServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderValidatorServer struct{} + +func (UnimplementedIaCProviderValidatorServer) ValidatePlan(context.Context, *ValidatePlanRequest) (*ValidatePlanResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ValidatePlan not implemented") +} +func (UnimplementedIaCProviderValidatorServer) mustEmbedUnimplementedIaCProviderValidatorServer() {} +func (UnimplementedIaCProviderValidatorServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderValidatorServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderValidatorServer will +// result in compilation errors. +type UnsafeIaCProviderValidatorServer interface { + mustEmbedUnimplementedIaCProviderValidatorServer() +} + +func RegisterIaCProviderValidatorServer(s grpc.ServiceRegistrar, srv IaCProviderValidatorServer) { + // If the following call panics, it indicates UnimplementedIaCProviderValidatorServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderValidator_ServiceDesc, srv) +} + +func _IaCProviderValidator_ValidatePlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidatePlanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderValidatorServer).ValidatePlan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderValidator_ValidatePlan_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderValidatorServer).ValidatePlan(ctx, req.(*ValidatePlanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderValidator_ServiceDesc is the grpc.ServiceDesc for IaCProviderValidator service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderValidator_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderValidator", + HandlerType: (*IaCProviderValidatorServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ValidatePlan", + Handler: _IaCProviderValidator_ValidatePlan_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + IaCProviderDriftConfigDetector_DetectDriftConfig_FullMethodName = "/workflow.plugin.external.iac.IaCProviderDriftConfigDetector/DetectDriftConfig" +) + +// IaCProviderDriftConfigDetectorClient is the client API for IaCProviderDriftConfigDetector service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type IaCProviderDriftConfigDetectorClient interface { + DetectDriftConfig(ctx context.Context, in *DetectDriftConfigRequest, opts ...grpc.CallOption) (*DetectDriftConfigResponse, error) +} + +type iaCProviderDriftConfigDetectorClient struct { + cc grpc.ClientConnInterface +} + +func NewIaCProviderDriftConfigDetectorClient(cc grpc.ClientConnInterface) IaCProviderDriftConfigDetectorClient { + return &iaCProviderDriftConfigDetectorClient{cc} +} + +func (c *iaCProviderDriftConfigDetectorClient) DetectDriftConfig(ctx context.Context, in *DetectDriftConfigRequest, opts ...grpc.CallOption) (*DetectDriftConfigResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DetectDriftConfigResponse) + err := c.cc.Invoke(ctx, IaCProviderDriftConfigDetector_DetectDriftConfig_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IaCProviderDriftConfigDetectorServer is the server API for IaCProviderDriftConfigDetector service. +// All implementations must embed UnimplementedIaCProviderDriftConfigDetectorServer +// for forward compatibility. +type IaCProviderDriftConfigDetectorServer interface { + DetectDriftConfig(context.Context, *DetectDriftConfigRequest) (*DetectDriftConfigResponse, error) + mustEmbedUnimplementedIaCProviderDriftConfigDetectorServer() +} + +// UnimplementedIaCProviderDriftConfigDetectorServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIaCProviderDriftConfigDetectorServer struct{} + +func (UnimplementedIaCProviderDriftConfigDetectorServer) DetectDriftConfig(context.Context, *DetectDriftConfigRequest) (*DetectDriftConfigResponse, error) { + return nil, status.Error(codes.Unimplemented, "method DetectDriftConfig not implemented") +} +func (UnimplementedIaCProviderDriftConfigDetectorServer) mustEmbedUnimplementedIaCProviderDriftConfigDetectorServer() { +} +func (UnimplementedIaCProviderDriftConfigDetectorServer) testEmbeddedByValue() {} + +// UnsafeIaCProviderDriftConfigDetectorServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IaCProviderDriftConfigDetectorServer will +// result in compilation errors. +type UnsafeIaCProviderDriftConfigDetectorServer interface { + mustEmbedUnimplementedIaCProviderDriftConfigDetectorServer() +} + +func RegisterIaCProviderDriftConfigDetectorServer(s grpc.ServiceRegistrar, srv IaCProviderDriftConfigDetectorServer) { + // If the following call panics, it indicates UnimplementedIaCProviderDriftConfigDetectorServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IaCProviderDriftConfigDetector_ServiceDesc, srv) +} + +func _IaCProviderDriftConfigDetector_DetectDriftConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DetectDriftConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IaCProviderDriftConfigDetectorServer).DetectDriftConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IaCProviderDriftConfigDetector_DetectDriftConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IaCProviderDriftConfigDetectorServer).DetectDriftConfig(ctx, req.(*DetectDriftConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IaCProviderDriftConfigDetector_ServiceDesc is the grpc.ServiceDesc for IaCProviderDriftConfigDetector service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IaCProviderDriftConfigDetector_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.IaCProviderDriftConfigDetector", + HandlerType: (*IaCProviderDriftConfigDetectorServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "DetectDriftConfig", + Handler: _IaCProviderDriftConfigDetector_DetectDriftConfig_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} + +const ( + ResourceDriver_Create_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Create" + ResourceDriver_Read_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Read" + ResourceDriver_Update_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Update" + ResourceDriver_Delete_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Delete" + ResourceDriver_Diff_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Diff" + ResourceDriver_Scale_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Scale" + ResourceDriver_HealthCheck_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/HealthCheck" + ResourceDriver_SensitiveKeys_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/SensitiveKeys" + ResourceDriver_Troubleshoot_FullMethodName = "/workflow.plugin.external.iac.ResourceDriver/Troubleshoot" +) + +// ResourceDriverClient is the client API for ResourceDriver service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// ───────────────────────────────────────────────────────────────────────────── +// ResourceDriver — separate gRPC service for per-resource-type CRUD dispatch. +// The driver instance is identified by (resource_type) carried on every RPC. +// ───────────────────────────────────────────────────────────────────────────── +type ResourceDriverClient interface { + Create(ctx context.Context, in *ResourceCreateRequest, opts ...grpc.CallOption) (*ResourceCreateResponse, error) + Read(ctx context.Context, in *ResourceReadRequest, opts ...grpc.CallOption) (*ResourceReadResponse, error) + Update(ctx context.Context, in *ResourceUpdateRequest, opts ...grpc.CallOption) (*ResourceUpdateResponse, error) + Delete(ctx context.Context, in *ResourceDeleteRequest, opts ...grpc.CallOption) (*ResourceDeleteResponse, error) + Diff(ctx context.Context, in *ResourceDiffRequest, opts ...grpc.CallOption) (*ResourceDiffResponse, error) + Scale(ctx context.Context, in *ResourceScaleRequest, opts ...grpc.CallOption) (*ResourceScaleResponse, error) + HealthCheck(ctx context.Context, in *ResourceHealthCheckRequest, opts ...grpc.CallOption) (*ResourceHealthCheckResponse, error) + SensitiveKeys(ctx context.Context, in *SensitiveKeysRequest, opts ...grpc.CallOption) (*SensitiveKeysResponse, error) + Troubleshoot(ctx context.Context, in *TroubleshootRequest, opts ...grpc.CallOption) (*TroubleshootResponse, error) +} + +type resourceDriverClient struct { + cc grpc.ClientConnInterface +} + +func NewResourceDriverClient(cc grpc.ClientConnInterface) ResourceDriverClient { + return &resourceDriverClient{cc} +} + +func (c *resourceDriverClient) Create(ctx context.Context, in *ResourceCreateRequest, opts ...grpc.CallOption) (*ResourceCreateResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceCreateResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Create_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Read(ctx context.Context, in *ResourceReadRequest, opts ...grpc.CallOption) (*ResourceReadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceReadResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Read_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Update(ctx context.Context, in *ResourceUpdateRequest, opts ...grpc.CallOption) (*ResourceUpdateResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceUpdateResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Update_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Delete(ctx context.Context, in *ResourceDeleteRequest, opts ...grpc.CallOption) (*ResourceDeleteResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceDeleteResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Delete_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Diff(ctx context.Context, in *ResourceDiffRequest, opts ...grpc.CallOption) (*ResourceDiffResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceDiffResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Diff_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Scale(ctx context.Context, in *ResourceScaleRequest, opts ...grpc.CallOption) (*ResourceScaleResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceScaleResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Scale_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) HealthCheck(ctx context.Context, in *ResourceHealthCheckRequest, opts ...grpc.CallOption) (*ResourceHealthCheckResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResourceHealthCheckResponse) + err := c.cc.Invoke(ctx, ResourceDriver_HealthCheck_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) SensitiveKeys(ctx context.Context, in *SensitiveKeysRequest, opts ...grpc.CallOption) (*SensitiveKeysResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SensitiveKeysResponse) + err := c.cc.Invoke(ctx, ResourceDriver_SensitiveKeys_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *resourceDriverClient) Troubleshoot(ctx context.Context, in *TroubleshootRequest, opts ...grpc.CallOption) (*TroubleshootResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(TroubleshootResponse) + err := c.cc.Invoke(ctx, ResourceDriver_Troubleshoot_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ResourceDriverServer is the server API for ResourceDriver service. +// All implementations must embed UnimplementedResourceDriverServer +// for forward compatibility. +// +// ───────────────────────────────────────────────────────────────────────────── +// ResourceDriver — separate gRPC service for per-resource-type CRUD dispatch. +// The driver instance is identified by (resource_type) carried on every RPC. +// ───────────────────────────────────────────────────────────────────────────── +type ResourceDriverServer interface { + Create(context.Context, *ResourceCreateRequest) (*ResourceCreateResponse, error) + Read(context.Context, *ResourceReadRequest) (*ResourceReadResponse, error) + Update(context.Context, *ResourceUpdateRequest) (*ResourceUpdateResponse, error) + Delete(context.Context, *ResourceDeleteRequest) (*ResourceDeleteResponse, error) + Diff(context.Context, *ResourceDiffRequest) (*ResourceDiffResponse, error) + Scale(context.Context, *ResourceScaleRequest) (*ResourceScaleResponse, error) + HealthCheck(context.Context, *ResourceHealthCheckRequest) (*ResourceHealthCheckResponse, error) + SensitiveKeys(context.Context, *SensitiveKeysRequest) (*SensitiveKeysResponse, error) + Troubleshoot(context.Context, *TroubleshootRequest) (*TroubleshootResponse, error) + mustEmbedUnimplementedResourceDriverServer() +} + +// UnimplementedResourceDriverServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedResourceDriverServer struct{} + +func (UnimplementedResourceDriverServer) Create(context.Context, *ResourceCreateRequest) (*ResourceCreateResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Create not implemented") +} +func (UnimplementedResourceDriverServer) Read(context.Context, *ResourceReadRequest) (*ResourceReadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Read not implemented") +} +func (UnimplementedResourceDriverServer) Update(context.Context, *ResourceUpdateRequest) (*ResourceUpdateResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Update not implemented") +} +func (UnimplementedResourceDriverServer) Delete(context.Context, *ResourceDeleteRequest) (*ResourceDeleteResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Delete not implemented") +} +func (UnimplementedResourceDriverServer) Diff(context.Context, *ResourceDiffRequest) (*ResourceDiffResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Diff not implemented") +} +func (UnimplementedResourceDriverServer) Scale(context.Context, *ResourceScaleRequest) (*ResourceScaleResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Scale not implemented") +} +func (UnimplementedResourceDriverServer) HealthCheck(context.Context, *ResourceHealthCheckRequest) (*ResourceHealthCheckResponse, error) { + return nil, status.Error(codes.Unimplemented, "method HealthCheck not implemented") +} +func (UnimplementedResourceDriverServer) SensitiveKeys(context.Context, *SensitiveKeysRequest) (*SensitiveKeysResponse, error) { + return nil, status.Error(codes.Unimplemented, "method SensitiveKeys not implemented") +} +func (UnimplementedResourceDriverServer) Troubleshoot(context.Context, *TroubleshootRequest) (*TroubleshootResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Troubleshoot not implemented") +} +func (UnimplementedResourceDriverServer) mustEmbedUnimplementedResourceDriverServer() {} +func (UnimplementedResourceDriverServer) testEmbeddedByValue() {} + +// UnsafeResourceDriverServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ResourceDriverServer will +// result in compilation errors. +type UnsafeResourceDriverServer interface { + mustEmbedUnimplementedResourceDriverServer() +} + +func RegisterResourceDriverServer(s grpc.ServiceRegistrar, srv ResourceDriverServer) { + // If the following call panics, it indicates UnimplementedResourceDriverServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&ResourceDriver_ServiceDesc, srv) +} + +func _ResourceDriver_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceCreateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Create(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Create_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Create(ctx, req.(*ResourceCreateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Read_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceReadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Read(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Read_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Read(ctx, req.(*ResourceReadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Update(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Update_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Update(ctx, req.(*ResourceUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceDeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Delete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Delete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Delete(ctx, req.(*ResourceDeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Diff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceDiffRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Diff(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Diff_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Diff(ctx, req.(*ResourceDiffRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Scale_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceScaleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Scale(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Scale_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Scale(ctx, req.(*ResourceScaleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_HealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResourceHealthCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).HealthCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_HealthCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).HealthCheck(ctx, req.(*ResourceHealthCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_SensitiveKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SensitiveKeysRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).SensitiveKeys(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_SensitiveKeys_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).SensitiveKeys(ctx, req.(*SensitiveKeysRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ResourceDriver_Troubleshoot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TroubleshootRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceDriverServer).Troubleshoot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceDriver_Troubleshoot_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceDriverServer).Troubleshoot(ctx, req.(*TroubleshootRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ResourceDriver_ServiceDesc is the grpc.ServiceDesc for ResourceDriver service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ResourceDriver_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "workflow.plugin.external.iac.ResourceDriver", + HandlerType: (*ResourceDriverServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Create", + Handler: _ResourceDriver_Create_Handler, + }, + { + MethodName: "Read", + Handler: _ResourceDriver_Read_Handler, + }, + { + MethodName: "Update", + Handler: _ResourceDriver_Update_Handler, + }, + { + MethodName: "Delete", + Handler: _ResourceDriver_Delete_Handler, + }, + { + MethodName: "Diff", + Handler: _ResourceDriver_Diff_Handler, + }, + { + MethodName: "Scale", + Handler: _ResourceDriver_Scale_Handler, + }, + { + MethodName: "HealthCheck", + Handler: _ResourceDriver_HealthCheck_Handler, + }, + { + MethodName: "SensitiveKeys", + Handler: _ResourceDriver_SensitiveKeys_Handler, + }, + { + MethodName: "Troubleshoot", + Handler: _ResourceDriver_Troubleshoot_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "iac.proto", +} diff --git a/plugin/external/proto/iac_proto_test.go b/plugin/external/proto/iac_proto_test.go new file mode 100644 index 00000000..c4f05726 --- /dev/null +++ b/plugin/external/proto/iac_proto_test.go @@ -0,0 +1,97 @@ +package proto_test + +import ( + "context" + "testing" + + "github.com/GoCodeAlone/workflow/interfaces" + pb "github.com/GoCodeAlone/workflow/plugin/external/proto" +) + +// iacRequiredMethodsCheck is a locally-enumerated method-signature interface +// covering every RPC defined for the IaCProviderRequired service in +// iac.proto. The blank assertion below pins pb.IaCProviderRequiredServer's +// method set to this list at compile time: if a method is dropped from +// iac.proto and the bindings are regenerated, the assertion fails to compile +// and surfaces the drop loudly. The previous (`var _ pb.X = stub{}`) form +// would still compile because the regenerated stub would also lose the +// method — that test silently followed the proto rather than guarding it. +type iacRequiredMethodsCheck interface { + Initialize(context.Context, *pb.InitializeRequest) (*pb.InitializeResponse, error) + Name(context.Context, *pb.NameRequest) (*pb.NameResponse, error) + Version(context.Context, *pb.VersionRequest) (*pb.VersionResponse, error) + Capabilities(context.Context, *pb.CapabilitiesRequest) (*pb.CapabilitiesResponse, error) + Plan(context.Context, *pb.PlanRequest) (*pb.PlanResponse, error) + Apply(context.Context, *pb.ApplyRequest) (*pb.ApplyResponse, error) + Destroy(context.Context, *pb.DestroyRequest) (*pb.DestroyResponse, error) + Status(context.Context, *pb.StatusRequest) (*pb.StatusResponse, error) + Import(context.Context, *pb.ImportRequest) (*pb.ImportResponse, error) + ResolveSizing(context.Context, *pb.ResolveSizingRequest) (*pb.ResolveSizingResponse, error) + BootstrapStateBackend(context.Context, *pb.BootstrapStateBackendRequest) (*pb.BootstrapStateBackendResponse, error) +} + +// Compile-time guard: drop an RPC from iac.proto and this fails. +var _ iacRequiredMethodsCheck = (pb.IaCProviderRequiredServer)(nil) + +// TestIaCProviderRequiredServerHasAllRequiredMethods exists so `go test` +// reports the guard's status; the actual check is at compile time above. +func TestIaCProviderRequiredServerHasAllRequiredMethods(t *testing.T) { + var _ iacRequiredMethodsCheck = (pb.IaCProviderRequiredServer)(nil) +} + +// resourceDriverMethodsCheck enumerates the 9 RPCs ResourceDriver must +// expose, matching iac.proto's `service ResourceDriver` block. +type resourceDriverMethodsCheck interface { + Create(context.Context, *pb.ResourceCreateRequest) (*pb.ResourceCreateResponse, error) + Read(context.Context, *pb.ResourceReadRequest) (*pb.ResourceReadResponse, error) + Update(context.Context, *pb.ResourceUpdateRequest) (*pb.ResourceUpdateResponse, error) + Delete(context.Context, *pb.ResourceDeleteRequest) (*pb.ResourceDeleteResponse, error) + Diff(context.Context, *pb.ResourceDiffRequest) (*pb.ResourceDiffResponse, error) + Scale(context.Context, *pb.ResourceScaleRequest) (*pb.ResourceScaleResponse, error) + HealthCheck(context.Context, *pb.ResourceHealthCheckRequest) (*pb.ResourceHealthCheckResponse, error) + SensitiveKeys(context.Context, *pb.SensitiveKeysRequest) (*pb.SensitiveKeysResponse, error) + Troubleshoot(context.Context, *pb.TroubleshootRequest) (*pb.TroubleshootResponse, error) +} + +var _ resourceDriverMethodsCheck = (pb.ResourceDriverServer)(nil) + +// TestResourceDriverServerInterfaceExists asserts the generated +// ResourceDriverServer interface still has all 9 RPC methods. Drop one +// from iac.proto and the compile-time guard above will fail. +func TestResourceDriverServerInterfaceExists(t *testing.T) { + var _ resourceDriverMethodsCheck = (pb.ResourceDriverServer)(nil) +} + +// TestOptionalServicesHaveDistinctInterfaces asserts each optional +// service has its own server interface (not method-on-required). +func TestOptionalServicesHaveDistinctInterfaces(t *testing.T) { + type optional interface { + pb.IaCProviderEnumeratorServer + pb.IaCProviderDriftDetectorServer + pb.IaCProviderCredentialRevokerServer + pb.IaCProviderMigrationRepairerServer + pb.IaCProviderValidatorServer + pb.IaCProviderDriftConfigDetectorServer + } + var _ optional = (*allOptionalStub)(nil) +} + +type allOptionalStub struct { + pb.UnimplementedIaCProviderEnumeratorServer + pb.UnimplementedIaCProviderDriftDetectorServer + pb.UnimplementedIaCProviderCredentialRevokerServer + pb.UnimplementedIaCProviderMigrationRepairerServer + pb.UnimplementedIaCProviderValidatorServer + pb.UnimplementedIaCProviderDriftConfigDetectorServer +} + +// TestMigrationRepairConfirmationStringMatchesProtoComment guards the +// confirm_force string constant against drift between iac.proto's comment +// (lines ~322-324) and the Go-side interfaces.MigrationRepairConfirmation +// constant. They must match exactly: "FORCE_MIGRATION_METADATA". +func TestMigrationRepairConfirmationStringMatchesProtoComment(t *testing.T) { + if interfaces.MigrationRepairConfirmation != "FORCE_MIGRATION_METADATA" { + t.Fatalf("interfaces.MigrationRepairConfirmation drifted from proto comment in iac.proto:322-324; got %q want %q", + interfaces.MigrationRepairConfirmation, "FORCE_MIGRATION_METADATA") + } +}