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) { func (s *GRPCProviderServer) PlanResourceChange(_ context.Context, req *proto.PlanResourceChange_Request) (*proto.PlanResourceChange_Response, error) {
resp := &proto.PlanResourceChange_Response{} 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] res := s.provider.ResourcesMap[req.TypeName]
block := res.CoreConfigSchema() block := res.CoreConfigSchema()

View File

@ -46,7 +46,7 @@ func (x Diagnostic_Severity) String() string {
return proto.EnumName(Diagnostic_Severity_name, int32(x)) return proto.EnumName(Diagnostic_Severity_name, int32(x))
} }
func (Diagnostic_Severity) EnumDescriptor() ([]byte, []int) { 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 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)) return proto.EnumName(Schema_NestedBlock_NestingMode_name, int32(x))
} }
func (Schema_NestedBlock_NestingMode) EnumDescriptor() ([]byte, []int) { 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 // 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 (m *DynamicValue) String() string { return proto.CompactTextString(m) }
func (*DynamicValue) ProtoMessage() {} func (*DynamicValue) ProtoMessage() {}
func (*DynamicValue) Descriptor() ([]byte, []int) { 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 { func (m *DynamicValue) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DynamicValue.Unmarshal(m, b) 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 (m *Diagnostic) String() string { return proto.CompactTextString(m) }
func (*Diagnostic) ProtoMessage() {} func (*Diagnostic) ProtoMessage() {}
func (*Diagnostic) Descriptor() ([]byte, []int) { 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 { func (m *Diagnostic) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Diagnostic.Unmarshal(m, b) 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 (m *AttributePath) String() string { return proto.CompactTextString(m) }
func (*AttributePath) ProtoMessage() {} func (*AttributePath) ProtoMessage() {}
func (*AttributePath) Descriptor() ([]byte, []int) { 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 { func (m *AttributePath) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttributePath.Unmarshal(m, b) 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 (m *AttributePath_Step) String() string { return proto.CompactTextString(m) }
func (*AttributePath_Step) ProtoMessage() {} func (*AttributePath_Step) ProtoMessage() {}
func (*AttributePath_Step) Descriptor() ([]byte, []int) { 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 { func (m *AttributePath_Step) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttributePath_Step.Unmarshal(m, b) 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 (m *Stop) String() string { return proto.CompactTextString(m) }
func (*Stop) ProtoMessage() {} func (*Stop) ProtoMessage() {}
func (*Stop) Descriptor() ([]byte, []int) { 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 { func (m *Stop) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop.Unmarshal(m, b) 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 (m *Stop_Request) String() string { return proto.CompactTextString(m) }
func (*Stop_Request) ProtoMessage() {} func (*Stop_Request) ProtoMessage() {}
func (*Stop_Request) Descriptor() ([]byte, []int) { 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 { func (m *Stop_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop_Request.Unmarshal(m, b) 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 (m *Stop_Response) String() string { return proto.CompactTextString(m) }
func (*Stop_Response) ProtoMessage() {} func (*Stop_Response) ProtoMessage() {}
func (*Stop_Response) Descriptor() ([]byte, []int) { 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 { func (m *Stop_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Stop_Response.Unmarshal(m, b) 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 (m *RawState) String() string { return proto.CompactTextString(m) }
func (*RawState) ProtoMessage() {} func (*RawState) ProtoMessage() {}
func (*RawState) Descriptor() ([]byte, []int) { 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 { func (m *RawState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RawState.Unmarshal(m, b) 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 (m *Schema) String() string { return proto.CompactTextString(m) }
func (*Schema) ProtoMessage() {} func (*Schema) ProtoMessage() {}
func (*Schema) Descriptor() ([]byte, []int) { 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 { func (m *Schema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema.Unmarshal(m, b) 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 (m *Schema_Block) String() string { return proto.CompactTextString(m) }
func (*Schema_Block) ProtoMessage() {} func (*Schema_Block) ProtoMessage() {}
func (*Schema_Block) Descriptor() ([]byte, []int) { 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 { func (m *Schema_Block) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_Block.Unmarshal(m, b) 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 (m *Schema_Attribute) String() string { return proto.CompactTextString(m) }
func (*Schema_Attribute) ProtoMessage() {} func (*Schema_Attribute) ProtoMessage() {}
func (*Schema_Attribute) Descriptor() ([]byte, []int) { 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 { func (m *Schema_Attribute) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_Attribute.Unmarshal(m, b) 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 (m *Schema_NestedBlock) String() string { return proto.CompactTextString(m) }
func (*Schema_NestedBlock) ProtoMessage() {} func (*Schema_NestedBlock) ProtoMessage() {}
func (*Schema_NestedBlock) Descriptor() ([]byte, []int) { 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 { func (m *Schema_NestedBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Schema_NestedBlock.Unmarshal(m, b) 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 (m *GetProviderSchema) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema) ProtoMessage() {} func (*GetProviderSchema) ProtoMessage() {}
func (*GetProviderSchema) Descriptor() ([]byte, []int) { 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 { func (m *GetProviderSchema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema.Unmarshal(m, b) 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 (m *GetProviderSchema_Request) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema_Request) ProtoMessage() {} func (*GetProviderSchema_Request) ProtoMessage() {}
func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) { 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 { func (m *GetProviderSchema_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema_Request.Unmarshal(m, b) 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 (m *GetProviderSchema_Response) String() string { return proto.CompactTextString(m) }
func (*GetProviderSchema_Response) ProtoMessage() {} func (*GetProviderSchema_Response) ProtoMessage() {}
func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) { 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 { func (m *GetProviderSchema_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProviderSchema_Response.Unmarshal(m, b) 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 (m *PrepareProviderConfig) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig) ProtoMessage() {} func (*PrepareProviderConfig) ProtoMessage() {}
func (*PrepareProviderConfig) Descriptor() ([]byte, []int) { 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 { func (m *PrepareProviderConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig.Unmarshal(m, b) 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 (m *PrepareProviderConfig_Request) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig_Request) ProtoMessage() {} func (*PrepareProviderConfig_Request) ProtoMessage() {}
func (*PrepareProviderConfig_Request) Descriptor() ([]byte, []int) { 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 { func (m *PrepareProviderConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig_Request.Unmarshal(m, b) 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 (m *PrepareProviderConfig_Response) String() string { return proto.CompactTextString(m) }
func (*PrepareProviderConfig_Response) ProtoMessage() {} func (*PrepareProviderConfig_Response) ProtoMessage() {}
func (*PrepareProviderConfig_Response) Descriptor() ([]byte, []int) { 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 { func (m *PrepareProviderConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareProviderConfig_Response.Unmarshal(m, b) 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 (m *UpgradeResourceState) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState) ProtoMessage() {} func (*UpgradeResourceState) ProtoMessage() {}
func (*UpgradeResourceState) Descriptor() ([]byte, []int) { 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 { func (m *UpgradeResourceState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState.Unmarshal(m, b) 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 (m *UpgradeResourceState_Request) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState_Request) ProtoMessage() {} func (*UpgradeResourceState_Request) ProtoMessage() {}
func (*UpgradeResourceState_Request) Descriptor() ([]byte, []int) { 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 { func (m *UpgradeResourceState_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState_Request.Unmarshal(m, b) 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 (m *UpgradeResourceState_Response) String() string { return proto.CompactTextString(m) }
func (*UpgradeResourceState_Response) ProtoMessage() {} func (*UpgradeResourceState_Response) ProtoMessage() {}
func (*UpgradeResourceState_Response) Descriptor() ([]byte, []int) { 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 { func (m *UpgradeResourceState_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UpgradeResourceState_Response.Unmarshal(m, b) 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 (m *ValidateResourceTypeConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig) ProtoMessage() {} func (*ValidateResourceTypeConfig) ProtoMessage() {}
func (*ValidateResourceTypeConfig) Descriptor() ([]byte, []int) { 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 { func (m *ValidateResourceTypeConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig.Unmarshal(m, b) 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 (m *ValidateResourceTypeConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig_Request) ProtoMessage() {} func (*ValidateResourceTypeConfig_Request) ProtoMessage() {}
func (*ValidateResourceTypeConfig_Request) Descriptor() ([]byte, []int) { 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 { func (m *ValidateResourceTypeConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig_Request.Unmarshal(m, b) 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 (m *ValidateResourceTypeConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateResourceTypeConfig_Response) ProtoMessage() {} func (*ValidateResourceTypeConfig_Response) ProtoMessage() {}
func (*ValidateResourceTypeConfig_Response) Descriptor() ([]byte, []int) { 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 { func (m *ValidateResourceTypeConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateResourceTypeConfig_Response.Unmarshal(m, b) 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 (m *ValidateDataSourceConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig) ProtoMessage() {} func (*ValidateDataSourceConfig) ProtoMessage() {}
func (*ValidateDataSourceConfig) Descriptor() ([]byte, []int) { 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 { func (m *ValidateDataSourceConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig.Unmarshal(m, b) 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 (m *ValidateDataSourceConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig_Request) ProtoMessage() {} func (*ValidateDataSourceConfig_Request) ProtoMessage() {}
func (*ValidateDataSourceConfig_Request) Descriptor() ([]byte, []int) { 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 { func (m *ValidateDataSourceConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig_Request.Unmarshal(m, b) 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 (m *ValidateDataSourceConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateDataSourceConfig_Response) ProtoMessage() {} func (*ValidateDataSourceConfig_Response) ProtoMessage() {}
func (*ValidateDataSourceConfig_Response) Descriptor() ([]byte, []int) { 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 { func (m *ValidateDataSourceConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateDataSourceConfig_Response.Unmarshal(m, b) 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 (m *Configure) String() string { return proto.CompactTextString(m) }
func (*Configure) ProtoMessage() {} func (*Configure) ProtoMessage() {}
func (*Configure) Descriptor() ([]byte, []int) { 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 { func (m *Configure) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure.Unmarshal(m, b) 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 (m *Configure_Request) String() string { return proto.CompactTextString(m) }
func (*Configure_Request) ProtoMessage() {} func (*Configure_Request) ProtoMessage() {}
func (*Configure_Request) Descriptor() ([]byte, []int) { 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 { func (m *Configure_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure_Request.Unmarshal(m, b) 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 (m *Configure_Response) String() string { return proto.CompactTextString(m) }
func (*Configure_Response) ProtoMessage() {} func (*Configure_Response) ProtoMessage() {}
func (*Configure_Response) Descriptor() ([]byte, []int) { 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 { func (m *Configure_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Configure_Response.Unmarshal(m, b) 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 (m *ReadResource) String() string { return proto.CompactTextString(m) }
func (*ReadResource) ProtoMessage() {} func (*ReadResource) ProtoMessage() {}
func (*ReadResource) Descriptor() ([]byte, []int) { 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 { func (m *ReadResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource.Unmarshal(m, b) 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 (m *ReadResource_Request) String() string { return proto.CompactTextString(m) }
func (*ReadResource_Request) ProtoMessage() {} func (*ReadResource_Request) ProtoMessage() {}
func (*ReadResource_Request) Descriptor() ([]byte, []int) { 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 { func (m *ReadResource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource_Request.Unmarshal(m, b) 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 (m *ReadResource_Response) String() string { return proto.CompactTextString(m) }
func (*ReadResource_Response) ProtoMessage() {} func (*ReadResource_Response) ProtoMessage() {}
func (*ReadResource_Response) Descriptor() ([]byte, []int) { 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 { func (m *ReadResource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadResource_Response.Unmarshal(m, b) 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 (m *PlanResourceChange) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange) ProtoMessage() {} func (*PlanResourceChange) ProtoMessage() {}
func (*PlanResourceChange) Descriptor() ([]byte, []int) { 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 { func (m *PlanResourceChange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange.Unmarshal(m, b) 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 (m *PlanResourceChange_Request) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange_Request) ProtoMessage() {} func (*PlanResourceChange_Request) ProtoMessage() {}
func (*PlanResourceChange_Request) Descriptor() ([]byte, []int) { 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 { func (m *PlanResourceChange_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange_Request.Unmarshal(m, b) return xxx_messageInfo_PlanResourceChange_Request.Unmarshal(m, b)
@ -1745,20 +1745,32 @@ func (m *PlanResourceChange_Request) GetPriorPrivate() []byte {
} }
type PlanResourceChange_Response struct { type PlanResourceChange_Response struct {
PlannedState *DynamicValue `protobuf:"bytes,1,opt,name=planned_state,json=plannedState,proto3" json:"planned_state,omitempty"` 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"` 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"` 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"` Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` // This may be set only by the helper/schema "SDK" in the main Terraform
XXX_unrecognized []byte `json:"-"` // repository, to request that Terraform Core >=0.12 permit additional
XXX_sizecache int32 `json:"-"` // 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) Reset() { *m = PlanResourceChange_Response{} }
func (m *PlanResourceChange_Response) String() string { return proto.CompactTextString(m) } func (m *PlanResourceChange_Response) String() string { return proto.CompactTextString(m) }
func (*PlanResourceChange_Response) ProtoMessage() {} func (*PlanResourceChange_Response) ProtoMessage() {}
func (*PlanResourceChange_Response) Descriptor() ([]byte, []int) { 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 { func (m *PlanResourceChange_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PlanResourceChange_Response.Unmarshal(m, b) return xxx_messageInfo_PlanResourceChange_Response.Unmarshal(m, b)
@ -1806,6 +1818,13 @@ func (m *PlanResourceChange_Response) GetDiagnostics() []*Diagnostic {
return nil return nil
} }
func (m *PlanResourceChange_Response) GetLegacyTypeSystem() bool {
if m != nil {
return m.LegacyTypeSystem
}
return false
}
type ApplyResourceChange struct { type ApplyResourceChange struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `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 (m *ApplyResourceChange) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange) ProtoMessage() {} func (*ApplyResourceChange) ProtoMessage() {}
func (*ApplyResourceChange) Descriptor() ([]byte, []int) { 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 { func (m *ApplyResourceChange) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange.Unmarshal(m, b) 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 (m *ApplyResourceChange_Request) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange_Request) ProtoMessage() {} func (*ApplyResourceChange_Request) ProtoMessage() {}
func (*ApplyResourceChange_Request) Descriptor() ([]byte, []int) { 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 { func (m *ApplyResourceChange_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange_Request.Unmarshal(m, b) 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 // specific details of the legacy SDK type system, and are not a general
// mechanism to avoid proper type handling in providers. // 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 ==== // ==== 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"` LegacyTypeSystem bool `protobuf:"varint,4,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `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 (m *ApplyResourceChange_Response) String() string { return proto.CompactTextString(m) }
func (*ApplyResourceChange_Response) ProtoMessage() {} func (*ApplyResourceChange_Response) ProtoMessage() {}
func (*ApplyResourceChange_Response) Descriptor() ([]byte, []int) { 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 { func (m *ApplyResourceChange_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyResourceChange_Response.Unmarshal(m, b) 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 (m *ImportResourceState) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState) ProtoMessage() {} func (*ImportResourceState) ProtoMessage() {}
func (*ImportResourceState) Descriptor() ([]byte, []int) { 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 { func (m *ImportResourceState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState.Unmarshal(m, b) 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 (m *ImportResourceState_Request) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_Request) ProtoMessage() {} func (*ImportResourceState_Request) ProtoMessage() {}
func (*ImportResourceState_Request) Descriptor() ([]byte, []int) { 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 { func (m *ImportResourceState_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_Request.Unmarshal(m, b) 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 (m *ImportResourceState_ImportedResource) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_ImportedResource) ProtoMessage() {} func (*ImportResourceState_ImportedResource) ProtoMessage() {}
func (*ImportResourceState_ImportedResource) Descriptor() ([]byte, []int) { 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 { func (m *ImportResourceState_ImportedResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_ImportedResource.Unmarshal(m, b) 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 (m *ImportResourceState_Response) String() string { return proto.CompactTextString(m) }
func (*ImportResourceState_Response) ProtoMessage() {} func (*ImportResourceState_Response) ProtoMessage() {}
func (*ImportResourceState_Response) Descriptor() ([]byte, []int) { 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 { func (m *ImportResourceState_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportResourceState_Response.Unmarshal(m, b) 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 (m *ReadDataSource) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource) ProtoMessage() {} func (*ReadDataSource) ProtoMessage() {}
func (*ReadDataSource) Descriptor() ([]byte, []int) { 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 { func (m *ReadDataSource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource.Unmarshal(m, b) 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 (m *ReadDataSource_Request) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource_Request) ProtoMessage() {} func (*ReadDataSource_Request) ProtoMessage() {}
func (*ReadDataSource_Request) Descriptor() ([]byte, []int) { 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 { func (m *ReadDataSource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource_Request.Unmarshal(m, b) 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 (m *ReadDataSource_Response) String() string { return proto.CompactTextString(m) }
func (*ReadDataSource_Response) ProtoMessage() {} func (*ReadDataSource_Response) ProtoMessage() {}
func (*ReadDataSource_Response) Descriptor() ([]byte, []int) { 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 { func (m *ReadDataSource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReadDataSource_Response.Unmarshal(m, b) 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 (m *GetProvisionerSchema) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema) ProtoMessage() {} func (*GetProvisionerSchema) ProtoMessage() {}
func (*GetProvisionerSchema) Descriptor() ([]byte, []int) { 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 { func (m *GetProvisionerSchema) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema.Unmarshal(m, b) 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 (m *GetProvisionerSchema_Request) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema_Request) ProtoMessage() {} func (*GetProvisionerSchema_Request) ProtoMessage() {}
func (*GetProvisionerSchema_Request) Descriptor() ([]byte, []int) { 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 { func (m *GetProvisionerSchema_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema_Request.Unmarshal(m, b) 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 (m *GetProvisionerSchema_Response) String() string { return proto.CompactTextString(m) }
func (*GetProvisionerSchema_Response) ProtoMessage() {} func (*GetProvisionerSchema_Response) ProtoMessage() {}
func (*GetProvisionerSchema_Response) Descriptor() ([]byte, []int) { 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 { func (m *GetProvisionerSchema_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetProvisionerSchema_Response.Unmarshal(m, b) 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 (m *ValidateProvisionerConfig) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig) ProtoMessage() {} func (*ValidateProvisionerConfig) ProtoMessage() {}
func (*ValidateProvisionerConfig) Descriptor() ([]byte, []int) { 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 { func (m *ValidateProvisionerConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig.Unmarshal(m, b) 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 (m *ValidateProvisionerConfig_Request) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig_Request) ProtoMessage() {} func (*ValidateProvisionerConfig_Request) ProtoMessage() {}
func (*ValidateProvisionerConfig_Request) Descriptor() ([]byte, []int) { 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 { func (m *ValidateProvisionerConfig_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig_Request.Unmarshal(m, b) 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 (m *ValidateProvisionerConfig_Response) String() string { return proto.CompactTextString(m) }
func (*ValidateProvisionerConfig_Response) ProtoMessage() {} func (*ValidateProvisionerConfig_Response) ProtoMessage() {}
func (*ValidateProvisionerConfig_Response) Descriptor() ([]byte, []int) { 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 { func (m *ValidateProvisionerConfig_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidateProvisionerConfig_Response.Unmarshal(m, b) 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 (m *ProvisionResource) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource) ProtoMessage() {} func (*ProvisionResource) ProtoMessage() {}
func (*ProvisionResource) Descriptor() ([]byte, []int) { 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 { func (m *ProvisionResource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource.Unmarshal(m, b) 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 (m *ProvisionResource_Request) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource_Request) ProtoMessage() {} func (*ProvisionResource_Request) ProtoMessage() {}
func (*ProvisionResource_Request) Descriptor() ([]byte, []int) { 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 { func (m *ProvisionResource_Request) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource_Request.Unmarshal(m, b) 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 (m *ProvisionResource_Response) String() string { return proto.CompactTextString(m) }
func (*ProvisionResource_Response) ProtoMessage() {} func (*ProvisionResource_Response) ProtoMessage() {}
func (*ProvisionResource_Response) Descriptor() ([]byte, []int) { 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 { func (m *ProvisionResource_Response) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProvisionResource_Response.Unmarshal(m, b) return xxx_messageInfo_ProvisionResource_Response.Unmarshal(m, b)
@ -3308,125 +3327,125 @@ var _Provisioner_serviceDesc = grpc.ServiceDesc{
Metadata: "tfplugin5.proto", 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{ var fileDescriptor_tfplugin5_0417c8e6dca655d3 = []byte{
// 1862 bytes of a gzipped FileDescriptorProto // 1867 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x73, 0x1b, 0x49,
0x15, 0xf7, 0x72, 0x45, 0x89, 0x7c, 0xd4, 0x07, 0x35, 0x76, 0x5c, 0x76, 0x93, 0xb4, 0x2a, 0xfb, 0x15, 0xcf, 0x68, 0x24, 0x5b, 0x7a, 0xf2, 0x87, 0xdc, 0xc9, 0x06, 0x31, 0xbb, 0x0b, 0x46, 0x7c,
0x21, 0x05, 0x89, 0xe9, 0x40, 0x6e, 0x93, 0x54, 0x35, 0x82, 0xca, 0xb2, 0x6a, 0x0b, 0x75, 0x54, 0xd8, 0x5b, 0xbb, 0x51, 0xb6, 0x1c, 0xd8, 0x5d, 0x4c, 0x6a, 0x0b, 0xc7, 0x31, 0x89, 0x8b, 0xac,
0x75, 0xe8, 0xd8, 0x05, 0x0a, 0x84, 0x18, 0x73, 0x47, 0xf4, 0xd6, 0xdc, 0x8f, 0xcc, 0x0e, 0x65, 0x31, 0xad, 0x6c, 0x42, 0x15, 0x55, 0xab, 0xea, 0x68, 0xda, 0xca, 0x10, 0x69, 0x66, 0xb6, 0xa7,
0x11, 0x3d, 0x16, 0xcd, 0xb9, 0x97, 0x7e, 0x00, 0x0d, 0x7a, 0xe9, 0x3f, 0xd1, 0xf6, 0xd6, 0x53, 0x65, 0x5b, 0xc5, 0x91, 0x82, 0x33, 0x17, 0x3e, 0xaa, 0x58, 0xb8, 0xf0, 0x2f, 0x70, 0x00, 0x6e,
0xff, 0x81, 0xde, 0xd2, 0x9e, 0x8a, 0x1e, 0x8b, 0x1c, 0xdb, 0x4b, 0x81, 0x62, 0xbe, 0x76, 0x87, 0x9c, 0xf8, 0x07, 0xb8, 0x2d, 0x9c, 0x28, 0x8e, 0x14, 0x47, 0xb8, 0x50, 0x45, 0xf5, 0xd7, 0x4c,
0xe4, 0x52, 0x5a, 0xcb, 0x31, 0x8a, 0xdc, 0x76, 0xe6, 0xfd, 0xe6, 0xbd, 0xdf, 0xbc, 0x79, 0xf3, 0x4b, 0x1a, 0xd9, 0x13, 0x7b, 0x53, 0xd4, 0xde, 0xa6, 0xfb, 0xfd, 0xfa, 0xbd, 0x5f, 0xbf, 0xf7,
0xde, 0x3c, 0x12, 0xd6, 0xf8, 0x71, 0x32, 0x1c, 0x0d, 0x82, 0xe8, 0x5b, 0x9d, 0x84, 0xc5, 0x3c, 0xfa, 0xbd, 0x6e, 0x09, 0x56, 0xf9, 0x51, 0x3c, 0x18, 0xf5, 0x83, 0xf0, 0x6b, 0xed, 0x98, 0x45,
0x46, 0xf5, 0x6c, 0xa2, 0x7d, 0x13, 0x96, 0x6f, 0x8f, 0x23, 0x12, 0x06, 0xfd, 0x07, 0x64, 0x38, 0x3c, 0x42, 0xb5, 0x74, 0xa2, 0x75, 0x1b, 0x96, 0xee, 0x8e, 0x43, 0x32, 0x0c, 0x7a, 0x8f, 0xc8,
0xa2, 0xa8, 0x05, 0x4b, 0x61, 0x3a, 0x48, 0x48, 0xff, 0x49, 0xcb, 0xd9, 0x70, 0xb6, 0x96, 0xb1, 0x60, 0x44, 0x51, 0x13, 0x16, 0x87, 0x49, 0x3f, 0x26, 0xbd, 0x67, 0x4d, 0x67, 0xdd, 0xd9, 0x5c,
0x19, 0x22, 0x04, 0x0b, 0x3f, 0x49, 0xe3, 0xa8, 0x55, 0x91, 0xd3, 0xf2, 0xbb, 0xfd, 0x0f, 0x07, 0xc2, 0x66, 0x88, 0x10, 0x94, 0x7f, 0x90, 0x44, 0x61, 0xb3, 0x24, 0xa7, 0xe5, 0x77, 0xeb, 0xef,
0xe0, 0x76, 0x40, 0x06, 0x51, 0x9c, 0xf2, 0xa0, 0x8f, 0x76, 0xa0, 0x96, 0xd2, 0x13, 0xca, 0x02, 0x0e, 0xc0, 0xdd, 0x80, 0xf4, 0xc3, 0x28, 0xe1, 0x41, 0x0f, 0x6d, 0x43, 0x35, 0xa1, 0xc7, 0x94,
0x3e, 0x96, 0xab, 0x57, 0xb7, 0xbf, 0xd4, 0xc9, 0x6d, 0xe7, 0xc0, 0x4e, 0x57, 0xa3, 0x70, 0x86, 0x05, 0x7c, 0x2c, 0x57, 0xaf, 0x6c, 0x7d, 0xae, 0x9d, 0xd9, 0xce, 0x80, 0xed, 0x8e, 0x46, 0xe1,
0x17, 0x86, 0xd3, 0x51, 0x18, 0x12, 0x36, 0x96, 0x16, 0xea, 0xd8, 0x0c, 0xd1, 0x55, 0x58, 0xf4, 0x14, 0x2f, 0x0c, 0x27, 0xa3, 0xe1, 0x90, 0xb0, 0xb1, 0xb4, 0x50, 0xc3, 0x66, 0x88, 0xae, 0xc3,
0x29, 0x27, 0xc1, 0xb0, 0xe5, 0x4a, 0x81, 0x1e, 0xa1, 0xb7, 0xa0, 0x4e, 0x38, 0x67, 0xc1, 0xa3, 0x82, 0x4f, 0x39, 0x09, 0x06, 0x4d, 0x57, 0x0a, 0xf4, 0x08, 0xbd, 0x05, 0x35, 0xc2, 0x39, 0x0b,
0x11, 0xa7, 0xad, 0x85, 0x0d, 0x67, 0xab, 0xb1, 0xdd, 0xb2, 0xcc, 0xed, 0x1a, 0xd9, 0x11, 0xe1, 0x9e, 0x8c, 0x38, 0x6d, 0x96, 0xd7, 0x9d, 0xcd, 0xfa, 0x56, 0xd3, 0x32, 0xb7, 0x63, 0x64, 0x87,
0x8f, 0x71, 0x0e, 0x6d, 0x5f, 0x87, 0x9a, 0xb1, 0x8f, 0x1a, 0xb0, 0x74, 0x70, 0xf8, 0x60, 0xf7, 0x84, 0x3f, 0xc5, 0x19, 0xb4, 0x75, 0x13, 0xaa, 0xc6, 0x3e, 0xaa, 0xc3, 0xe2, 0xfe, 0xc1, 0xa3,
0xde, 0xc1, 0xed, 0xe6, 0x25, 0x54, 0x87, 0xea, 0x3e, 0xc6, 0x3f, 0xc0, 0x4d, 0x47, 0xcc, 0x3f, 0x9d, 0x07, 0xfb, 0x77, 0x1b, 0x57, 0x50, 0x0d, 0x2a, 0x7b, 0x18, 0x7f, 0x07, 0x37, 0x1c, 0x31,
0xdc, 0xc5, 0x87, 0x07, 0x87, 0x77, 0x9a, 0x95, 0xf6, 0xdf, 0x1c, 0x58, 0x99, 0xd0, 0x86, 0x6e, 0xff, 0x78, 0x07, 0x1f, 0xec, 0x1f, 0xdc, 0x6b, 0x94, 0x5a, 0x7f, 0x75, 0x60, 0x79, 0x42, 0x1b,
0x40, 0x35, 0xe5, 0x34, 0x49, 0x5b, 0xce, 0x86, 0xbb, 0xd5, 0xd8, 0x7e, 0x75, 0x9e, 0xd9, 0x4e, 0xba, 0x05, 0x95, 0x84, 0xd3, 0x38, 0x69, 0x3a, 0xeb, 0xee, 0x66, 0x7d, 0xeb, 0xd5, 0x79, 0x66,
0x97, 0xd3, 0x04, 0x2b, 0xac, 0xf7, 0x4b, 0x07, 0x16, 0xc4, 0x18, 0x6d, 0xc2, 0x6a, 0xc6, 0xa6, 0xdb, 0x1d, 0x4e, 0x63, 0xac, 0xb0, 0xde, 0xcf, 0x1c, 0x28, 0x8b, 0x31, 0xda, 0x80, 0x95, 0x94,
0x17, 0x91, 0x90, 0x4a, 0x67, 0xd5, 0xef, 0x5e, 0xc2, 0x2b, 0xd9, 0xfc, 0x21, 0x09, 0x29, 0xea, 0x4d, 0x37, 0x24, 0x43, 0x2a, 0x9d, 0x55, 0xbb, 0x7f, 0x05, 0x2f, 0xa7, 0xf3, 0x07, 0x64, 0x48,
0x00, 0xa2, 0x43, 0x1a, 0xd2, 0x88, 0xf7, 0x9e, 0xd0, 0x71, 0x2f, 0xe5, 0x2c, 0x88, 0x06, 0xca, 0x51, 0x1b, 0x10, 0x1d, 0xd0, 0x21, 0x0d, 0x79, 0xf7, 0x19, 0x1d, 0x77, 0x13, 0xce, 0x82, 0xb0,
0x3d, 0x77, 0x2f, 0xe1, 0xa6, 0x96, 0x7d, 0x9f, 0x8e, 0xbb, 0x52, 0x82, 0xb6, 0x60, 0xcd, 0xc6, 0xaf, 0xdc, 0x73, 0xff, 0x0a, 0x6e, 0x68, 0xd9, 0xb7, 0xe9, 0xb8, 0x23, 0x25, 0x68, 0x13, 0x56,
0x07, 0x11, 0x97, 0x2e, 0x73, 0x85, 0xe6, 0x1c, 0x7c, 0x10, 0xf1, 0x5b, 0x20, 0x4e, 0x6a, 0x48, 0x6d, 0x7c, 0x10, 0x72, 0xe9, 0x32, 0x57, 0x68, 0xce, 0xc0, 0xfb, 0x21, 0xbf, 0x03, 0x22, 0x52,
0xfb, 0x3c, 0x66, 0xed, 0x1b, 0x82, 0x56, 0x9c, 0x78, 0x75, 0x58, 0xc2, 0xf4, 0xc3, 0x11, 0x4d, 0x03, 0xda, 0xe3, 0x11, 0x6b, 0xdd, 0x12, 0xb4, 0xa2, 0xd8, 0xab, 0xc1, 0x22, 0xa6, 0x1f, 0x8e,
0xb9, 0xb7, 0x01, 0x35, 0x4c, 0xd3, 0x24, 0x8e, 0x52, 0x8a, 0xae, 0x40, 0x75, 0x9f, 0xb1, 0x98, 0x68, 0xc2, 0xbd, 0x75, 0xa8, 0x62, 0x9a, 0xc4, 0x51, 0x98, 0x50, 0x74, 0x0d, 0x2a, 0x7b, 0x8c,
0x29, 0x92, 0xb8, 0x4a, 0xc5, 0xa0, 0xfd, 0x2b, 0x07, 0x6a, 0x98, 0x3c, 0xed, 0x72, 0xc2, 0x69, 0x45, 0x4c, 0x91, 0xc4, 0x15, 0x2a, 0x06, 0xad, 0x9f, 0x3b, 0x50, 0xc5, 0xe4, 0xa4, 0xc3, 0x09,
0x16, 0x1a, 0x4e, 0x1e, 0x1a, 0x68, 0x07, 0x96, 0x8e, 0x87, 0x84, 0x87, 0x24, 0x69, 0x55, 0xa4, 0xa7, 0x69, 0x6a, 0x38, 0x59, 0x6a, 0xa0, 0x6d, 0x58, 0x3c, 0x1a, 0x10, 0x3e, 0x24, 0x71, 0xb3,
0x93, 0x36, 0x2c, 0x27, 0x99, 0x95, 0x9d, 0xef, 0x29, 0xc8, 0x7e, 0xc4, 0xd9, 0x18, 0x9b, 0x05, 0x24, 0x9d, 0xb4, 0x6e, 0x39, 0xc9, 0xac, 0x6c, 0x7f, 0x4b, 0x41, 0xf6, 0x42, 0xce, 0xc6, 0xd8,
0xde, 0x0e, 0x2c, 0xdb, 0x02, 0xd4, 0x04, 0xf7, 0x09, 0x1d, 0x6b, 0x02, 0xe2, 0x53, 0x90, 0x3a, 0x2c, 0xf0, 0xb6, 0x61, 0xc9, 0x16, 0xa0, 0x06, 0xb8, 0xcf, 0xe8, 0x58, 0x13, 0x10, 0x9f, 0x82,
0x11, 0xf1, 0xaa, 0x63, 0x45, 0x0d, 0x76, 0x2a, 0xef, 0x38, 0xed, 0x4f, 0xaa, 0xb0, 0xd8, 0xed, 0xd4, 0xb1, 0xc8, 0x57, 0x9d, 0x2b, 0x6a, 0xb0, 0x5d, 0x7a, 0xc7, 0x69, 0x7d, 0x5c, 0x81, 0x85,
0x3f, 0xa6, 0x21, 0x11, 0x21, 0x75, 0x42, 0x59, 0x1a, 0x68, 0x66, 0x2e, 0x36, 0x43, 0x74, 0x0d, 0x4e, 0xef, 0x29, 0x1d, 0x12, 0x91, 0x52, 0xc7, 0x94, 0x25, 0x81, 0x66, 0xe6, 0x62, 0x33, 0x44,
0xaa, 0x8f, 0x86, 0x71, 0xff, 0x89, 0x5c, 0xde, 0xd8, 0xfe, 0x82, 0x45, 0x4d, 0xad, 0xed, 0xdc, 0x37, 0xa0, 0xf2, 0x64, 0x10, 0xf5, 0x9e, 0xc9, 0xe5, 0xf5, 0xad, 0xcf, 0x58, 0xd4, 0xd4, 0xda,
0x12, 0x62, 0xac, 0x50, 0xde, 0xef, 0x1c, 0xa8, 0xca, 0x89, 0x33, 0x54, 0x7e, 0x07, 0x20, 0x3b, 0xf6, 0x1d, 0x21, 0xc6, 0x0a, 0xe5, 0xfd, 0xc6, 0x81, 0x8a, 0x9c, 0x38, 0x43, 0xe5, 0x37, 0x00,
0xbc, 0x54, 0x6f, 0xf9, 0xe5, 0x59, 0xbd, 0x59, 0x78, 0x60, 0x0b, 0x8e, 0xde, 0x85, 0x86, 0xb4, 0xd2, 0xe0, 0x25, 0x7a, 0xcb, 0x2f, 0xcf, 0xea, 0x4d, 0xd3, 0x03, 0x5b, 0x70, 0xf4, 0x2e, 0xd4,
0xd4, 0xe3, 0xe3, 0x84, 0xa6, 0x2d, 0x77, 0x26, 0xaa, 0xf4, 0xea, 0x43, 0x9a, 0x72, 0xea, 0x2b, 0xa5, 0xa5, 0x2e, 0x1f, 0xc7, 0x34, 0x69, 0xba, 0x33, 0x59, 0xa5, 0x57, 0x1f, 0xd0, 0x84, 0x53,
0x6e, 0x20, 0x57, 0xdc, 0x17, 0x0b, 0xbc, 0xbf, 0x38, 0x50, 0xcf, 0x34, 0x8b, 0xe3, 0xc8, 0xa3, 0x5f, 0x71, 0x03, 0xb9, 0xe2, 0xa1, 0x58, 0xe0, 0xfd, 0xd9, 0x81, 0x5a, 0xaa, 0x59, 0x84, 0x23,
0x0a, 0xcb, 0x6f, 0x31, 0x27, 0x74, 0x9b, 0xdb, 0x2b, 0xbe, 0xd1, 0x06, 0x34, 0x7c, 0x9a, 0xf6, 0xcb, 0x2a, 0x2c, 0xbf, 0xc5, 0x9c, 0xd0, 0x6d, 0x4e, 0xaf, 0xf8, 0x46, 0xeb, 0x50, 0xf7, 0x69,
0x59, 0x90, 0x70, 0xb1, 0x21, 0x75, 0xbb, 0xec, 0x29, 0xe4, 0x41, 0x8d, 0xd1, 0x0f, 0x47, 0x01, 0xd2, 0x63, 0x41, 0xcc, 0xc5, 0x86, 0xd4, 0xe9, 0xb2, 0xa7, 0x90, 0x07, 0x55, 0x46, 0x3f, 0x1c,
0xa3, 0xbe, 0xbc, 0x61, 0x35, 0x9c, 0x8d, 0x85, 0x2c, 0x96, 0x28, 0x32, 0x6c, 0x55, 0x95, 0xcc, 0x05, 0x8c, 0xfa, 0xf2, 0x84, 0x55, 0x71, 0x3a, 0x16, 0xb2, 0x48, 0xa2, 0xc8, 0xa0, 0x59, 0x51,
0x8c, 0x85, 0xac, 0x1f, 0x87, 0xc9, 0x88, 0x53, 0xbf, 0xb5, 0xa8, 0x64, 0x66, 0x8c, 0x5e, 0x81, 0x32, 0x33, 0x16, 0xb2, 0x5e, 0x34, 0x8c, 0x47, 0x9c, 0xfa, 0xcd, 0x05, 0x25, 0x33, 0x63, 0xf4,
0x7a, 0x4a, 0xa3, 0x34, 0xe0, 0xc1, 0x09, 0x6d, 0x2d, 0x49, 0x61, 0x3e, 0xe1, 0x7d, 0x5c, 0x81, 0x0a, 0xd4, 0x12, 0x1a, 0x26, 0x01, 0x0f, 0x8e, 0x69, 0x73, 0x51, 0x0a, 0xb3, 0x09, 0xef, 0xa3,
0x86, 0xb5, 0x4b, 0xf4, 0x32, 0xd4, 0x05, 0x57, 0xeb, 0x9a, 0xe0, 0x9a, 0x98, 0x90, 0xf7, 0xe3, 0x12, 0xd4, 0xad, 0x5d, 0xa2, 0x97, 0xa1, 0x26, 0xb8, 0x5a, 0xc7, 0x04, 0x57, 0xc5, 0x84, 0x3c,
0xd9, 0x8e, 0x11, 0xed, 0xc1, 0x52, 0x44, 0x53, 0x2e, 0xee, 0x90, 0x2b, 0xb3, 0xd3, 0x6b, 0x67, 0x1f, 0xcf, 0x17, 0x46, 0xb4, 0x0b, 0x8b, 0x21, 0x4d, 0xb8, 0x38, 0x43, 0xae, 0xac, 0x4e, 0xaf,
0x7a, 0x58, 0x7e, 0x07, 0xd1, 0xe0, 0xbd, 0xd8, 0xa7, 0xd8, 0xac, 0x14, 0x84, 0xc2, 0x20, 0xea, 0x9d, 0xe9, 0x61, 0xf9, 0x1d, 0x84, 0xfd, 0xf7, 0x22, 0x9f, 0x62, 0xb3, 0x52, 0x10, 0x1a, 0x06,
0x05, 0x9c, 0x86, 0xa9, 0xf4, 0x89, 0x8b, 0x6b, 0x61, 0x10, 0x1d, 0x88, 0xb1, 0x14, 0x92, 0x53, 0x61, 0x37, 0xe0, 0x74, 0x98, 0x48, 0x9f, 0xb8, 0xb8, 0x3a, 0x0c, 0xc2, 0x7d, 0x31, 0x96, 0x42,
0x2d, 0xac, 0x6a, 0x21, 0x39, 0x95, 0xc2, 0xf6, 0x2d, 0xb5, 0x33, 0xad, 0x71, 0x32, 0xf5, 0x00, 0x72, 0xaa, 0x85, 0x15, 0x2d, 0x24, 0xa7, 0x52, 0xd8, 0xba, 0xa3, 0x76, 0xa6, 0x35, 0x4e, 0x96,
0x2c, 0x76, 0x0f, 0x0e, 0xef, 0xdc, 0xdb, 0x6f, 0x3a, 0xa8, 0x06, 0x0b, 0xf7, 0x0e, 0xba, 0xf7, 0x1e, 0x80, 0x85, 0xce, 0xfe, 0xc1, 0xbd, 0x07, 0x7b, 0x0d, 0x07, 0x55, 0xa1, 0xfc, 0x60, 0xbf,
0x9b, 0x15, 0xb4, 0x04, 0x6e, 0x77, 0xff, 0x7e, 0xd3, 0x15, 0x1f, 0xef, 0xed, 0x1e, 0x35, 0x17, 0xf3, 0xb0, 0x51, 0x42, 0x8b, 0xe0, 0x76, 0xf6, 0x1e, 0x36, 0x5c, 0xf1, 0xf1, 0xde, 0xce, 0x61,
0xda, 0xbf, 0x59, 0x80, 0xf5, 0x3b, 0x94, 0x1f, 0xb1, 0xf8, 0x24, 0xf0, 0x29, 0x53, 0xa4, 0xed, 0xa3, 0xdc, 0xfa, 0x65, 0x19, 0xd6, 0xee, 0x51, 0x7e, 0xc8, 0xa2, 0xe3, 0xc0, 0xa7, 0x4c, 0x91,
0x9b, 0xfb, 0x6f, 0xd7, 0xba, 0xba, 0xd7, 0xa0, 0x96, 0x68, 0xa4, 0xf4, 0x5d, 0x63, 0x7b, 0x7d, 0xb6, 0x4f, 0xee, 0xbf, 0x5d, 0xeb, 0xe8, 0xde, 0x80, 0x6a, 0xac, 0x91, 0xd2, 0x77, 0xf5, 0xad,
0x66, 0xc7, 0x38, 0x83, 0x20, 0x0a, 0x4d, 0x46, 0xd3, 0x78, 0xc4, 0xfa, 0xb4, 0x97, 0x4a, 0xa1, 0xb5, 0x99, 0x1d, 0xe3, 0x14, 0x82, 0x28, 0x34, 0x18, 0x4d, 0xa2, 0x11, 0xeb, 0xd1, 0x6e, 0x22,
0x09, 0xe4, 0x1d, 0x6b, 0xd9, 0x8c, 0xf9, 0x8e, 0xb1, 0x27, 0x3e, 0xe4, 0x6a, 0x35, 0x9f, 0xaa, 0x85, 0x26, 0x91, 0xb7, 0xad, 0x65, 0x33, 0xe6, 0xdb, 0xc6, 0x9e, 0xf8, 0x90, 0xab, 0xd5, 0x7c,
0x5b, 0xbd, 0xc6, 0x26, 0x67, 0xd1, 0x10, 0x2e, 0xfb, 0x84, 0x93, 0xde, 0x94, 0x25, 0x15, 0xf4, 0xa2, 0x4e, 0xf5, 0x2a, 0x9b, 0x9c, 0x45, 0x03, 0xb8, 0xea, 0x13, 0x4e, 0xba, 0x53, 0x96, 0x54,
0x37, 0xcb, 0x59, 0xba, 0x4d, 0x38, 0xe9, 0xce, 0xda, 0x5a, 0xf7, 0xa7, 0xe7, 0xd1, 0xdb, 0xd0, 0xd2, 0xdf, 0x2e, 0x66, 0xe9, 0x2e, 0xe1, 0xa4, 0x33, 0x6b, 0x6b, 0xcd, 0x9f, 0x9e, 0x47, 0x6f,
0xf0, 0xb3, 0xc2, 0x23, 0x4e, 0x4c, 0x58, 0x79, 0xa9, 0xb0, 0x2c, 0x61, 0x1b, 0xe9, 0xbd, 0x0f, 0x43, 0xdd, 0x4f, 0x1b, 0x8f, 0x88, 0x98, 0xb0, 0xf2, 0x52, 0x6e, 0x5b, 0xc2, 0x36, 0xd2, 0x7b,
0x57, 0x8a, 0xf6, 0x53, 0x90, 0x8c, 0x36, 0xed, 0x64, 0x54, 0xe8, 0xe3, 0x3c, 0x3f, 0x79, 0x0f, 0x1f, 0xae, 0xe5, 0xed, 0x27, 0xa7, 0x18, 0x6d, 0xd8, 0xc5, 0x28, 0xd7, 0xc7, 0x59, 0x7d, 0xf2,
0xe1, 0x6a, 0x31, 0xf9, 0xe7, 0x54, 0xdc, 0xfe, 0xc4, 0x81, 0x97, 0x8e, 0x18, 0x4d, 0x08, 0xa3, 0x1e, 0xc3, 0xf5, 0x7c, 0xf2, 0x97, 0x54, 0xdc, 0xfa, 0xd8, 0x81, 0x97, 0x0e, 0x19, 0x8d, 0x09,
0xc6, 0x6b, 0x7b, 0x71, 0x74, 0x1c, 0x0c, 0xbc, 0x9d, 0x2c, 0x3c, 0xd0, 0x75, 0x58, 0xec, 0xcb, 0xa3, 0xc6, 0x6b, 0xbb, 0x51, 0x78, 0x14, 0xf4, 0xbd, 0xed, 0x34, 0x3d, 0xd0, 0x4d, 0x58, 0xe8,
0x49, 0x1d, 0x0f, 0xf6, 0x95, 0xb1, 0xdf, 0x01, 0x58, 0xc3, 0xbc, 0x9f, 0x3b, 0x56, 0x3c, 0x7d, 0xc9, 0x49, 0x9d, 0x0f, 0xf6, 0x91, 0xb1, 0xef, 0x01, 0x58, 0xc3, 0xbc, 0x1f, 0x3b, 0x56, 0x3e,
0x17, 0xd6, 0x12, 0x65, 0xc1, 0xef, 0x95, 0x53, 0xb3, 0x6a, 0xf0, 0x8a, 0xca, 0xf4, 0x69, 0x54, 0x7d, 0x13, 0x56, 0x63, 0x65, 0xc1, 0xef, 0x16, 0x53, 0xb3, 0x62, 0xf0, 0x8a, 0xca, 0x74, 0x34,
0xca, 0x9e, 0x46, 0xfb, 0x17, 0x15, 0xb8, 0xf2, 0x7e, 0x32, 0x60, 0xc4, 0xa7, 0xd9, 0xa9, 0x88, 0x4a, 0x45, 0xa3, 0xd1, 0xfa, 0x69, 0x09, 0xae, 0xbd, 0x1f, 0xf7, 0x19, 0xf1, 0x69, 0x1a, 0x15,
0x0a, 0xe2, 0xb1, 0x7c, 0x73, 0x67, 0xe6, 0x0a, 0x2b, 0x73, 0x57, 0x26, 0x33, 0xf7, 0x9b, 0x50, 0xd1, 0x41, 0x3c, 0x96, 0x6d, 0xee, 0xcc, 0x5a, 0x61, 0x55, 0xee, 0xd2, 0x64, 0xe5, 0x7e, 0x13,
0x67, 0xe4, 0x69, 0x2f, 0x15, 0xea, 0x64, 0x62, 0x68, 0x6c, 0x5f, 0x2e, 0xa8, 0x55, 0xb8, 0xc6, 0x6a, 0x8c, 0x9c, 0x74, 0x13, 0xa1, 0x4e, 0x16, 0x86, 0xfa, 0xd6, 0xd5, 0x9c, 0x5e, 0x85, 0xab,
0xf4, 0x97, 0xf7, 0x33, 0xdb, 0x29, 0xef, 0xc2, 0xea, 0x48, 0x11, 0xf3, 0xb5, 0x8e, 0x73, 0x7c, 0x4c, 0x7f, 0x79, 0x3f, 0xb2, 0x9d, 0xf2, 0x2e, 0xac, 0x8c, 0x14, 0x31, 0x5f, 0xeb, 0x38, 0xc7,
0xb2, 0x62, 0xe0, 0xaa, 0x78, 0x5e, 0xd8, 0x25, 0x7f, 0x72, 0xc0, 0x7b, 0x40, 0x86, 0x81, 0x2f, 0x27, 0xcb, 0x06, 0xae, 0x9a, 0xe7, 0x85, 0x5d, 0xf2, 0x47, 0x07, 0xbc, 0x47, 0x64, 0x10, 0xf8,
0xc8, 0x69, 0x9f, 0x88, 0x72, 0xa0, 0x4f, 0xfd, 0x61, 0x49, 0xc7, 0xe4, 0x21, 0x51, 0x29, 0x17, 0x82, 0x9c, 0xf6, 0x89, 0x68, 0x07, 0x3a, 0xea, 0x8f, 0x0b, 0x3a, 0x26, 0x4b, 0x89, 0x52, 0xb1,
0x12, 0x7b, 0xd6, 0xe6, 0xa7, 0xc8, 0x3b, 0xa5, 0xc9, 0xff, 0xc1, 0x81, 0x96, 0x21, 0x9f, 0xdf, 0x94, 0xd8, 0xb5, 0x36, 0x3f, 0x45, 0xde, 0x29, 0x4c, 0xfe, 0xf7, 0x0e, 0x34, 0x0d, 0xf9, 0xec,
0x87, 0xcf, 0x05, 0xf5, 0x3f, 0x3a, 0x50, 0x57, 0x44, 0x47, 0x8c, 0x7a, 0x83, 0x9c, 0xeb, 0xeb, 0x3c, 0x7c, 0x2a, 0xa8, 0xff, 0xc1, 0x81, 0x9a, 0x22, 0x3a, 0x62, 0xd4, 0xeb, 0x67, 0x5c, 0x5f,
0xb0, 0xce, 0x29, 0x63, 0xe4, 0x38, 0x66, 0x61, 0xcf, 0x7e, 0x26, 0xd4, 0x71, 0x33, 0x13, 0x3c, 0x87, 0x35, 0x4e, 0x19, 0x23, 0x47, 0x11, 0x1b, 0x76, 0xed, 0x6b, 0x42, 0x0d, 0x37, 0x52, 0xc1,
0xd0, 0x51, 0xf7, 0xff, 0xe1, 0xfe, 0xa9, 0x03, 0xcb, 0x98, 0x12, 0xdf, 0xc4, 0x8b, 0xe7, 0x97, 0x23, 0x9d, 0x75, 0xff, 0x1f, 0xee, 0xff, 0x72, 0x60, 0x09, 0x53, 0xe2, 0x9b, 0x7c, 0xf1, 0xfc,
0x74, 0xf5, 0x4d, 0x58, 0xe9, 0x8f, 0x18, 0x13, 0x4f, 0x4b, 0x15, 0xe4, 0xe7, 0xb0, 0x5e, 0xd6, 0x82, 0xae, 0xbe, 0x0d, 0xcb, 0xbd, 0x11, 0x63, 0xe2, 0x6a, 0xa9, 0x92, 0xfc, 0x1c, 0xd6, 0x4b,
0x68, 0x75, 0x61, 0xc6, 0x16, 0xf7, 0x6f, 0x42, 0x3d, 0xa2, 0x4f, 0xcb, 0x5d, 0x95, 0x5a, 0x44, 0x1a, 0xad, 0x0e, 0xcc, 0xd8, 0xe2, 0xfe, 0x55, 0xa8, 0x85, 0xf4, 0xa4, 0xd8, 0x51, 0xa9, 0x86,
0x9f, 0x3e, 0xe7, 0x2d, 0xf9, 0x68, 0x01, 0xd0, 0xd1, 0x90, 0x44, 0x66, 0xc7, 0x7b, 0x8f, 0x49, 0xf4, 0xe4, 0x92, 0xa7, 0xe4, 0x77, 0x65, 0x40, 0x87, 0x03, 0x12, 0x9a, 0x1d, 0xef, 0x3e, 0x25,
0x34, 0xa0, 0xde, 0x7f, 0x9d, 0x92, 0x1b, 0x7f, 0x07, 0x1a, 0x09, 0x0b, 0x62, 0x56, 0x6e, 0xdb, 0x61, 0x9f, 0x7a, 0xff, 0x75, 0x0a, 0x6e, 0xfc, 0x1d, 0xa8, 0xc7, 0x2c, 0x88, 0x58, 0xb1, 0x6d,
0x20, 0xb1, 0x8a, 0xf2, 0x3e, 0xa0, 0x84, 0xc5, 0x49, 0x9c, 0x52, 0xbf, 0x97, 0xef, 0xd8, 0x3d, 0x83, 0xc4, 0x2a, 0xca, 0x7b, 0x80, 0x62, 0x16, 0xc5, 0x51, 0x42, 0xfd, 0x6e, 0xb6, 0x63, 0xf7,
0x5b, 0x41, 0xd3, 0x2c, 0x39, 0x34, 0x3b, 0xcf, 0x03, 0x65, 0xa1, 0x54, 0xa0, 0xa0, 0xaf, 0xc2, 0x6c, 0x05, 0x0d, 0xb3, 0xe4, 0xc0, 0xec, 0x3c, 0x4b, 0x94, 0x72, 0xa1, 0x44, 0x41, 0x5f, 0x84,
0x8a, 0x62, 0x9c, 0xb0, 0xe0, 0x44, 0x98, 0xac, 0xca, 0x37, 0xdf, 0xb2, 0x9c, 0x3c, 0x52, 0x73, 0x65, 0xc5, 0x38, 0x66, 0xc1, 0xb1, 0x30, 0x59, 0x91, 0x77, 0xbe, 0x25, 0x39, 0x79, 0xa8, 0xe6,
0xde, 0xa7, 0x76, 0x0a, 0xbb, 0x09, 0x2b, 0xc9, 0x90, 0x44, 0x51, 0xd9, 0x0c, 0xb6, 0xac, 0xd1, 0xbc, 0x5f, 0x97, 0xac, 0x90, 0xdc, 0x86, 0xe5, 0x78, 0x40, 0xc2, 0xb0, 0x68, 0x05, 0x5b, 0xd2,
0x8a, 0xe0, 0x9e, 0x78, 0x36, 0xc8, 0x47, 0x61, 0xda, 0x63, 0x34, 0x19, 0x92, 0x3e, 0xd5, 0xe7, 0x68, 0x45, 0x70, 0x57, 0x5c, 0x1b, 0xe4, 0xa5, 0x30, 0xe9, 0x32, 0x1a, 0x0f, 0x48, 0x8f, 0xea,
0x33, 0xbf, 0x1d, 0x5b, 0x33, 0x2b, 0xb0, 0x5a, 0x80, 0x36, 0x61, 0xcd, 0x50, 0x30, 0xb4, 0x5d, 0xf8, 0xcc, 0x7f, 0x8e, 0xad, 0x9a, 0x15, 0x58, 0x2d, 0x40, 0x1b, 0xb0, 0x6a, 0x28, 0x18, 0xda,
0x49, 0x7b, 0x55, 0x4f, 0x6b, 0xe2, 0x17, 0xae, 0xe7, 0xed, 0xbf, 0xba, 0x70, 0x79, 0x37, 0x49, 0xae, 0xa4, 0xbd, 0xa2, 0xa7, 0x35, 0xf1, 0x0b, 0xf7, 0x73, 0xf4, 0x06, 0xa0, 0x01, 0xed, 0x93,
0x86, 0xe3, 0xa9, 0x48, 0xf8, 0xcf, 0x8b, 0x8f, 0x84, 0x19, 0xff, 0xba, 0xcf, 0xe2, 0xdf, 0x67, 0xde, 0x58, 0x5e, 0xb2, 0xbb, 0xc9, 0x38, 0xe1, 0x74, 0xa8, 0x6f, 0xae, 0x0d, 0x25, 0x11, 0xd5,
0x0e, 0x80, 0x02, 0x5f, 0x56, 0x8b, 0x7c, 0xe9, 0xfd, 0xd9, 0x79, 0xee, 0x7b, 0xd9, 0x82, 0x25, 0xb3, 0x23, 0xe7, 0x5b, 0x7f, 0x71, 0xe1, 0xea, 0x4e, 0x1c, 0x0f, 0xc6, 0x53, 0x79, 0xf3, 0x9f,
0x63, 0x43, 0xb5, 0x16, 0x66, 0x38, 0x7d, 0x50, 0x6e, 0xd9, 0x83, 0x42, 0x6f, 0x00, 0x1a, 0xd2, 0x17, 0x9f, 0x37, 0x33, 0xd1, 0x70, 0x9f, 0x27, 0x1a, 0xcf, 0x9d, 0x2e, 0x39, 0x9e, 0xaf, 0xe4,
0x01, 0xe9, 0x8f, 0x65, 0x37, 0xd4, 0x4b, 0xc7, 0x29, 0xa7, 0xa1, 0x6e, 0x3f, 0x9a, 0x4a, 0x22, 0x79, 0xde, 0xfb, 0x93, 0x73, 0xe9, 0x53, 0xdc, 0x84, 0x45, 0x63, 0x43, 0x3d, 0x44, 0xcc, 0x70,
0xca, 0x5c, 0x57, 0xce, 0xb7, 0xff, 0x55, 0x81, 0xcb, 0x07, 0x61, 0x12, 0x33, 0x3e, 0xf9, 0x2e, 0x3a, 0xac, 0xee, 0x25, 0xc3, 0x5a, 0x9e, 0x13, 0xd6, 0x7f, 0x96, 0xe0, 0xea, 0xfe, 0x30, 0x8e,
0x78, 0xab, 0xe4, 0xa9, 0xae, 0x42, 0x25, 0xf0, 0x75, 0x1b, 0x59, 0x09, 0x7c, 0xef, 0x14, 0x9a, 0x18, 0x9f, 0xbc, 0x45, 0xbc, 0x55, 0x30, 0xaa, 0x2b, 0x50, 0x0a, 0x7c, 0xfd, 0xe8, 0x2c, 0x05,
0x4a, 0x1d, 0xcd, 0x92, 0xe4, 0xb9, 0x4d, 0x48, 0xa9, 0x80, 0x50, 0x28, 0xdb, 0x61, 0xee, 0x84, 0xbe, 0x77, 0x0a, 0x0d, 0xa5, 0x8e, 0xa6, 0x25, 0xf5, 0xdc, 0x27, 0x4b, 0xa1, 0x84, 0x50, 0x28,
0xc3, 0xbc, 0xdf, 0xdb, 0xa7, 0xf1, 0x01, 0xa0, 0x40, 0xd3, 0xe8, 0x99, 0x07, 0xb4, 0x49, 0xf4, 0xdb, 0x61, 0xee, 0x84, 0xc3, 0xbc, 0xdf, 0xda, 0xd1, 0xf8, 0x00, 0x50, 0xa0, 0x69, 0x74, 0xcd,
0xd7, 0x2d, 0x13, 0x05, 0x5b, 0xef, 0x4c, 0xf3, 0xc7, 0xeb, 0xc1, 0xd4, 0x4c, 0x7a, 0xf1, 0x7c, 0x75, 0xdb, 0xb4, 0x85, 0x9b, 0x96, 0x89, 0x9c, 0xad, 0xb7, 0xa7, 0xf9, 0xe3, 0xb5, 0x60, 0x6a,
0xfa, 0x77, 0x07, 0x56, 0x45, 0x05, 0xc9, 0x8b, 0xf6, 0x8b, 0x2b, 0xd7, 0x6c, 0xa2, 0x97, 0xa9, 0x26, 0xb9, 0x78, 0xf5, 0xfd, 0x9b, 0x03, 0x2b, 0xa2, 0xdf, 0x64, 0x2d, 0xfe, 0xc5, 0x35, 0x77,
0x96, 0x0a, 0x4d, 0xed, 0xe6, 0x0b, 0xef, 0xef, 0xb7, 0x0e, 0x5c, 0x31, 0x8d, 0x87, 0x28, 0xd4, 0x36, 0xf1, 0xf2, 0xa9, 0x14, 0x4a, 0x4d, 0xed, 0xe6, 0x0b, 0xef, 0xef, 0x57, 0x0e, 0x5c, 0x33,
0x45, 0x4d, 0xd6, 0xa9, 0xc5, 0xeb, 0x86, 0xc8, 0x0a, 0x19, 0x76, 0x7e, 0x9b, 0x65, 0xa3, 0x2e, 0xcf, 0x14, 0xd1, 0xd6, 0xf3, 0x9e, 0x64, 0xa7, 0x16, 0xaf, 0x5b, 0xa2, 0x2a, 0xa4, 0xd8, 0xf9,
0xce, 0xee, 0x63, 0x07, 0xbe, 0x68, 0x9e, 0x4d, 0x16, 0xc5, 0xcf, 0xe0, 0xa1, 0xff, 0x99, 0x3c, 0x8f, 0x32, 0x1b, 0x75, 0x71, 0x76, 0x1f, 0x39, 0xf0, 0x59, 0x73, 0xc9, 0xb2, 0x28, 0x7e, 0x02,
0x2f, 0xfe, 0xe9, 0xc0, 0x7a, 0x46, 0x2b, 0x7b, 0x63, 0xa4, 0x17, 0xa7, 0x85, 0xde, 0x06, 0xe8, 0xcf, 0x82, 0x4f, 0xe4, 0x32, 0xf2, 0x0f, 0x07, 0xd6, 0x52, 0x5a, 0xe9, 0x8d, 0x24, 0xb9, 0x38,
0xc7, 0x51, 0x44, 0xfb, 0xdc, 0xbc, 0xdc, 0xcf, 0xca, 0xb9, 0x39, 0xd4, 0xfb, 0xb1, 0xb5, 0x9f, 0x2d, 0xf4, 0x36, 0x40, 0x2f, 0x0a, 0x43, 0xda, 0xe3, 0xe6, 0x9e, 0x7f, 0x56, 0xcd, 0xcd, 0xa0,
0xab, 0xb0, 0x18, 0x8f, 0x78, 0x32, 0xe2, 0x3a, 0x24, 0xf5, 0xe8, 0xc2, 0xc7, 0xb0, 0xfd, 0xeb, 0xde, 0xf7, 0xad, 0xfd, 0x5c, 0x87, 0x85, 0x68, 0xc4, 0xe3, 0x11, 0xd7, 0x29, 0xa9, 0x47, 0x17,
0x3a, 0xd4, 0x4c, 0x93, 0x85, 0x7e, 0x04, 0xf5, 0x3b, 0x94, 0xeb, 0xdf, 0x9c, 0xbe, 0x76, 0x4e, 0x0e, 0xc3, 0xd6, 0x2f, 0x6a, 0x50, 0x35, 0x4f, 0x32, 0xf4, 0x3d, 0xa8, 0xdd, 0xa3, 0x5c, 0xff,
0xff, 0xaa, 0x02, 0xe8, 0xeb, 0xa5, 0xba, 0x5c, 0x34, 0x9c, 0xd3, 0xd1, 0xa1, 0x2d, 0x6b, 0x7d, 0x42, 0xf5, 0xa5, 0x73, 0x5e, 0xbb, 0x2a, 0x81, 0xbe, 0x5c, 0xe8, 0x4d, 0x8c, 0x06, 0x73, 0xde,
0x21, 0x22, 0xb3, 0xf4, 0x5a, 0x09, 0xa4, 0xb6, 0xf6, 0xd3, 0xb3, 0xda, 0x09, 0x74, 0xcd, 0x52, 0x7f, 0x68, 0xd3, 0x5a, 0x9f, 0x8b, 0x48, 0x2d, 0xbd, 0x56, 0x00, 0xa9, 0xad, 0xfd, 0xf0, 0xac,
0x34, 0x1f, 0x96, 0xd9, 0xed, 0x94, 0x85, 0x6b, 0xe3, 0xa3, 0xf9, 0xed, 0x00, 0x7a, 0xbd, 0x40, 0xc7, 0x07, 0xba, 0x61, 0x29, 0x9a, 0x0f, 0x4b, 0xed, 0xb6, 0x8b, 0xc2, 0xb5, 0xf1, 0xd1, 0xfc,
0xd7, 0x34, 0x28, 0x33, 0xfc, 0x46, 0x39, 0xb0, 0x36, 0x1b, 0x14, 0x77, 0x95, 0x68, 0xd3, 0xd2, 0xc7, 0x03, 0x7a, 0x3d, 0x47, 0xd7, 0x34, 0x28, 0x35, 0xfc, 0x46, 0x31, 0xb0, 0x36, 0x1b, 0xe4,
0x52, 0x04, 0xc8, 0xcc, 0x6d, 0x9d, 0x0f, 0xd4, 0xa6, 0xee, 0x5a, 0x5d, 0x03, 0x7a, 0xc5, 0x5a, 0xbf, 0x41, 0xd1, 0x86, 0xa5, 0x25, 0x0f, 0x90, 0x9a, 0xdb, 0x3c, 0x1f, 0xa8, 0x4d, 0xdd, 0xb7,
0x96, 0xcd, 0x66, 0x4a, 0x5f, 0x9d, 0x23, 0xd5, 0x9a, 0x7e, 0x38, 0xf9, 0x86, 0x47, 0x5f, 0xb6, 0xde, 0x18, 0xe8, 0x15, 0x6b, 0x59, 0x3a, 0x9b, 0x2a, 0x7d, 0x75, 0x8e, 0x54, 0x6b, 0xfa, 0xee,
0xbb, 0x55, 0x4b, 0x90, 0xe9, 0xdb, 0x98, 0x0f, 0xd0, 0x2a, 0xfb, 0x45, 0x8f, 0x64, 0x64, 0x87, 0xe4, 0x8d, 0x1f, 0x7d, 0xde, 0x7e, 0xdb, 0x5a, 0x82, 0x54, 0xdf, 0xfa, 0x7c, 0x80, 0x56, 0xd9,
0xe9, 0xac, 0x38, 0x53, 0xff, 0x8d, 0xf3, 0x60, 0xda, 0xc8, 0x71, 0xe1, 0x03, 0x0c, 0xd9, 0xcb, 0xcb, 0xbb, 0x52, 0x23, 0x3b, 0x4d, 0x67, 0xc5, 0xa9, 0xfa, 0xaf, 0x9c, 0x07, 0xd3, 0x46, 0x8e,
0x0b, 0xe4, 0x99, 0x99, 0xcd, 0x73, 0x71, 0xb9, 0x9d, 0x82, 0xb2, 0x38, 0x61, 0xa7, 0xa8, 0x6c, 0x72, 0x2f, 0x60, 0xc8, 0x5e, 0x9e, 0x23, 0x4f, 0xcd, 0x6c, 0x9c, 0x8b, 0xcb, 0xec, 0xe4, 0xb4,
0x16, 0xd9, 0x29, 0xc6, 0x69, 0x3b, 0x0f, 0xa7, 0x2b, 0x21, 0xfa, 0xca, 0x94, 0xa3, 0x73, 0x51, 0xc5, 0x09, 0x3b, 0x79, 0x6d, 0x33, 0xcf, 0x4e, 0x3e, 0x4e, 0xdb, 0x79, 0x3c, 0xdd, 0x09, 0xd1,
0xa6, 0xbd, 0x7d, 0x16, 0x44, 0x2b, 0xfe, 0xb6, 0xfa, 0x45, 0x1e, 0x4d, 0xfc, 0xa0, 0xc9, 0xe3, 0x17, 0xa6, 0x1c, 0x9d, 0x89, 0x52, 0xed, 0xad, 0xb3, 0x20, 0x5a, 0xf1, 0xd7, 0xd5, 0xef, 0xf7,
0x24, 0x53, 0xd2, 0x9a, 0x15, 0xa8, 0xa5, 0xdb, 0x1f, 0xb9, 0xd0, 0xb0, 0x0a, 0x03, 0xfa, 0xc0, 0x68, 0xe2, 0xe7, 0x4f, 0x1e, 0xc5, 0xa9, 0x92, 0xe6, 0xac, 0x40, 0x2d, 0xdd, 0xfa, 0x89, 0x0b,
0x4e, 0x4e, 0x9b, 0x05, 0x69, 0xc7, 0xae, 0x71, 0x85, 0x51, 0x3d, 0x07, 0xa8, 0xa9, 0x9e, 0x9e, 0x75, 0xab, 0x31, 0xa0, 0x0f, 0xec, 0xe2, 0xb4, 0x91, 0x53, 0x76, 0xec, 0x1e, 0x97, 0x9b, 0xd5,
0x51, 0x8f, 0x50, 0xd1, 0x5d, 0x9c, 0x41, 0x65, 0x46, 0xaf, 0x95, 0x44, 0x6b, 0xcb, 0x8f, 0x0a, 0x73, 0x80, 0x9a, 0xea, 0xe9, 0x19, 0xfd, 0x08, 0xe5, 0x9d, 0xc5, 0x19, 0x54, 0x6a, 0xf4, 0x46,
0x4a, 0xcd, 0x44, 0xfa, 0x9d, 0x91, 0x16, 0xa6, 0xdf, 0x22, 0x94, 0xb2, 0xf0, 0xa6, 0xf3, 0x1c, 0x41, 0xb4, 0xb6, 0xfc, 0x24, 0xa7, 0xd5, 0x4c, 0x94, 0xdf, 0x19, 0x69, 0x6e, 0xf9, 0xcd, 0x43,
0x07, 0xf1, 0x68, 0x51, 0xfe, 0xd5, 0x76, 0xe3, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xda, 0x29, 0x0b, 0x6f, 0x3a, 0x97, 0x08, 0xc4, 0x93, 0x05, 0xf9, 0xc7, 0xdc, 0xad, 0xff, 0x05, 0x00,
0x07, 0x8d, 0x7d, 0x1b, 0x00, 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; repeated AttributePath requires_replace = 2;
bytes planned_private = 3; bytes planned_private = 3;
repeated Diagnostic diagnostics = 4; 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.PlannedPrivate = protoResp.PlannedPrivate
resp.LegacyTypeSystem = protoResp.LegacyTypeSystem
return resp return resp
} }

View File

@ -226,6 +226,13 @@ type PlanResourceChangeResponse struct {
// Diagnostics contains any warnings or errors from the method call. // Diagnostics contains any warnings or errors from the method call.
Diagnostics tfdiags.Diagnostics 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 { type ApplyResourceChangeRequest struct {

View File

@ -216,18 +216,32 @@ func (n *EvalDiff) Eval(ctx EvalContext) (interface{}, error) {
return nil, diags.Err() return nil, diags.Err()
} }
for _, err := range objchange.AssertPlanValid(schema, priorVal, configVal, plannedNewVal) { if errs := objchange.AssertPlanValid(schema, priorVal, configVal, plannedNewVal); len(errs) > 0 {
diags = diags.Append(tfdiags.Sourceless( if resp.LegacyTypeSystem {
tfdiags.Error, // The shimming of the old type system in the legacy SDK is not precise
"Provider produced invalid plan", // enough to pass this consistency check, so we'll give it a pass here,
fmt.Sprintf( // but we will generate a warning about it so that we are more likely
"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.", // to notice in the logs if an inconsistency beyond the type system
n.ProviderAddr.ProviderConfig.Type, tfdiags.FormatErrorPrefixed(err, absAddr.String()), // 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 {
if diags.HasErrors() { fmt.Fprintf(&buf, "\n - %s", tfdiags.FormatError(err))
return nil, diags.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()
}
} }
{ {