core: Allow legacy SDK to opt out of plan-time safety checks

Due to the inprecision of our shimming from the legacy SDK type system to
the new Terraform Core type system, the legacy SDK produces a number of
inconsistencies that produce only minor quirky behavior or broken
edge-cases. To retain compatibility with those existing weird behaviors,
the legacy SDK opts out of our safety checks.

The intent here is to allow existing providers to continue to do their
previous unsafe behaviors for now, accepting that this will allow certain
quirky bugs from previous releases to persist, and then gradually migrate
away from the legacy SDK and remove this opt-out on a per-resource basis
over time.

As with the apply-time safety check opt-out, this is reserved only for
the legacy SDK and must not be used in any new SDK implementations. We
still include any inconsistencies as warnings in the logs as an aid to
anyone debugging weird behavior, so that they can see situations where
blame may be misplaced in the user-visible error messages.
This commit is contained in:
Martin Atkins 2019-02-08 20:32:44 -08:00
parent 5649ae6abf
commit 31299e688d
6 changed files with 262 additions and 198 deletions

View File

@ -475,6 +475,14 @@ func (s *GRPCProviderServer) ReadResource(_ context.Context, req *proto.ReadReso
func (s *GRPCProviderServer) PlanResourceChange(_ context.Context, req *proto.PlanResourceChange_Request) (*proto.PlanResourceChange_Response, error) {
resp := &proto.PlanResourceChange_Response{}
// This is a signal to Terraform Core that we're doing the best we can to
// shim the legacy type system of the SDK onto the Terraform type system
// but we need it to cut us some slack. This setting should not be taken
// forward to any new SDK implementations, since setting it prevents us
// from catching certain classes of provider bug that can lead to
// confusing downstream errors.
resp.LegacyTypeSystem = true
res := s.provider.ResourcesMap[req.TypeName]
block := res.CoreConfigSchema()

View File

@ -46,7 +46,7 @@ func (x Diagnostic_Severity) String() string {
return proto.EnumName(Diagnostic_Severity_name, int32(x))
}
func (Diagnostic_Severity) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{1, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{1, 0}
}
type Schema_NestedBlock_NestingMode int32
@ -78,7 +78,7 @@ func (x Schema_NestedBlock_NestingMode) String() string {
return proto.EnumName(Schema_NestedBlock_NestingMode_name, int32(x))
}
func (Schema_NestedBlock_NestingMode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{5, 2, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{5, 2, 0}
}
// DynamicValue is an opaque encoding of terraform data, with the field name
@ -95,7 +95,7 @@ func (m *DynamicValue) Reset() { *m = DynamicValue{} }
func (m *DynamicValue) String() string { return proto.CompactTextString(m) }
func (*DynamicValue) ProtoMessage() {}
func (*DynamicValue) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{0}
}
func (m *DynamicValue) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DynamicValue.Unmarshal(m, b)
@ -143,7 +143,7 @@ func (m *Diagnostic) Reset() { *m = Diagnostic{} }
func (m *Diagnostic) String() string { return proto.CompactTextString(m) }
func (*Diagnostic) ProtoMessage() {}
func (*Diagnostic) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{1}
}
func (m *Diagnostic) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Diagnostic.Unmarshal(m, b)
@ -202,7 +202,7 @@ func (m *AttributePath) Reset() { *m = AttributePath{} }
func (m *AttributePath) String() string { return proto.CompactTextString(m) }
func (*AttributePath) ProtoMessage() {}
func (*AttributePath) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{2}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{2}
}
func (m *AttributePath) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttributePath.Unmarshal(m, b)
@ -244,7 +244,7 @@ func (m *AttributePath_Step) Reset() { *m = AttributePath_Step{} }
func (m *AttributePath_Step) String() string { return proto.CompactTextString(m) }
func (*AttributePath_Step) ProtoMessage() {}
func (*AttributePath_Step) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{2, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{2, 0}
}
func (m *AttributePath_Step) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttributePath_Step.Unmarshal(m, b)
@ -404,7 +404,7 @@ func (m *Stop) Reset() { *m = Stop{} }
func (m *Stop) String() string { return proto.CompactTextString(m) }
func (*Stop) ProtoMessage() {}
func (*Stop) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{3}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{3}
}
func (m *Stop) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop.Unmarshal(m, b)
@ -434,7 +434,7 @@ func (m *Stop_Request) Reset() { *m = Stop_Request{} }
func (m *Stop_Request) String() string { return proto.CompactTextString(m) }
func (*Stop_Request) ProtoMessage() {}
func (*Stop_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{3, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{3, 0}
}
func (m *Stop_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop_Request.Unmarshal(m, b)
@ -465,7 +465,7 @@ func (m *Stop_Response) Reset() { *m = Stop_Response{} }
func (m *Stop_Response) String() string { return proto.CompactTextString(m) }
func (*Stop_Response) ProtoMessage() {}
func (*Stop_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{3, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{3, 1}
}
func (m *Stop_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop_Response.Unmarshal(m, b)
@ -507,7 +507,7 @@ func (m *RawState) Reset() { *m = RawState{} }
func (m *RawState) String() string { return proto.CompactTextString(m) }
func (*RawState) ProtoMessage() {}
func (*RawState) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{4}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{4}
}
func (m *RawState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RawState.Unmarshal(m, b)
@ -558,7 +558,7 @@ func (m *Schema) Reset() { *m = Schema{} }
func (m *Schema) String() string { return proto.CompactTextString(m) }
func (*Schema) ProtoMessage() {}
func (*Schema) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{5}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{5}
}
func (m *Schema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema.Unmarshal(m, b)
@ -605,7 +605,7 @@ func (m *Schema_Block) Reset() { *m = Schema_Block{} }
func (m *Schema_Block) String() string { return proto.CompactTextString(m) }
func (*Schema_Block) ProtoMessage() {}
func (*Schema_Block) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{5, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{5, 0}
}
func (m *Schema_Block) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_Block.Unmarshal(m, b)
@ -663,7 +663,7 @@ func (m *Schema_Attribute) Reset() { *m = Schema_Attribute{} }
func (m *Schema_Attribute) String() string { return proto.CompactTextString(m) }
func (*Schema_Attribute) ProtoMessage() {}
func (*Schema_Attribute) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{5, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{5, 1}
}
func (m *Schema_Attribute) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_Attribute.Unmarshal(m, b)
@ -747,7 +747,7 @@ func (m *Schema_NestedBlock) Reset() { *m = Schema_NestedBlock{} }
func (m *Schema_NestedBlock) String() string { return proto.CompactTextString(m) }
func (*Schema_NestedBlock) ProtoMessage() {}
func (*Schema_NestedBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{5, 2}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{5, 2}
}
func (m *Schema_NestedBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_NestedBlock.Unmarshal(m, b)
@ -812,7 +812,7 @@ func (m *GetProviderSchema) Reset() { *m = GetProviderSchema{} }
func (m *GetProviderSchema) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema) ProtoMessage() {}
func (*GetProviderSchema) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{6}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{6}
}
func (m *GetProviderSchema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema.Unmarshal(m, b)
@ -842,7 +842,7 @@ func (m *GetProviderSchema_Request) Reset() { *m = GetProviderSchema_Req
func (m *GetProviderSchema_Request) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema_Request) ProtoMessage() {}
func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{6, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{6, 0}
}
func (m *GetProviderSchema_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema_Request.Unmarshal(m, b)
@ -876,7 +876,7 @@ func (m *GetProviderSchema_Response) Reset() { *m = GetProviderSchema_Re
func (m *GetProviderSchema_Response) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema_Response) ProtoMessage() {}
func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{6, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{6, 1}
}
func (m *GetProviderSchema_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema_Response.Unmarshal(m, b)
@ -934,7 +934,7 @@ func (m *PrepareProviderConfig) Reset() { *m = PrepareProviderConfig{} }
func (m *PrepareProviderConfig) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig) ProtoMessage() {}
func (*PrepareProviderConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{7}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{7}
}
func (m *PrepareProviderConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig.Unmarshal(m, b)
@ -965,7 +965,7 @@ func (m *PrepareProviderConfig_Request) Reset() { *m = PrepareProviderCo
func (m *PrepareProviderConfig_Request) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig_Request) ProtoMessage() {}
func (*PrepareProviderConfig_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{7, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{7, 0}
}
func (m *PrepareProviderConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig_Request.Unmarshal(m, b)
@ -1004,7 +1004,7 @@ func (m *PrepareProviderConfig_Response) Reset() { *m = PrepareProviderC
func (m *PrepareProviderConfig_Response) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig_Response) ProtoMessage() {}
func (*PrepareProviderConfig_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{7, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{7, 1}
}
func (m *PrepareProviderConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig_Response.Unmarshal(m, b)
@ -1048,7 +1048,7 @@ func (m *UpgradeResourceState) Reset() { *m = UpgradeResourceState{} }
func (m *UpgradeResourceState) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState) ProtoMessage() {}
func (*UpgradeResourceState) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{8}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{8}
}
func (m *UpgradeResourceState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState.Unmarshal(m, b)
@ -1087,7 +1087,7 @@ func (m *UpgradeResourceState_Request) Reset() { *m = UpgradeResourceSta
func (m *UpgradeResourceState_Request) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState_Request) ProtoMessage() {}
func (*UpgradeResourceState_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{8, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{8, 0}
}
func (m *UpgradeResourceState_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState_Request.Unmarshal(m, b)
@ -1146,7 +1146,7 @@ func (m *UpgradeResourceState_Response) Reset() { *m = UpgradeResourceSt
func (m *UpgradeResourceState_Response) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState_Response) ProtoMessage() {}
func (*UpgradeResourceState_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{8, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{8, 1}
}
func (m *UpgradeResourceState_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState_Response.Unmarshal(m, b)
@ -1190,7 +1190,7 @@ func (m *ValidateResourceTypeConfig) Reset() { *m = ValidateResourceType
func (m *ValidateResourceTypeConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig) ProtoMessage() {}
func (*ValidateResourceTypeConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{9}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{9}
}
func (m *ValidateResourceTypeConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig.Unmarshal(m, b)
@ -1222,7 +1222,7 @@ func (m *ValidateResourceTypeConfig_Request) Reset() { *m = ValidateReso
func (m *ValidateResourceTypeConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig_Request) ProtoMessage() {}
func (*ValidateResourceTypeConfig_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{9, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{9, 0}
}
func (m *ValidateResourceTypeConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig_Request.Unmarshal(m, b)
@ -1267,7 +1267,7 @@ func (m *ValidateResourceTypeConfig_Response) Reset() { *m = ValidateRes
func (m *ValidateResourceTypeConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig_Response) ProtoMessage() {}
func (*ValidateResourceTypeConfig_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{9, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{9, 1}
}
func (m *ValidateResourceTypeConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig_Response.Unmarshal(m, b)
@ -1304,7 +1304,7 @@ func (m *ValidateDataSourceConfig) Reset() { *m = ValidateDataSourceConf
func (m *ValidateDataSourceConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig) ProtoMessage() {}
func (*ValidateDataSourceConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{10}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{10}
}
func (m *ValidateDataSourceConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig.Unmarshal(m, b)
@ -1336,7 +1336,7 @@ func (m *ValidateDataSourceConfig_Request) Reset() { *m = ValidateDataSo
func (m *ValidateDataSourceConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig_Request) ProtoMessage() {}
func (*ValidateDataSourceConfig_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{10, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{10, 0}
}
func (m *ValidateDataSourceConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig_Request.Unmarshal(m, b)
@ -1381,7 +1381,7 @@ func (m *ValidateDataSourceConfig_Response) Reset() { *m = ValidateDataS
func (m *ValidateDataSourceConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig_Response) ProtoMessage() {}
func (*ValidateDataSourceConfig_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{10, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{10, 1}
}
func (m *ValidateDataSourceConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig_Response.Unmarshal(m, b)
@ -1418,7 +1418,7 @@ func (m *Configure) Reset() { *m = Configure{} }
func (m *Configure) String() string { return proto.CompactTextString(m) }
func (*Configure) ProtoMessage() {}
func (*Configure) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{11}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{11}
}
func (m *Configure) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure.Unmarshal(m, b)
@ -1450,7 +1450,7 @@ func (m *Configure_Request) Reset() { *m = Configure_Request{} }
func (m *Configure_Request) String() string { return proto.CompactTextString(m) }
func (*Configure_Request) ProtoMessage() {}
func (*Configure_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{11, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{11, 0}
}
func (m *Configure_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure_Request.Unmarshal(m, b)
@ -1495,7 +1495,7 @@ func (m *Configure_Response) Reset() { *m = Configure_Response{} }
func (m *Configure_Response) String() string { return proto.CompactTextString(m) }
func (*Configure_Response) ProtoMessage() {}
func (*Configure_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{11, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{11, 1}
}
func (m *Configure_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure_Response.Unmarshal(m, b)
@ -1532,7 +1532,7 @@ func (m *ReadResource) Reset() { *m = ReadResource{} }
func (m *ReadResource) String() string { return proto.CompactTextString(m) }
func (*ReadResource) ProtoMessage() {}
func (*ReadResource) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{12}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{12}
}
func (m *ReadResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource.Unmarshal(m, b)
@ -1564,7 +1564,7 @@ func (m *ReadResource_Request) Reset() { *m = ReadResource_Request{} }
func (m *ReadResource_Request) String() string { return proto.CompactTextString(m) }
func (*ReadResource_Request) ProtoMessage() {}
func (*ReadResource_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{12, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{12, 0}
}
func (m *ReadResource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource_Request.Unmarshal(m, b)
@ -1610,7 +1610,7 @@ func (m *ReadResource_Response) Reset() { *m = ReadResource_Response{} }
func (m *ReadResource_Response) String() string { return proto.CompactTextString(m) }
func (*ReadResource_Response) ProtoMessage() {}
func (*ReadResource_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{12, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{12, 1}
}
func (m *ReadResource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource_Response.Unmarshal(m, b)
@ -1654,7 +1654,7 @@ func (m *PlanResourceChange) Reset() { *m = PlanResourceChange{} }
func (m *PlanResourceChange) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange) ProtoMessage() {}
func (*PlanResourceChange) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{13}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{13}
}
func (m *PlanResourceChange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange.Unmarshal(m, b)
@ -1689,7 +1689,7 @@ func (m *PlanResourceChange_Request) Reset() { *m = PlanResourceChange_R
func (m *PlanResourceChange_Request) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange_Request) ProtoMessage() {}
func (*PlanResourceChange_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{13, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{13, 0}
}
func (m *PlanResourceChange_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange_Request.Unmarshal(m, b)
@ -1745,20 +1745,32 @@ func (m *PlanResourceChange_Request) GetPriorPrivate() []byte {
}
type PlanResourceChange_Response struct {
PlannedState *DynamicValue `protobuf:"bytes,1,opt,name=planned_state,json=plannedState,proto3" json:"planned_state,omitempty"`
RequiresReplace []*AttributePath `protobuf:"bytes,2,rep,name=requires_replace,json=requiresReplace,proto3" json:"requires_replace,omitempty"`
PlannedPrivate []byte `protobuf:"bytes,3,opt,name=planned_private,json=plannedPrivate,proto3" json:"planned_private,omitempty"`
Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
PlannedState *DynamicValue `protobuf:"bytes,1,opt,name=planned_state,json=plannedState,proto3" json:"planned_state,omitempty"`
RequiresReplace []*AttributePath `protobuf:"bytes,2,rep,name=requires_replace,json=requiresReplace,proto3" json:"requires_replace,omitempty"`
PlannedPrivate []byte `protobuf:"bytes,3,opt,name=planned_private,json=plannedPrivate,proto3" json:"planned_private,omitempty"`
Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
// This may be set only by the helper/schema "SDK" in the main Terraform
// repository, to request that Terraform Core >=0.12 permit additional
// inconsistencies that can result from the legacy SDK type system
// and its imprecise mapping to the >=0.12 type system.
// The change in behavior implied by this flag makes sense only for the
// specific details of the legacy SDK type system, and are not a general
// mechanism to avoid proper type handling in providers.
//
// ==== DO NOT USE THIS ====
// ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ====
// ==== DO NOT USE THIS ====
LegacyTypeSystem bool `protobuf:"varint,5,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PlanResourceChange_Response) Reset() { *m = PlanResourceChange_Response{} }
func (m *PlanResourceChange_Response) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange_Response) ProtoMessage() {}
func (*PlanResourceChange_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{13, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{13, 1}
}
func (m *PlanResourceChange_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange_Response.Unmarshal(m, b)
@ -1806,6 +1818,13 @@ func (m *PlanResourceChange_Response) GetDiagnostics() []*Diagnostic {
return nil
}
func (m *PlanResourceChange_Response) GetLegacyTypeSystem() bool {
if m != nil {
return m.LegacyTypeSystem
}
return false
}
type ApplyResourceChange struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1816,7 +1835,7 @@ func (m *ApplyResourceChange) Reset() { *m = ApplyResourceChange{} }
func (m *ApplyResourceChange) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange) ProtoMessage() {}
func (*ApplyResourceChange) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{14}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{14}
}
func (m *ApplyResourceChange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange.Unmarshal(m, b)
@ -1851,7 +1870,7 @@ func (m *ApplyResourceChange_Request) Reset() { *m = ApplyResourceChange
func (m *ApplyResourceChange_Request) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange_Request) ProtoMessage() {}
func (*ApplyResourceChange_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{14, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{14, 0}
}
func (m *ApplyResourceChange_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange_Request.Unmarshal(m, b)
@ -1918,9 +1937,9 @@ type ApplyResourceChange_Response struct {
// specific details of the legacy SDK type system, and are not a general
// mechanism to avoid proper type handling in providers.
//
// ==== DO NOT USE THIS ====
// ==== DO NOT USE THIS ====
// ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ====
// ==== DO NOT USE THIS ====
// ==== DO NOT USE THIS ====
LegacyTypeSystem bool `protobuf:"varint,4,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -1931,7 +1950,7 @@ func (m *ApplyResourceChange_Response) Reset() { *m = ApplyResourceChang
func (m *ApplyResourceChange_Response) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange_Response) ProtoMessage() {}
func (*ApplyResourceChange_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{14, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{14, 1}
}
func (m *ApplyResourceChange_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange_Response.Unmarshal(m, b)
@ -1989,7 +2008,7 @@ func (m *ImportResourceState) Reset() { *m = ImportResourceState{} }
func (m *ImportResourceState) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState) ProtoMessage() {}
func (*ImportResourceState) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{15}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{15}
}
func (m *ImportResourceState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState.Unmarshal(m, b)
@ -2021,7 +2040,7 @@ func (m *ImportResourceState_Request) Reset() { *m = ImportResourceState
func (m *ImportResourceState_Request) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_Request) ProtoMessage() {}
func (*ImportResourceState_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{15, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{15, 0}
}
func (m *ImportResourceState_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_Request.Unmarshal(m, b)
@ -2068,7 +2087,7 @@ func (m *ImportResourceState_ImportedResource) Reset() { *m = ImportReso
func (m *ImportResourceState_ImportedResource) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_ImportedResource) ProtoMessage() {}
func (*ImportResourceState_ImportedResource) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{15, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{15, 1}
}
func (m *ImportResourceState_ImportedResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_ImportedResource.Unmarshal(m, b)
@ -2121,7 +2140,7 @@ func (m *ImportResourceState_Response) Reset() { *m = ImportResourceStat
func (m *ImportResourceState_Response) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_Response) ProtoMessage() {}
func (*ImportResourceState_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{15, 2}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{15, 2}
}
func (m *ImportResourceState_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_Response.Unmarshal(m, b)
@ -2165,7 +2184,7 @@ func (m *ReadDataSource) Reset() { *m = ReadDataSource{} }
func (m *ReadDataSource) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource) ProtoMessage() {}
func (*ReadDataSource) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{16}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{16}
}
func (m *ReadDataSource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource.Unmarshal(m, b)
@ -2197,7 +2216,7 @@ func (m *ReadDataSource_Request) Reset() { *m = ReadDataSource_Request{}
func (m *ReadDataSource_Request) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource_Request) ProtoMessage() {}
func (*ReadDataSource_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{16, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{16, 0}
}
func (m *ReadDataSource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource_Request.Unmarshal(m, b)
@ -2243,7 +2262,7 @@ func (m *ReadDataSource_Response) Reset() { *m = ReadDataSource_Response
func (m *ReadDataSource_Response) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource_Response) ProtoMessage() {}
func (*ReadDataSource_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{16, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{16, 1}
}
func (m *ReadDataSource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource_Response.Unmarshal(m, b)
@ -2287,7 +2306,7 @@ func (m *GetProvisionerSchema) Reset() { *m = GetProvisionerSchema{} }
func (m *GetProvisionerSchema) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema) ProtoMessage() {}
func (*GetProvisionerSchema) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{17}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{17}
}
func (m *GetProvisionerSchema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema.Unmarshal(m, b)
@ -2317,7 +2336,7 @@ func (m *GetProvisionerSchema_Request) Reset() { *m = GetProvisionerSche
func (m *GetProvisionerSchema_Request) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema_Request) ProtoMessage() {}
func (*GetProvisionerSchema_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{17, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{17, 0}
}
func (m *GetProvisionerSchema_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema_Request.Unmarshal(m, b)
@ -2349,7 +2368,7 @@ func (m *GetProvisionerSchema_Response) Reset() { *m = GetProvisionerSch
func (m *GetProvisionerSchema_Response) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema_Response) ProtoMessage() {}
func (*GetProvisionerSchema_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{17, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{17, 1}
}
func (m *GetProvisionerSchema_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema_Response.Unmarshal(m, b)
@ -2393,7 +2412,7 @@ func (m *ValidateProvisionerConfig) Reset() { *m = ValidateProvisionerCo
func (m *ValidateProvisionerConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig) ProtoMessage() {}
func (*ValidateProvisionerConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{18}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{18}
}
func (m *ValidateProvisionerConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig.Unmarshal(m, b)
@ -2424,7 +2443,7 @@ func (m *ValidateProvisionerConfig_Request) Reset() { *m = ValidateProvi
func (m *ValidateProvisionerConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig_Request) ProtoMessage() {}
func (*ValidateProvisionerConfig_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{18, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{18, 0}
}
func (m *ValidateProvisionerConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig_Request.Unmarshal(m, b)
@ -2462,7 +2481,7 @@ func (m *ValidateProvisionerConfig_Response) Reset() { *m = ValidateProv
func (m *ValidateProvisionerConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig_Response) ProtoMessage() {}
func (*ValidateProvisionerConfig_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{18, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{18, 1}
}
func (m *ValidateProvisionerConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig_Response.Unmarshal(m, b)
@ -2499,7 +2518,7 @@ func (m *ProvisionResource) Reset() { *m = ProvisionResource{} }
func (m *ProvisionResource) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource) ProtoMessage() {}
func (*ProvisionResource) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{19}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{19}
}
func (m *ProvisionResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource.Unmarshal(m, b)
@ -2531,7 +2550,7 @@ func (m *ProvisionResource_Request) Reset() { *m = ProvisionResource_Req
func (m *ProvisionResource_Request) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource_Request) ProtoMessage() {}
func (*ProvisionResource_Request) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{19, 0}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{19, 0}
}
func (m *ProvisionResource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource_Request.Unmarshal(m, b)
@ -2577,7 +2596,7 @@ func (m *ProvisionResource_Response) Reset() { *m = ProvisionResource_Re
func (m *ProvisionResource_Response) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource_Response) ProtoMessage() {}
func (*ProvisionResource_Response) Descriptor() ([]byte, []int) {
return fileDescriptor_tfplugin5_84ffc2ac193fed94, []int{19, 1}
return fileDescriptor_tfplugin5_0417c8e6dca655d3, []int{19, 1}
}
func (m *ProvisionResource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource_Response.Unmarshal(m, b)
@ -3308,125 +3327,125 @@ var _Provisioner_serviceDesc = grpc.ServiceDesc{
Metadata: "tfplugin5.proto",
}
func init() { proto.RegisterFile("tfplugin5.proto", fileDescriptor_tfplugin5_84ffc2ac193fed94) }
func init() { proto.RegisterFile("tfplugin5.proto", fileDescriptor_tfplugin5_0417c8e6dca655d3) }
var fileDescriptor_tfplugin5_84ffc2ac193fed94 = []byte{
// 1862 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,
0x15, 0xf7, 0x72, 0x45, 0x89, 0x7c, 0xd4, 0x07, 0x35, 0x76, 0x5c, 0x76, 0x93, 0xb4, 0x2a, 0xfb,
0x21, 0x05, 0x89, 0xe9, 0x40, 0x6e, 0x93, 0x54, 0x35, 0x82, 0xca, 0xb2, 0x6a, 0x0b, 0x75, 0x54,
0x75, 0xe8, 0xd8, 0x05, 0x0a, 0x84, 0x18, 0x73, 0x47, 0xf4, 0xd6, 0xdc, 0x8f, 0xcc, 0x0e, 0x65,
0x11, 0x3d, 0x16, 0xcd, 0xb9, 0x97, 0x7e, 0x00, 0x0d, 0x7a, 0xe9, 0x3f, 0xd1, 0xf6, 0xd6, 0x53,
0xff, 0x81, 0xde, 0xd2, 0x9e, 0x8a, 0x1e, 0x8b, 0x1c, 0xdb, 0x4b, 0x81, 0x62, 0xbe, 0x76, 0x87,
0xe4, 0x52, 0x5a, 0xcb, 0x31, 0x8a, 0xdc, 0x76, 0xe6, 0xfd, 0xe6, 0xbd, 0xdf, 0xbc, 0x79, 0xf3,
0xde, 0x3c, 0x12, 0xd6, 0xf8, 0x71, 0x32, 0x1c, 0x0d, 0x82, 0xe8, 0x5b, 0x9d, 0x84, 0xc5, 0x3c,
0x46, 0xf5, 0x6c, 0xa2, 0x7d, 0x13, 0x96, 0x6f, 0x8f, 0x23, 0x12, 0x06, 0xfd, 0x07, 0x64, 0x38,
0xa2, 0xa8, 0x05, 0x4b, 0x61, 0x3a, 0x48, 0x48, 0xff, 0x49, 0xcb, 0xd9, 0x70, 0xb6, 0x96, 0xb1,
0x19, 0x22, 0x04, 0x0b, 0x3f, 0x49, 0xe3, 0xa8, 0x55, 0x91, 0xd3, 0xf2, 0xbb, 0xfd, 0x0f, 0x07,
0xe0, 0x76, 0x40, 0x06, 0x51, 0x9c, 0xf2, 0xa0, 0x8f, 0x76, 0xa0, 0x96, 0xd2, 0x13, 0xca, 0x02,
0x3e, 0x96, 0xab, 0x57, 0xb7, 0xbf, 0xd4, 0xc9, 0x6d, 0xe7, 0xc0, 0x4e, 0x57, 0xa3, 0x70, 0x86,
0x17, 0x86, 0xd3, 0x51, 0x18, 0x12, 0x36, 0x96, 0x16, 0xea, 0xd8, 0x0c, 0xd1, 0x55, 0x58, 0xf4,
0x29, 0x27, 0xc1, 0xb0, 0xe5, 0x4a, 0x81, 0x1e, 0xa1, 0xb7, 0xa0, 0x4e, 0x38, 0x67, 0xc1, 0xa3,
0x11, 0xa7, 0xad, 0x85, 0x0d, 0x67, 0xab, 0xb1, 0xdd, 0xb2, 0xcc, 0xed, 0x1a, 0xd9, 0x11, 0xe1,
0x8f, 0x71, 0x0e, 0x6d, 0x5f, 0x87, 0x9a, 0xb1, 0x8f, 0x1a, 0xb0, 0x74, 0x70, 0xf8, 0x60, 0xf7,
0xde, 0xc1, 0xed, 0xe6, 0x25, 0x54, 0x87, 0xea, 0x3e, 0xc6, 0x3f, 0xc0, 0x4d, 0x47, 0xcc, 0x3f,
0xdc, 0xc5, 0x87, 0x07, 0x87, 0x77, 0x9a, 0x95, 0xf6, 0xdf, 0x1c, 0x58, 0x99, 0xd0, 0x86, 0x6e,
0x40, 0x35, 0xe5, 0x34, 0x49, 0x5b, 0xce, 0x86, 0xbb, 0xd5, 0xd8, 0x7e, 0x75, 0x9e, 0xd9, 0x4e,
0x97, 0xd3, 0x04, 0x2b, 0xac, 0xf7, 0x4b, 0x07, 0x16, 0xc4, 0x18, 0x6d, 0xc2, 0x6a, 0xc6, 0xa6,
0x17, 0x91, 0x90, 0x4a, 0x67, 0xd5, 0xef, 0x5e, 0xc2, 0x2b, 0xd9, 0xfc, 0x21, 0x09, 0x29, 0xea,
0x00, 0xa2, 0x43, 0x1a, 0xd2, 0x88, 0xf7, 0x9e, 0xd0, 0x71, 0x2f, 0xe5, 0x2c, 0x88, 0x06, 0xca,
0x3d, 0x77, 0x2f, 0xe1, 0xa6, 0x96, 0x7d, 0x9f, 0x8e, 0xbb, 0x52, 0x82, 0xb6, 0x60, 0xcd, 0xc6,
0x07, 0x11, 0x97, 0x2e, 0x73, 0x85, 0xe6, 0x1c, 0x7c, 0x10, 0xf1, 0x5b, 0x20, 0x4e, 0x6a, 0x48,
0xfb, 0x3c, 0x66, 0xed, 0x1b, 0x82, 0x56, 0x9c, 0x78, 0x75, 0x58, 0xc2, 0xf4, 0xc3, 0x11, 0x4d,
0xb9, 0xb7, 0x01, 0x35, 0x4c, 0xd3, 0x24, 0x8e, 0x52, 0x8a, 0xae, 0x40, 0x75, 0x9f, 0xb1, 0x98,
0x29, 0x92, 0xb8, 0x4a, 0xc5, 0xa0, 0xfd, 0x2b, 0x07, 0x6a, 0x98, 0x3c, 0xed, 0x72, 0xc2, 0x69,
0x16, 0x1a, 0x4e, 0x1e, 0x1a, 0x68, 0x07, 0x96, 0x8e, 0x87, 0x84, 0x87, 0x24, 0x69, 0x55, 0xa4,
0x93, 0x36, 0x2c, 0x27, 0x99, 0x95, 0x9d, 0xef, 0x29, 0xc8, 0x7e, 0xc4, 0xd9, 0x18, 0x9b, 0x05,
0xde, 0x0e, 0x2c, 0xdb, 0x02, 0xd4, 0x04, 0xf7, 0x09, 0x1d, 0x6b, 0x02, 0xe2, 0x53, 0x90, 0x3a,
0x11, 0xf1, 0xaa, 0x63, 0x45, 0x0d, 0x76, 0x2a, 0xef, 0x38, 0xed, 0x4f, 0xaa, 0xb0, 0xd8, 0xed,
0x3f, 0xa6, 0x21, 0x11, 0x21, 0x75, 0x42, 0x59, 0x1a, 0x68, 0x66, 0x2e, 0x36, 0x43, 0x74, 0x0d,
0xaa, 0x8f, 0x86, 0x71, 0xff, 0x89, 0x5c, 0xde, 0xd8, 0xfe, 0x82, 0x45, 0x4d, 0xad, 0xed, 0xdc,
0x12, 0x62, 0xac, 0x50, 0xde, 0xef, 0x1c, 0xa8, 0xca, 0x89, 0x33, 0x54, 0x7e, 0x07, 0x20, 0x3b,
0xbc, 0x54, 0x6f, 0xf9, 0xe5, 0x59, 0xbd, 0x59, 0x78, 0x60, 0x0b, 0x8e, 0xde, 0x85, 0x86, 0xb4,
0xd4, 0xe3, 0xe3, 0x84, 0xa6, 0x2d, 0x77, 0x26, 0xaa, 0xf4, 0xea, 0x43, 0x9a, 0x72, 0xea, 0x2b,
0x6e, 0x20, 0x57, 0xdc, 0x17, 0x0b, 0xbc, 0xbf, 0x38, 0x50, 0xcf, 0x34, 0x8b, 0xe3, 0xc8, 0xa3,
0x0a, 0xcb, 0x6f, 0x31, 0x27, 0x74, 0x9b, 0xdb, 0x2b, 0xbe, 0xd1, 0x06, 0x34, 0x7c, 0x9a, 0xf6,
0x59, 0x90, 0x70, 0xb1, 0x21, 0x75, 0xbb, 0xec, 0x29, 0xe4, 0x41, 0x8d, 0xd1, 0x0f, 0x47, 0x01,
0xa3, 0xbe, 0xbc, 0x61, 0x35, 0x9c, 0x8d, 0x85, 0x2c, 0x96, 0x28, 0x32, 0x6c, 0x55, 0x95, 0xcc,
0x8c, 0x85, 0xac, 0x1f, 0x87, 0xc9, 0x88, 0x53, 0xbf, 0xb5, 0xa8, 0x64, 0x66, 0x8c, 0x5e, 0x81,
0x7a, 0x4a, 0xa3, 0x34, 0xe0, 0xc1, 0x09, 0x6d, 0x2d, 0x49, 0x61, 0x3e, 0xe1, 0x7d, 0x5c, 0x81,
0x86, 0xb5, 0x4b, 0xf4, 0x32, 0xd4, 0x05, 0x57, 0xeb, 0x9a, 0xe0, 0x9a, 0x98, 0x90, 0xf7, 0xe3,
0xd9, 0x8e, 0x11, 0xed, 0xc1, 0x52, 0x44, 0x53, 0x2e, 0xee, 0x90, 0x2b, 0xb3, 0xd3, 0x6b, 0x67,
0x7a, 0x58, 0x7e, 0x07, 0xd1, 0xe0, 0xbd, 0xd8, 0xa7, 0xd8, 0xac, 0x14, 0x84, 0xc2, 0x20, 0xea,
0x05, 0x9c, 0x86, 0xa9, 0xf4, 0x89, 0x8b, 0x6b, 0x61, 0x10, 0x1d, 0x88, 0xb1, 0x14, 0x92, 0x53,
0x2d, 0xac, 0x6a, 0x21, 0x39, 0x95, 0xc2, 0xf6, 0x2d, 0xb5, 0x33, 0xad, 0x71, 0x32, 0xf5, 0x00,
0x2c, 0x76, 0x0f, 0x0e, 0xef, 0xdc, 0xdb, 0x6f, 0x3a, 0xa8, 0x06, 0x0b, 0xf7, 0x0e, 0xba, 0xf7,
0x9b, 0x15, 0xb4, 0x04, 0x6e, 0x77, 0xff, 0x7e, 0xd3, 0x15, 0x1f, 0xef, 0xed, 0x1e, 0x35, 0x17,
0xda, 0xbf, 0x59, 0x80, 0xf5, 0x3b, 0x94, 0x1f, 0xb1, 0xf8, 0x24, 0xf0, 0x29, 0x53, 0xa4, 0xed,
0x9b, 0xfb, 0x6f, 0xd7, 0xba, 0xba, 0xd7, 0xa0, 0x96, 0x68, 0xa4, 0xf4, 0x5d, 0x63, 0x7b, 0x7d,
0x66, 0xc7, 0x38, 0x83, 0x20, 0x0a, 0x4d, 0x46, 0xd3, 0x78, 0xc4, 0xfa, 0xb4, 0x97, 0x4a, 0xa1,
0x09, 0xe4, 0x1d, 0x6b, 0xd9, 0x8c, 0xf9, 0x8e, 0xb1, 0x27, 0x3e, 0xe4, 0x6a, 0x35, 0x9f, 0xaa,
0x5b, 0xbd, 0xc6, 0x26, 0x67, 0xd1, 0x10, 0x2e, 0xfb, 0x84, 0x93, 0xde, 0x94, 0x25, 0x15, 0xf4,
0x37, 0xcb, 0x59, 0xba, 0x4d, 0x38, 0xe9, 0xce, 0xda, 0x5a, 0xf7, 0xa7, 0xe7, 0xd1, 0xdb, 0xd0,
0xf0, 0xb3, 0xc2, 0x23, 0x4e, 0x4c, 0x58, 0x79, 0xa9, 0xb0, 0x2c, 0x61, 0x1b, 0xe9, 0xbd, 0x0f,
0x57, 0x8a, 0xf6, 0x53, 0x90, 0x8c, 0x36, 0xed, 0x64, 0x54, 0xe8, 0xe3, 0x3c, 0x3f, 0x79, 0x0f,
0xe1, 0x6a, 0x31, 0xf9, 0xe7, 0x54, 0xdc, 0xfe, 0xc4, 0x81, 0x97, 0x8e, 0x18, 0x4d, 0x08, 0xa3,
0xc6, 0x6b, 0x7b, 0x71, 0x74, 0x1c, 0x0c, 0xbc, 0x9d, 0x2c, 0x3c, 0xd0, 0x75, 0x58, 0xec, 0xcb,
0x49, 0x1d, 0x0f, 0xf6, 0x95, 0xb1, 0xdf, 0x01, 0x58, 0xc3, 0xbc, 0x9f, 0x3b, 0x56, 0x3c, 0x7d,
0x17, 0xd6, 0x12, 0x65, 0xc1, 0xef, 0x95, 0x53, 0xb3, 0x6a, 0xf0, 0x8a, 0xca, 0xf4, 0x69, 0x54,
0xca, 0x9e, 0x46, 0xfb, 0x17, 0x15, 0xb8, 0xf2, 0x7e, 0x32, 0x60, 0xc4, 0xa7, 0xd9, 0xa9, 0x88,
0x0a, 0xe2, 0xb1, 0x7c, 0x73, 0x67, 0xe6, 0x0a, 0x2b, 0x73, 0x57, 0x26, 0x33, 0xf7, 0x9b, 0x50,
0x67, 0xe4, 0x69, 0x2f, 0x15, 0xea, 0x64, 0x62, 0x68, 0x6c, 0x5f, 0x2e, 0xa8, 0x55, 0xb8, 0xc6,
0xf4, 0x97, 0xf7, 0x33, 0xdb, 0x29, 0xef, 0xc2, 0xea, 0x48, 0x11, 0xf3, 0xb5, 0x8e, 0x73, 0x7c,
0xb2, 0x62, 0xe0, 0xaa, 0x78, 0x5e, 0xd8, 0x25, 0x7f, 0x72, 0xc0, 0x7b, 0x40, 0x86, 0x81, 0x2f,
0xc8, 0x69, 0x9f, 0x88, 0x72, 0xa0, 0x4f, 0xfd, 0x61, 0x49, 0xc7, 0xe4, 0x21, 0x51, 0x29, 0x17,
0x12, 0x7b, 0xd6, 0xe6, 0xa7, 0xc8, 0x3b, 0xa5, 0xc9, 0xff, 0xc1, 0x81, 0x96, 0x21, 0x9f, 0xdf,
0x87, 0xcf, 0x05, 0xf5, 0x3f, 0x3a, 0x50, 0x57, 0x44, 0x47, 0x8c, 0x7a, 0x83, 0x9c, 0xeb, 0xeb,
0xb0, 0xce, 0x29, 0x63, 0xe4, 0x38, 0x66, 0x61, 0xcf, 0x7e, 0x26, 0xd4, 0x71, 0x33, 0x13, 0x3c,
0xd0, 0x51, 0xf7, 0xff, 0xe1, 0xfe, 0xa9, 0x03, 0xcb, 0x98, 0x12, 0xdf, 0xc4, 0x8b, 0xe7, 0x97,
0x74, 0xf5, 0x4d, 0x58, 0xe9, 0x8f, 0x18, 0x13, 0x4f, 0x4b, 0x15, 0xe4, 0xe7, 0xb0, 0x5e, 0xd6,
0x68, 0x75, 0x61, 0xc6, 0x16, 0xf7, 0x6f, 0x42, 0x3d, 0xa2, 0x4f, 0xcb, 0x5d, 0x95, 0x5a, 0x44,
0x9f, 0x3e, 0xe7, 0x2d, 0xf9, 0x68, 0x01, 0xd0, 0xd1, 0x90, 0x44, 0x66, 0xc7, 0x7b, 0x8f, 0x49,
0x34, 0xa0, 0xde, 0x7f, 0x9d, 0x92, 0x1b, 0x7f, 0x07, 0x1a, 0x09, 0x0b, 0x62, 0x56, 0x6e, 0xdb,
0x20, 0xb1, 0x8a, 0xf2, 0x3e, 0xa0, 0x84, 0xc5, 0x49, 0x9c, 0x52, 0xbf, 0x97, 0xef, 0xd8, 0x3d,
0x5b, 0x41, 0xd3, 0x2c, 0x39, 0x34, 0x3b, 0xcf, 0x03, 0x65, 0xa1, 0x54, 0xa0, 0xa0, 0xaf, 0xc2,
0x8a, 0x62, 0x9c, 0xb0, 0xe0, 0x44, 0x98, 0xac, 0xca, 0x37, 0xdf, 0xb2, 0x9c, 0x3c, 0x52, 0x73,
0xde, 0xa7, 0x76, 0x0a, 0xbb, 0x09, 0x2b, 0xc9, 0x90, 0x44, 0x51, 0xd9, 0x0c, 0xb6, 0xac, 0xd1,
0x8a, 0xe0, 0x9e, 0x78, 0x36, 0xc8, 0x47, 0x61, 0xda, 0x63, 0x34, 0x19, 0x92, 0x3e, 0xd5, 0xe7,
0x33, 0xbf, 0x1d, 0x5b, 0x33, 0x2b, 0xb0, 0x5a, 0x80, 0x36, 0x61, 0xcd, 0x50, 0x30, 0xb4, 0x5d,
0x49, 0x7b, 0x55, 0x4f, 0x6b, 0xe2, 0x17, 0xae, 0xe7, 0xed, 0xbf, 0xba, 0x70, 0x79, 0x37, 0x49,
0x86, 0xe3, 0xa9, 0x48, 0xf8, 0xcf, 0x8b, 0x8f, 0x84, 0x19, 0xff, 0xba, 0xcf, 0xe2, 0xdf, 0x67,
0x0e, 0x80, 0x02, 0x5f, 0x56, 0x8b, 0x7c, 0xe9, 0xfd, 0xd9, 0x79, 0xee, 0x7b, 0xd9, 0x82, 0x25,
0x63, 0x43, 0xb5, 0x16, 0x66, 0x38, 0x7d, 0x50, 0x6e, 0xd9, 0x83, 0x42, 0x6f, 0x00, 0x1a, 0xd2,
0x01, 0xe9, 0x8f, 0x65, 0x37, 0xd4, 0x4b, 0xc7, 0x29, 0xa7, 0xa1, 0x6e, 0x3f, 0x9a, 0x4a, 0x22,
0xca, 0x5c, 0x57, 0xce, 0xb7, 0xff, 0x55, 0x81, 0xcb, 0x07, 0x61, 0x12, 0x33, 0x3e, 0xf9, 0x2e,
0x78, 0xab, 0xe4, 0xa9, 0xae, 0x42, 0x25, 0xf0, 0x75, 0x1b, 0x59, 0x09, 0x7c, 0xef, 0x14, 0x9a,
0x4a, 0x1d, 0xcd, 0x92, 0xe4, 0xb9, 0x4d, 0x48, 0xa9, 0x80, 0x50, 0x28, 0xdb, 0x61, 0xee, 0x84,
0xc3, 0xbc, 0xdf, 0xdb, 0xa7, 0xf1, 0x01, 0xa0, 0x40, 0xd3, 0xe8, 0x99, 0x07, 0xb4, 0x49, 0xf4,
0xd7, 0x2d, 0x13, 0x05, 0x5b, 0xef, 0x4c, 0xf3, 0xc7, 0xeb, 0xc1, 0xd4, 0x4c, 0x7a, 0xf1, 0x7c,
0xfa, 0x77, 0x07, 0x56, 0x45, 0x05, 0xc9, 0x8b, 0xf6, 0x8b, 0x2b, 0xd7, 0x6c, 0xa2, 0x97, 0xa9,
0x96, 0x0a, 0x4d, 0xed, 0xe6, 0x0b, 0xef, 0xef, 0xb7, 0x0e, 0x5c, 0x31, 0x8d, 0x87, 0x28, 0xd4,
0x45, 0x4d, 0xd6, 0xa9, 0xc5, 0xeb, 0x86, 0xc8, 0x0a, 0x19, 0x76, 0x7e, 0x9b, 0x65, 0xa3, 0x2e,
0xce, 0xee, 0x63, 0x07, 0xbe, 0x68, 0x9e, 0x4d, 0x16, 0xc5, 0xcf, 0xe0, 0xa1, 0xff, 0x99, 0x3c,
0x2f, 0xfe, 0xe9, 0xc0, 0x7a, 0x46, 0x2b, 0x7b, 0x63, 0xa4, 0x17, 0xa7, 0x85, 0xde, 0x06, 0xe8,
0xc7, 0x51, 0x44, 0xfb, 0xdc, 0xbc, 0xdc, 0xcf, 0xca, 0xb9, 0x39, 0xd4, 0xfb, 0xb1, 0xb5, 0x9f,
0xab, 0xb0, 0x18, 0x8f, 0x78, 0x32, 0xe2, 0x3a, 0x24, 0xf5, 0xe8, 0xc2, 0xc7, 0xb0, 0xfd, 0xeb,
0x3a, 0xd4, 0x4c, 0x93, 0x85, 0x7e, 0x04, 0xf5, 0x3b, 0x94, 0xeb, 0xdf, 0x9c, 0xbe, 0x76, 0x4e,
0xff, 0xaa, 0x02, 0xe8, 0xeb, 0xa5, 0xba, 0x5c, 0x34, 0x9c, 0xd3, 0xd1, 0xa1, 0x2d, 0x6b, 0x7d,
0x21, 0x22, 0xb3, 0xf4, 0x5a, 0x09, 0xa4, 0xb6, 0xf6, 0xd3, 0xb3, 0xda, 0x09, 0x74, 0xcd, 0x52,
0x34, 0x1f, 0x96, 0xd9, 0xed, 0x94, 0x85, 0x6b, 0xe3, 0xa3, 0xf9, 0xed, 0x00, 0x7a, 0xbd, 0x40,
0xd7, 0x34, 0x28, 0x33, 0xfc, 0x46, 0x39, 0xb0, 0x36, 0x1b, 0x14, 0x77, 0x95, 0x68, 0xd3, 0xd2,
0x52, 0x04, 0xc8, 0xcc, 0x6d, 0x9d, 0x0f, 0xd4, 0xa6, 0xee, 0x5a, 0x5d, 0x03, 0x7a, 0xc5, 0x5a,
0x96, 0xcd, 0x66, 0x4a, 0x5f, 0x9d, 0x23, 0xd5, 0x9a, 0x7e, 0x38, 0xf9, 0x86, 0x47, 0x5f, 0xb6,
0xbb, 0x55, 0x4b, 0x90, 0xe9, 0xdb, 0x98, 0x0f, 0xd0, 0x2a, 0xfb, 0x45, 0x8f, 0x64, 0x64, 0x87,
0xe9, 0xac, 0x38, 0x53, 0xff, 0x8d, 0xf3, 0x60, 0xda, 0xc8, 0x71, 0xe1, 0x03, 0x0c, 0xd9, 0xcb,
0x0b, 0xe4, 0x99, 0x99, 0xcd, 0x73, 0x71, 0xb9, 0x9d, 0x82, 0xb2, 0x38, 0x61, 0xa7, 0xa8, 0x6c,
0x16, 0xd9, 0x29, 0xc6, 0x69, 0x3b, 0x0f, 0xa7, 0x2b, 0x21, 0xfa, 0xca, 0x94, 0xa3, 0x73, 0x51,
0xa6, 0xbd, 0x7d, 0x16, 0x44, 0x2b, 0xfe, 0xb6, 0xfa, 0x45, 0x1e, 0x4d, 0xfc, 0xa0, 0xc9, 0xe3,
0x24, 0x53, 0xd2, 0x9a, 0x15, 0xa8, 0xa5, 0xdb, 0x1f, 0xb9, 0xd0, 0xb0, 0x0a, 0x03, 0xfa, 0xc0,
0x4e, 0x4e, 0x9b, 0x05, 0x69, 0xc7, 0xae, 0x71, 0x85, 0x51, 0x3d, 0x07, 0xa8, 0xa9, 0x9e, 0x9e,
0x51, 0x8f, 0x50, 0xd1, 0x5d, 0x9c, 0x41, 0x65, 0x46, 0xaf, 0x95, 0x44, 0x6b, 0xcb, 0x8f, 0x0a,
0x4a, 0xcd, 0x44, 0xfa, 0x9d, 0x91, 0x16, 0xa6, 0xdf, 0x22, 0x94, 0xb2, 0xf0, 0xa6, 0xf3, 0x1c,
0x07, 0xf1, 0x68, 0x51, 0xfe, 0xd5, 0x76, 0xe3, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xda,
0x07, 0x8d, 0x7d, 0x1b, 0x00, 0x00,
var fileDescriptor_tfplugin5_0417c8e6dca655d3 = []byte{
// 1867 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x73, 0x1b, 0x49,
0x15, 0xcf, 0x68, 0x24, 0x5b, 0x7a, 0xf2, 0x87, 0xdc, 0xc9, 0x06, 0x31, 0xbb, 0x0b, 0x46, 0x7c,
0xd8, 0x5b, 0xbb, 0x51, 0xb6, 0x1c, 0xd8, 0x5d, 0x4c, 0x6a, 0x0b, 0xc7, 0x31, 0x89, 0x8b, 0xac,
0x31, 0xad, 0x6c, 0x42, 0x15, 0x55, 0xab, 0xea, 0x68, 0xda, 0xca, 0x10, 0x69, 0x66, 0xb6, 0xa7,
0x65, 0x5b, 0xc5, 0x91, 0x82, 0x33, 0x17, 0x3e, 0xaa, 0x58, 0xb8, 0xf0, 0x2f, 0x70, 0x00, 0x6e,
0x9c, 0xf8, 0x07, 0xb8, 0x2d, 0x9c, 0x28, 0x8e, 0x14, 0x47, 0xb8, 0x50, 0x45, 0xf5, 0xd7, 0x4c,
0x4b, 0x1a, 0xd9, 0x13, 0x7b, 0x53, 0xd4, 0xde, 0xa6, 0xfb, 0xfd, 0xfa, 0xbd, 0x5f, 0xbf, 0xf7,
0xfa, 0xbd, 0x6e, 0x09, 0x56, 0xf9, 0x51, 0x3c, 0x18, 0xf5, 0x83, 0xf0, 0x6b, 0xed, 0x98, 0x45,
0x3c, 0x42, 0xb5, 0x74, 0xa2, 0x75, 0x1b, 0x96, 0xee, 0x8e, 0x43, 0x32, 0x0c, 0x7a, 0x8f, 0xc8,
0x60, 0x44, 0x51, 0x13, 0x16, 0x87, 0x49, 0x3f, 0x26, 0xbd, 0x67, 0x4d, 0x67, 0xdd, 0xd9, 0x5c,
0xc2, 0x66, 0x88, 0x10, 0x94, 0x7f, 0x90, 0x44, 0x61, 0xb3, 0x24, 0xa7, 0xe5, 0x77, 0xeb, 0xef,
0x0e, 0xc0, 0xdd, 0x80, 0xf4, 0xc3, 0x28, 0xe1, 0x41, 0x0f, 0x6d, 0x43, 0x35, 0xa1, 0xc7, 0x94,
0x05, 0x7c, 0x2c, 0x57, 0xaf, 0x6c, 0x7d, 0xae, 0x9d, 0xd9, 0xce, 0x80, 0xed, 0x8e, 0x46, 0xe1,
0x14, 0x2f, 0x0c, 0x27, 0xa3, 0xe1, 0x90, 0xb0, 0xb1, 0xb4, 0x50, 0xc3, 0x66, 0x88, 0xae, 0xc3,
0x82, 0x4f, 0x39, 0x09, 0x06, 0x4d, 0x57, 0x0a, 0xf4, 0x08, 0xbd, 0x05, 0x35, 0xc2, 0x39, 0x0b,
0x9e, 0x8c, 0x38, 0x6d, 0x96, 0xd7, 0x9d, 0xcd, 0xfa, 0x56, 0xd3, 0x32, 0xb7, 0x63, 0x64, 0x87,
0x84, 0x3f, 0xc5, 0x19, 0xb4, 0x75, 0x13, 0xaa, 0xc6, 0x3e, 0xaa, 0xc3, 0xe2, 0xfe, 0xc1, 0xa3,
0x9d, 0x07, 0xfb, 0x77, 0x1b, 0x57, 0x50, 0x0d, 0x2a, 0x7b, 0x18, 0x7f, 0x07, 0x37, 0x1c, 0x31,
0xff, 0x78, 0x07, 0x1f, 0xec, 0x1f, 0xdc, 0x6b, 0x94, 0x5a, 0x7f, 0x75, 0x60, 0x79, 0x42, 0x1b,
0xba, 0x05, 0x95, 0x84, 0xd3, 0x38, 0x69, 0x3a, 0xeb, 0xee, 0x66, 0x7d, 0xeb, 0xd5, 0x79, 0x66,
0xdb, 0x1d, 0x4e, 0x63, 0xac, 0xb0, 0xde, 0xcf, 0x1c, 0x28, 0x8b, 0x31, 0xda, 0x80, 0x95, 0x94,
0x4d, 0x37, 0x24, 0x43, 0x2a, 0x9d, 0x55, 0xbb, 0x7f, 0x05, 0x2f, 0xa7, 0xf3, 0x07, 0x64, 0x48,
0x51, 0x1b, 0x10, 0x1d, 0xd0, 0x21, 0x0d, 0x79, 0xf7, 0x19, 0x1d, 0x77, 0x13, 0xce, 0x82, 0xb0,
0xaf, 0xdc, 0x73, 0xff, 0x0a, 0x6e, 0x68, 0xd9, 0xb7, 0xe9, 0xb8, 0x23, 0x25, 0x68, 0x13, 0x56,
0x6d, 0x7c, 0x10, 0x72, 0xe9, 0x32, 0x57, 0x68, 0xce, 0xc0, 0xfb, 0x21, 0xbf, 0x03, 0x22, 0x52,
0x03, 0xda, 0xe3, 0x11, 0x6b, 0xdd, 0x12, 0xb4, 0xa2, 0xd8, 0xab, 0xc1, 0x22, 0xa6, 0x1f, 0x8e,
0x68, 0xc2, 0xbd, 0x75, 0xa8, 0x62, 0x9a, 0xc4, 0x51, 0x98, 0x50, 0x74, 0x0d, 0x2a, 0x7b, 0x8c,
0x45, 0x4c, 0x91, 0xc4, 0x15, 0x2a, 0x06, 0xad, 0x9f, 0x3b, 0x50, 0xc5, 0xe4, 0xa4, 0xc3, 0x09,
0xa7, 0x69, 0x6a, 0x38, 0x59, 0x6a, 0xa0, 0x6d, 0x58, 0x3c, 0x1a, 0x10, 0x3e, 0x24, 0x71, 0xb3,
0x24, 0x9d, 0xb4, 0x6e, 0x39, 0xc9, 0xac, 0x6c, 0x7f, 0x4b, 0x41, 0xf6, 0x42, 0xce, 0xc6, 0xd8,
0x2c, 0xf0, 0xb6, 0x61, 0xc9, 0x16, 0xa0, 0x06, 0xb8, 0xcf, 0xe8, 0x58, 0x13, 0x10, 0x9f, 0x82,
0xd4, 0xb1, 0xc8, 0x57, 0x9d, 0x2b, 0x6a, 0xb0, 0x5d, 0x7a, 0xc7, 0x69, 0x7d, 0x5c, 0x81, 0x85,
0x4e, 0xef, 0x29, 0x1d, 0x12, 0x91, 0x52, 0xc7, 0x94, 0x25, 0x81, 0x66, 0xe6, 0x62, 0x33, 0x44,
0x37, 0xa0, 0xf2, 0x64, 0x10, 0xf5, 0x9e, 0xc9, 0xe5, 0xf5, 0xad, 0xcf, 0x58, 0xd4, 0xd4, 0xda,
0xf6, 0x1d, 0x21, 0xc6, 0x0a, 0xe5, 0xfd, 0xc6, 0x81, 0x8a, 0x9c, 0x38, 0x43, 0xe5, 0x37, 0x00,
0xd2, 0xe0, 0x25, 0x7a, 0xcb, 0x2f, 0xcf, 0xea, 0x4d, 0xd3, 0x03, 0x5b, 0x70, 0xf4, 0x2e, 0xd4,
0xa5, 0xa5, 0x2e, 0x1f, 0xc7, 0x34, 0x69, 0xba, 0x33, 0x59, 0xa5, 0x57, 0x1f, 0xd0, 0x84, 0x53,
0x5f, 0x71, 0x03, 0xb9, 0xe2, 0xa1, 0x58, 0xe0, 0xfd, 0xd9, 0x81, 0x5a, 0xaa, 0x59, 0x84, 0x23,
0xcb, 0x2a, 0x2c, 0xbf, 0xc5, 0x9c, 0xd0, 0x6d, 0x4e, 0xaf, 0xf8, 0x46, 0xeb, 0x50, 0xf7, 0x69,
0xd2, 0x63, 0x41, 0xcc, 0xc5, 0x86, 0xd4, 0xe9, 0xb2, 0xa7, 0x90, 0x07, 0x55, 0x46, 0x3f, 0x1c,
0x05, 0x8c, 0xfa, 0xf2, 0x84, 0x55, 0x71, 0x3a, 0x16, 0xb2, 0x48, 0xa2, 0xc8, 0xa0, 0x59, 0x51,
0x32, 0x33, 0x16, 0xb2, 0x5e, 0x34, 0x8c, 0x47, 0x9c, 0xfa, 0xcd, 0x05, 0x25, 0x33, 0x63, 0xf4,
0x0a, 0xd4, 0x12, 0x1a, 0x26, 0x01, 0x0f, 0x8e, 0x69, 0x73, 0x51, 0x0a, 0xb3, 0x09, 0xef, 0xa3,
0x12, 0xd4, 0xad, 0x5d, 0xa2, 0x97, 0xa1, 0x26, 0xb8, 0x5a, 0xc7, 0x04, 0x57, 0xc5, 0x84, 0x3c,
0x1f, 0xcf, 0x17, 0x46, 0xb4, 0x0b, 0x8b, 0x21, 0x4d, 0xb8, 0x38, 0x43, 0xae, 0xac, 0x4e, 0xaf,
0x9d, 0xe9, 0x61, 0xf9, 0x1d, 0x84, 0xfd, 0xf7, 0x22, 0x9f, 0x62, 0xb3, 0x52, 0x10, 0x1a, 0x06,
0x61, 0x37, 0xe0, 0x74, 0x98, 0x48, 0x9f, 0xb8, 0xb8, 0x3a, 0x0c, 0xc2, 0x7d, 0x31, 0x96, 0x42,
0x72, 0xaa, 0x85, 0x15, 0x2d, 0x24, 0xa7, 0x52, 0xd8, 0xba, 0xa3, 0x76, 0xa6, 0x35, 0x4e, 0x96,
0x1e, 0x80, 0x85, 0xce, 0xfe, 0xc1, 0xbd, 0x07, 0x7b, 0x0d, 0x07, 0x55, 0xa1, 0xfc, 0x60, 0xbf,
0xf3, 0xb0, 0x51, 0x42, 0x8b, 0xe0, 0x76, 0xf6, 0x1e, 0x36, 0x5c, 0xf1, 0xf1, 0xde, 0xce, 0x61,
0xa3, 0xdc, 0xfa, 0x65, 0x19, 0xd6, 0xee, 0x51, 0x7e, 0xc8, 0xa2, 0xe3, 0xc0, 0xa7, 0x4c, 0x91,
0xb6, 0x4f, 0xee, 0xbf, 0x5d, 0xeb, 0xe8, 0xde, 0x80, 0x6a, 0xac, 0x91, 0xd2, 0x77, 0xf5, 0xad,
0xb5, 0x99, 0x1d, 0xe3, 0x14, 0x82, 0x28, 0x34, 0x18, 0x4d, 0xa2, 0x11, 0xeb, 0xd1, 0x6e, 0x22,
0x85, 0x26, 0x91, 0xb7, 0xad, 0x65, 0x33, 0xe6, 0xdb, 0xc6, 0x9e, 0xf8, 0x90, 0xab, 0xd5, 0x7c,
0xa2, 0x4e, 0xf5, 0x2a, 0x9b, 0x9c, 0x45, 0x03, 0xb8, 0xea, 0x13, 0x4e, 0xba, 0x53, 0x96, 0x54,
0xd2, 0xdf, 0x2e, 0x66, 0xe9, 0x2e, 0xe1, 0xa4, 0x33, 0x6b, 0x6b, 0xcd, 0x9f, 0x9e, 0x47, 0x6f,
0x43, 0xdd, 0x4f, 0x1b, 0x8f, 0x88, 0x98, 0xb0, 0xf2, 0x52, 0x6e, 0x5b, 0xc2, 0x36, 0xd2, 0x7b,
0x1f, 0xae, 0xe5, 0xed, 0x27, 0xa7, 0x18, 0x6d, 0xd8, 0xc5, 0x28, 0xd7, 0xc7, 0x59, 0x7d, 0xf2,
0x1e, 0xc3, 0xf5, 0x7c, 0xf2, 0x97, 0x54, 0xdc, 0xfa, 0xd8, 0x81, 0x97, 0x0e, 0x19, 0x8d, 0x09,
0xa3, 0xc6, 0x6b, 0xbb, 0x51, 0x78, 0x14, 0xf4, 0xbd, 0xed, 0x34, 0x3d, 0xd0, 0x4d, 0x58, 0xe8,
0xc9, 0x49, 0x9d, 0x0f, 0xf6, 0x91, 0xb1, 0xef, 0x01, 0x58, 0xc3, 0xbc, 0x1f, 0x3b, 0x56, 0x3e,
0x7d, 0x13, 0x56, 0x63, 0x65, 0xc1, 0xef, 0x16, 0x53, 0xb3, 0x62, 0xf0, 0x8a, 0xca, 0x74, 0x34,
0x4a, 0x45, 0xa3, 0xd1, 0xfa, 0x69, 0x09, 0xae, 0xbd, 0x1f, 0xf7, 0x19, 0xf1, 0x69, 0x1a, 0x15,
0xd1, 0x41, 0x3c, 0x96, 0x6d, 0xee, 0xcc, 0x5a, 0x61, 0x55, 0xee, 0xd2, 0x64, 0xe5, 0x7e, 0x13,
0x6a, 0x8c, 0x9c, 0x74, 0x13, 0xa1, 0x4e, 0x16, 0x86, 0xfa, 0xd6, 0xd5, 0x9c, 0x5e, 0x85, 0xab,
0x4c, 0x7f, 0x79, 0x3f, 0xb2, 0x9d, 0xf2, 0x2e, 0xac, 0x8c, 0x14, 0x31, 0x5f, 0xeb, 0x38, 0xc7,
0x27, 0xcb, 0x06, 0xae, 0x9a, 0xe7, 0x85, 0x5d, 0xf2, 0x47, 0x07, 0xbc, 0x47, 0x64, 0x10, 0xf8,
0x82, 0x9c, 0xf6, 0x89, 0x68, 0x07, 0x3a, 0xea, 0x8f, 0x0b, 0x3a, 0x26, 0x4b, 0x89, 0x52, 0xb1,
0x94, 0xd8, 0xb5, 0x36, 0x3f, 0x45, 0xde, 0x29, 0x4c, 0xfe, 0xf7, 0x0e, 0x34, 0x0d, 0xf9, 0xec,
0x3c, 0x7c, 0x2a, 0xa8, 0xff, 0xc1, 0x81, 0x9a, 0x22, 0x3a, 0x62, 0xd4, 0xeb, 0x67, 0x5c, 0x5f,
0x87, 0x35, 0x4e, 0x19, 0x23, 0x47, 0x11, 0x1b, 0x76, 0xed, 0x6b, 0x42, 0x0d, 0x37, 0x52, 0xc1,
0x23, 0x9d, 0x75, 0xff, 0x1f, 0xee, 0xff, 0x72, 0x60, 0x09, 0x53, 0xe2, 0x9b, 0x7c, 0xf1, 0xfc,
0x82, 0xae, 0xbe, 0x0d, 0xcb, 0xbd, 0x11, 0x63, 0xe2, 0x6a, 0xa9, 0x92, 0xfc, 0x1c, 0xd6, 0x4b,
0x1a, 0xad, 0x0e, 0xcc, 0xd8, 0xe2, 0xfe, 0x55, 0xa8, 0x85, 0xf4, 0xa4, 0xd8, 0x51, 0xa9, 0x86,
0xf4, 0xe4, 0x92, 0xa7, 0xe4, 0x77, 0x65, 0x40, 0x87, 0x03, 0x12, 0x9a, 0x1d, 0xef, 0x3e, 0x25,
0x61, 0x9f, 0x7a, 0xff, 0x75, 0x0a, 0x6e, 0xfc, 0x1d, 0xa8, 0xc7, 0x2c, 0x88, 0x58, 0xb1, 0x6d,
0x83, 0xc4, 0x2a, 0xca, 0x7b, 0x80, 0x62, 0x16, 0xc5, 0x51, 0x42, 0xfd, 0x6e, 0xb6, 0x63, 0xf7,
0x6c, 0x05, 0x0d, 0xb3, 0xe4, 0xc0, 0xec, 0x3c, 0x4b, 0x94, 0x72, 0xa1, 0x44, 0x41, 0x5f, 0x84,
0x65, 0xc5, 0x38, 0x66, 0xc1, 0xb1, 0x30, 0x59, 0x91, 0x77, 0xbe, 0x25, 0x39, 0x79, 0xa8, 0xe6,
0xbc, 0x5f, 0x97, 0xac, 0x90, 0xdc, 0x86, 0xe5, 0x78, 0x40, 0xc2, 0xb0, 0x68, 0x05, 0x5b, 0xd2,
0x68, 0x45, 0x70, 0x57, 0x5c, 0x1b, 0xe4, 0xa5, 0x30, 0xe9, 0x32, 0x1a, 0x0f, 0x48, 0x8f, 0xea,
0xf8, 0xcc, 0x7f, 0x8e, 0xad, 0x9a, 0x15, 0x58, 0x2d, 0x40, 0x1b, 0xb0, 0x6a, 0x28, 0x18, 0xda,
0xae, 0xa4, 0xbd, 0xa2, 0xa7, 0x35, 0xf1, 0x0b, 0xf7, 0x73, 0xf4, 0x06, 0xa0, 0x01, 0xed, 0x93,
0xde, 0x58, 0x5e, 0xb2, 0xbb, 0xc9, 0x38, 0xe1, 0x74, 0xa8, 0x6f, 0xae, 0x0d, 0x25, 0x11, 0xd5,
0xb3, 0x23, 0xe7, 0x5b, 0x7f, 0x71, 0xe1, 0xea, 0x4e, 0x1c, 0x0f, 0xc6, 0x53, 0x79, 0xf3, 0x9f,
0x17, 0x9f, 0x37, 0x33, 0xd1, 0x70, 0x9f, 0x27, 0x1a, 0xcf, 0x9d, 0x2e, 0x39, 0x9e, 0xaf, 0xe4,
0x79, 0xde, 0xfb, 0x93, 0x73, 0xe9, 0x53, 0xdc, 0x84, 0x45, 0x63, 0x43, 0x3d, 0x44, 0xcc, 0x70,
0x3a, 0xac, 0xee, 0x25, 0xc3, 0x5a, 0x9e, 0x13, 0xd6, 0x7f, 0x96, 0xe0, 0xea, 0xfe, 0x30, 0x8e,
0x18, 0x9f, 0xbc, 0x45, 0xbc, 0x55, 0x30, 0xaa, 0x2b, 0x50, 0x0a, 0x7c, 0xfd, 0xe8, 0x2c, 0x05,
0xbe, 0x77, 0x0a, 0x0d, 0xa5, 0x8e, 0xa6, 0x25, 0xf5, 0xdc, 0x27, 0x4b, 0xa1, 0x84, 0x50, 0x28,
0xdb, 0x61, 0xee, 0x84, 0xc3, 0xbc, 0xdf, 0xda, 0xd1, 0xf8, 0x00, 0x50, 0xa0, 0x69, 0x74, 0xcd,
0x75, 0xdb, 0xb4, 0x85, 0x9b, 0x96, 0x89, 0x9c, 0xad, 0xb7, 0xa7, 0xf9, 0xe3, 0xb5, 0x60, 0x6a,
0x26, 0xb9, 0x78, 0xf5, 0xfd, 0x9b, 0x03, 0x2b, 0xa2, 0xdf, 0x64, 0x2d, 0xfe, 0xc5, 0x35, 0x77,
0x36, 0xf1, 0xf2, 0xa9, 0x14, 0x4a, 0x4d, 0xed, 0xe6, 0x0b, 0xef, 0xef, 0x57, 0x0e, 0x5c, 0x33,
0xcf, 0x14, 0xd1, 0xd6, 0xf3, 0x9e, 0x64, 0xa7, 0x16, 0xaf, 0x5b, 0xa2, 0x2a, 0xa4, 0xd8, 0xf9,
0x8f, 0x32, 0x1b, 0x75, 0x71, 0x76, 0x1f, 0x39, 0xf0, 0x59, 0x73, 0xc9, 0xb2, 0x28, 0x7e, 0x02,
0xcf, 0x82, 0x4f, 0xe4, 0x32, 0xf2, 0x0f, 0x07, 0xd6, 0x52, 0x5a, 0xe9, 0x8d, 0x24, 0xb9, 0x38,
0x2d, 0xf4, 0x36, 0x40, 0x2f, 0x0a, 0x43, 0xda, 0xe3, 0xe6, 0x9e, 0x7f, 0x56, 0xcd, 0xcd, 0xa0,
0xde, 0xf7, 0xad, 0xfd, 0x5c, 0x87, 0x85, 0x68, 0xc4, 0xe3, 0x11, 0xd7, 0x29, 0xa9, 0x47, 0x17,
0x0e, 0xc3, 0xd6, 0x2f, 0x6a, 0x50, 0x35, 0x4f, 0x32, 0xf4, 0x3d, 0xa8, 0xdd, 0xa3, 0x5c, 0xff,
0x42, 0xf5, 0xa5, 0x73, 0x5e, 0xbb, 0x2a, 0x81, 0xbe, 0x5c, 0xe8, 0x4d, 0x8c, 0x06, 0x73, 0xde,
0x7f, 0x68, 0xd3, 0x5a, 0x9f, 0x8b, 0x48, 0x2d, 0xbd, 0x56, 0x00, 0xa9, 0xad, 0xfd, 0xf0, 0xac,
0xc7, 0x07, 0xba, 0x61, 0x29, 0x9a, 0x0f, 0x4b, 0xed, 0xb6, 0x8b, 0xc2, 0xb5, 0xf1, 0xd1, 0xfc,
0xc7, 0x03, 0x7a, 0x3d, 0x47, 0xd7, 0x34, 0x28, 0x35, 0xfc, 0x46, 0x31, 0xb0, 0x36, 0x1b, 0xe4,
0xbf, 0x41, 0xd1, 0x86, 0xa5, 0x25, 0x0f, 0x90, 0x9a, 0xdb, 0x3c, 0x1f, 0xa8, 0x4d, 0xdd, 0xb7,
0xde, 0x18, 0xe8, 0x15, 0x6b, 0x59, 0x3a, 0x9b, 0x2a, 0x7d, 0x75, 0x8e, 0x54, 0x6b, 0xfa, 0xee,
0xe4, 0x8d, 0x1f, 0x7d, 0xde, 0x7e, 0xdb, 0x5a, 0x82, 0x54, 0xdf, 0xfa, 0x7c, 0x80, 0x56, 0xd9,
0xcb, 0xbb, 0x52, 0x23, 0x3b, 0x4d, 0x67, 0xc5, 0xa9, 0xfa, 0xaf, 0x9c, 0x07, 0xd3, 0x46, 0x8e,
0x72, 0x2f, 0x60, 0xc8, 0x5e, 0x9e, 0x23, 0x4f, 0xcd, 0x6c, 0x9c, 0x8b, 0xcb, 0xec, 0xe4, 0xb4,
0xc5, 0x09, 0x3b, 0x79, 0x6d, 0x33, 0xcf, 0x4e, 0x3e, 0x4e, 0xdb, 0x79, 0x3c, 0xdd, 0x09, 0xd1,
0x17, 0xa6, 0x1c, 0x9d, 0x89, 0x52, 0xed, 0xad, 0xb3, 0x20, 0x5a, 0xf1, 0xd7, 0xd5, 0xef, 0xf7,
0x68, 0xe2, 0xe7, 0x4f, 0x1e, 0xc5, 0xa9, 0x92, 0xe6, 0xac, 0x40, 0x2d, 0xdd, 0xfa, 0x89, 0x0b,
0x75, 0xab, 0x31, 0xa0, 0x0f, 0xec, 0xe2, 0xb4, 0x91, 0x53, 0x76, 0xec, 0x1e, 0x97, 0x9b, 0xd5,
0x73, 0x80, 0x9a, 0xea, 0xe9, 0x19, 0xfd, 0x08, 0xe5, 0x9d, 0xc5, 0x19, 0x54, 0x6a, 0xf4, 0x46,
0x41, 0xb4, 0xb6, 0xfc, 0x24, 0xa7, 0xd5, 0x4c, 0x94, 0xdf, 0x19, 0x69, 0x6e, 0xf9, 0xcd, 0x43,
0x29, 0x0b, 0x6f, 0x3a, 0x97, 0x08, 0xc4, 0x93, 0x05, 0xf9, 0xc7, 0xdc, 0xad, 0xff, 0x05, 0x00,
0x00, 0xff, 0xff, 0xbc, 0x68, 0xf6, 0x08, 0xab, 0x1b, 0x00, 0x00,
}

View File

@ -239,6 +239,20 @@ message PlanResourceChange {
repeated AttributePath requires_replace = 2;
bytes planned_private = 3;
repeated Diagnostic diagnostics = 4;
// This may be set only by the helper/schema "SDK" in the main Terraform
// repository, to request that Terraform Core >=0.12 permit additional
// inconsistencies that can result from the legacy SDK type system
// and its imprecise mapping to the >=0.12 type system.
// The change in behavior implied by this flag makes sense only for the
// specific details of the legacy SDK type system, and are not a general
// mechanism to avoid proper type handling in providers.
//
// ==== DO NOT USE THIS ====
// ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ====
// ==== DO NOT USE THIS ====
bool legacy_type_system = 5;
}
}

View File

@ -402,6 +402,8 @@ func (p *GRPCProvider) PlanResourceChange(r providers.PlanResourceChangeRequest)
resp.PlannedPrivate = protoResp.PlannedPrivate
resp.LegacyTypeSystem = protoResp.LegacyTypeSystem
return resp
}

View File

@ -226,6 +226,13 @@ type PlanResourceChangeResponse struct {
// Diagnostics contains any warnings or errors from the method call.
Diagnostics tfdiags.Diagnostics
// LegacyTypeSystem is set only if the provider is using the legacy SDK
// whose type system cannot be precisely mapped into the Terraform type
// system. We use this to bypass certain consistency checks that would
// otherwise fail due to this imprecise mapping. No other provider or SDK
// implementation is permitted to set this.
LegacyTypeSystem bool
}
type ApplyResourceChangeRequest struct {

View File

@ -216,18 +216,32 @@ func (n *EvalDiff) Eval(ctx EvalContext) (interface{}, error) {
return nil, diags.Err()
}
for _, err := range objchange.AssertPlanValid(schema, priorVal, configVal, plannedNewVal) {
diags = diags.Append(tfdiags.Sourceless(
tfdiags.Error,
"Provider produced invalid plan",
fmt.Sprintf(
"Provider %q planned an invalid value for %s.\n\nThis is a bug in the provider, which should be reported in the provider's own issue tracker.",
n.ProviderAddr.ProviderConfig.Type, tfdiags.FormatErrorPrefixed(err, absAddr.String()),
),
))
}
if diags.HasErrors() {
return nil, diags.Err()
if errs := objchange.AssertPlanValid(schema, priorVal, configVal, plannedNewVal); len(errs) > 0 {
if resp.LegacyTypeSystem {
// The shimming of the old type system in the legacy SDK is not precise
// enough to pass this consistency check, so we'll give it a pass here,
// but we will generate a warning about it so that we are more likely
// to notice in the logs if an inconsistency beyond the type system
// leads to a downstream provider failure.
var buf strings.Builder
fmt.Fprintf(&buf, "[WARN] Provider %q produced an invalid plan for %s, but we are tolerating it because it is using the legacy plugin SDK.\n The following problems may be the cause of any confusing errors from downstream operations:", n.ProviderAddr.ProviderConfig.Type, absAddr)
for _, err := range errs {
fmt.Fprintf(&buf, "\n - %s", tfdiags.FormatError(err))
}
log.Print(buf.String())
} else {
for _, err := range errs {
diags = diags.Append(tfdiags.Sourceless(
tfdiags.Error,
"Provider produced invalid plan",
fmt.Sprintf(
"Provider %q planned an invalid value for %s.\n\nThis is a bug in the provider, which should be reported in the provider's own issue tracker.",
n.ProviderAddr.ProviderConfig.Type, tfdiags.FormatErrorPrefixed(err, absAddr.String()),
),
))
}
return nil, diags.Err()
}
}
{