Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk) from 2.26.1 to 2.27.0. - [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases) - [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.26.1...v2.27.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package plugin
|
|
|
|
import (
|
|
"io"
|
|
"net"
|
|
)
|
|
|
|
// Protocol is an enum representing the types of protocols.
|
|
type Protocol string
|
|
|
|
const (
|
|
ProtocolInvalid Protocol = ""
|
|
ProtocolNetRPC Protocol = "netrpc"
|
|
ProtocolGRPC Protocol = "grpc"
|
|
)
|
|
|
|
// ServerProtocol is an interface that must be implemented for new plugin
|
|
// protocols to be servers.
|
|
type ServerProtocol interface {
|
|
// Init is called once to configure and initialize the protocol, but
|
|
// not start listening. This is the point at which all validation should
|
|
// be done and errors returned.
|
|
Init() error
|
|
|
|
// Config is extra configuration to be outputted to stdout. This will
|
|
// be automatically base64 encoded to ensure it can be parsed properly.
|
|
// This can be an empty string if additional configuration is not needed.
|
|
Config() string
|
|
|
|
// Serve is called to serve connections on the given listener. This should
|
|
// continue until the listener is closed.
|
|
Serve(net.Listener)
|
|
}
|
|
|
|
// ClientProtocol is an interface that must be implemented for new plugin
|
|
// protocols to be clients.
|
|
type ClientProtocol interface {
|
|
io.Closer
|
|
|
|
// Dispense dispenses a new instance of the plugin with the given name.
|
|
Dispense(string) (interface{}, error)
|
|
|
|
// Ping checks that the client connection is still healthy.
|
|
Ping() error
|
|
}
|