types

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

README

(connector) types

Go Report Card Documentation license

This package contains types related to the connector service.

Documentation

Index

Constants

View Source
const (
	// PluginTypeAwsEc2Discovery is the plugin type for aws ec2 instance discovery.
	PluginTypeAwsEc2Discovery = "aws_ec2_discovery"

	// PluginTypeAwsEcsDiscovery is the plugin type for aws ecs cluster discovery.
	PluginTypeAwsEcsDiscovery = "aws_ecs_discovery"

	// PluginTypeAwsRdsDiscovery is the plugin type for aws rds db instance discovery.
	PluginTypeAwsRdsDiscovery = "aws_rds_discovery"

	// PluginTypeDockerDiscovery is the plugin type for docker container discovery.
	PluginTypeDockerDiscovery = "docker_discovery"

	// PluginTypeKubernetesDiscovery is the plugin type for kubernetes pod discovery.
	PluginTypeKubernetesDiscovery = "kubernetes_discovery"

	// PluginTypeNetworkDiscovery is the plugin type for network service discovery.
	PluginTypeNetworkDiscovery = "network_discovery"
)
View Source
const (
	// UpstreamConnectionTypeSSH represents a SSH type of upstream connection.
	UpstreamConnectionTypeSSH = "ssh"
	// UpstreamConnectionTypeAwsEC2Connection represents a AWS EC2 Connect type of upstream connection.
	UpstreamConnectionTypeAwsEC2Connection = "aws_ec2_connect"
	// UpstreamConnectionTypeAwsSSM represents a AWS SSM type of upstream connection.
	UpstreamConnectionTypeAwsSSM = "aws_ssm"
	// UpstreamConnectionTypeBuiltInSshServer represents the Border0 built-in SSH server.
	UpstreamConnectionTypeBuiltInSshServer = "built_in_ssh_server"
	// UpstreamConnectionTypeDatabase represents a database type of upstream connection.
	UpstreamConnectionTypeDatabase = "database"
)
View Source
const (
	// UpstreamAuthenticationTypeUsernamePassword represents a username password type of upstream authentication.
	UpstreamAuthenticationTypeUsernamePassword = "username_password"
	// UpstreamAuthenticationTypeBorder0Cert represents a Border0 certificate type of upstream authentication.
	UpstreamAuthenticationTypeBorder0Cert = "border0_cert"
	// UpstreamAuthenticationTypeSSHPrivateKey represents a SSH private key type of upstream authentication.
	UpstreamAuthenticationTypeSSHPrivateKey = "ssh_private_key"
)

Upstream authentication type constants.

View Source
const (
	// UsernameProviderPromptClient specifies that the username will be prompted-for to clients.
	UsernameProviderPromptClient = "prompt_client"
	// UsernameProviderUseConnectorUser specifies that the username will be derived from the connector's user.
	UsernameProviderUseConnectorUser = "use_connector_user"
	// UsernameProviderDefined specifies that the username will be defined in the socket upstream data by admins.
	UsernameProviderDefined = "defined"
)

Built-in ssh server username provider constants.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSConfiguration added in v0.1.6

type AWSConfiguration struct {
	// Region of the AWS configuration.
	Region string `json:"region"`
	// InstanceID of the AWS configuration.
	InstanceID string `json:"instance_id"`
	// AwsCredentials are optional and represent AWS credentials for the configuration.
	AwsCredentials *AwsCredentials `json:"aws_credentials,omitempty"`
}

AWSConfiguration represents an AWS configuration for upstream connection.

type AwsCredentials

type AwsCredentials struct {
	AwsProfile         *string `json:"aws_profile,omitempty"`
	AwsAccessKeyId     *string `json:"aws_access_key_id,omitempty"`
	AwsSecretAccessKey *string `json:"aws_secret_access_key,omitempty"`
	AwsSessionToken    *string `json:"aws_session_token,omitempty"`
}

AwsCredentials represents credentials and configuration for authenticating against AWS APIs.

type AwsEC2ConnectDetails added in v0.1.11

type AwsEC2ConnectDetails struct {
	AWSConfiguration
}

AwsCredentials represents AWS EC2 Connect details

type AwsEc2DiscoveryPluginConfiguration

type AwsEc2DiscoveryPluginConfiguration struct {
	BaseAwsPluginConfiguration       // extends
	BaseDiscoveryPluginConfiguration // extends

	IncludeWithStates []string            `json:"include_with_states,omitempty"`
	IncludeWithTags   map[string][]string `json:"include_with_tags,omitempty"`
	ExcludeWithTags   map[string][]string `json:"exclude_with_tags,omitempty"`
	CheckSsmStatus    bool                `json:"check_ssm_status"`
}

AwsEc2DiscoveryPluginConfiguration represents configuration for the aws_ec2_discovery plugin.

type AwsEc2IdentityMetadata added in v0.1.18

type AwsEc2IdentityMetadata struct {
	AwsAccountId        string `json:"aws_account_id,omitempty"`
	AwsRegion           string `json:"aws_region,omitempty"`
	AwsAvailabilityZone string `json:"aws_availability_zone,omitempty"`
	Ec2InstanceId       string `json:"ec2_instance_id,omitempty"`
	Ec2InstanceType     string `json:"ec2_instance_type,omitempty"`
	Ec2ImageId          string `json:"ec2_image_id,omitempty"`
	KernelId            string `json:"kernel_id,omitempty"`
	RamdiskId           string `json:"ramdisk_id,omitempty"`
	Architecture        string `json:"architecture,omitempty"`
	PrivateIpAddress    string `json:"private_ip_address,omitempty"`
}

AwsEc2IdentityMetadata represents metadata for connectors running on AWS EC2 instances.

type AwsEcsDiscoveryPluginConfiguration

type AwsEcsDiscoveryPluginConfiguration struct {
	BaseAwsPluginConfiguration       // extends
	BaseDiscoveryPluginConfiguration // extends

	IncludeWithTags map[string][]string `json:"include_with_tags,omitempty"`
	ExcludeWithTags map[string][]string `json:"exclude_with_tags,omitempty"`
}

AwsEcsDiscoveryPluginConfiguration represents configuration for the aws_ecs_discovery plugin.

type AwsRdsDiscoveryPluginConfiguration

type AwsRdsDiscoveryPluginConfiguration struct {
	BaseAwsPluginConfiguration       // extends
	BaseDiscoveryPluginConfiguration // extends

	IncludeWithStatuses []string            `json:"include_with_statuses,omitempty"`
	IncludeWithTags     map[string][]string `json:"include_with_tags,omitempty"`
	ExcludeWithTags     map[string][]string `json:"exclude_with_tags,omitempty"`
}

AwsRdsDiscoveryPluginConfiguration represents configuration for the aws_rds_discovery plugin.

type AwsSSMDetails added in v0.1.11

type AwsSSMDetails struct {
	AWSConfiguration
}

AwsCredentials represents AWS SSM details

type BaseAwsPluginConfiguration

type BaseAwsPluginConfiguration struct {
	AwsCredentials *AwsCredentials `json:"aws_credentials,omitempty"`
	AwsRegions     []string        `json:"aws_regions,omitempty"`
}

BaseAwsPluginConfiguration represents configuration fields shared across all AWS related plugins.

type BaseDiscoveryPluginConfiguration

type BaseDiscoveryPluginConfiguration struct {
	ScanIntervalMinutes uint32 `json:"scan_interval_minutes"`
}

BaseDiscoveryPluginConfiguration represents configuration fields shared across all discovery related plugins.

type BaseUpstreamDetails added in v0.1.6

type BaseUpstreamDetails struct {
	// Hostname of the upstream connection.
	Hostname string `json:"hostname"`
	// Port of the upstream connection.
	Port int `json:"port"`
}

BaseUpstreamDetails represents basic details of an upstream connection.

type BasicCredentials added in v0.1.6

type BasicCredentials struct {
	// Username for the credentials.
	Username string `json:"username,omitempty"`
	// Password for the credentials.
	Password string `json:"password,omitempty"`
}

BasicCredentials represents a basic username-password pair.

type Border0CertificateDetails added in v0.1.21

type Border0CertificateDetails struct {
	Username string `json:"username,omitempty"`
}

Border0CertificateDetails represents details of a Border0 certificate.

type BuiltInSshServerDetails added in v0.1.23

type BuiltInSshServerDetails struct {
	UsernameProvider string `json:"username_provider,omitempty"`
	Username         string `json:"username,omitempty"`
}

BuiltInSshServerDetails represents details to use for a built-in ssh server socket.

type ConnectorMetadata added in v0.1.18

type ConnectorMetadata struct {
	AwsEc2IdentityMetadata *AwsEc2IdentityMetadata `json:"aws_ec2_identity_metadata,omitempty"`
}

ConnectorMetadata represents informational data about a connector.

type ConnectorServiceUpstreamConfig added in v0.1.6

type ConnectorServiceUpstreamConfig struct {
	// BaseUpstreamDetails contains basic details of the upstream connection.
	BaseUpstreamDetails
	// UpstreamConnectionType specifies the type of the upstream connection.
	UpstreamConnectionType string `json:"upstream_connection_type"`
	// SSHConfiguration is optional and represents a configuration for a SSH connection.
	SSHConfiguration *SSHConfiguration `json:"ssh_configuration,omitempty"`
	// DatabaseConfiguration is optional and represents a configuration for a database connection.
	DatabaseConfiguration *service.DatabaseServiceConfiguration `json:"database_service_configuration,omitempty"`
}

ConnectorServiceUpstreamConfig represents a configuration of a connector service upstream.

type DockerDiscoveryPluginConfiguration

type DockerDiscoveryPluginConfiguration struct {
	BaseDiscoveryPluginConfiguration // extends

	IncludeWithLabels map[string][]string `json:"include_with_labels,omitempty"`
	ExcludeWithLabels map[string][]string `json:"exclude_with_labels,omitempty"`
}

DockerDiscoveryPluginConfiguration represents configuration for the docker_discovery plugin.

type KubernetesCredentials added in v0.1.7

type KubernetesCredentials struct {
	MasterUrl      *string `json:"master_url,omitempty"`
	KubeconfigPath *string `json:"kubeconfig_path,omitempty"`
}

KubernetesCredentials represents credentials and configuration for authenticating against a Kubernetes API.

type KubernetesDiscoveryPluginConfiguration

type KubernetesDiscoveryPluginConfiguration struct {
	BaseDiscoveryPluginConfiguration // extends

	KubernetesCredentials *KubernetesCredentials `json:"kubernetes_credentials,omitempty"`

	Namespaces []string `json:"namespaces,omitempty"`

	IncludeWithLabels map[string][]string `json:"include_with_labels,omitempty"`
	ExcludeWithLabels map[string][]string `json:"exclude_with_labels,omitempty"`
}

KubernetesDiscoveryPluginConfiguration represents configuration for the kubernetes_discovery plugin.

type NetworkDiscoveryPluginConfiguration

type NetworkDiscoveryPluginConfiguration struct {
	BaseDiscoveryPluginConfiguration // extends

	Targets []NetworkDiscoveryTarget `json:"targets"`
}

NetworkDiscoveryPluginConfiguration represents configuration for the network_discovery plugin.

type NetworkDiscoveryTarget added in v0.1.14

type NetworkDiscoveryTarget struct {
	Target string   `json:"target"`
	Ports  []uint16 `json:"ports"`
}

NetworkDiscoveryTarget represents a single target and configuration for the network_discovery plugin.

type PluginConfiguration

type PluginConfiguration struct {
	AwsEc2DiscoveryPluginConfiguration     *AwsEc2DiscoveryPluginConfiguration     `json:"aws_ec2_discovery_plugin_configuration,omitempty"`
	AwsEcsDiscoveryPluginConfiguration     *AwsEcsDiscoveryPluginConfiguration     `json:"aws_ecs_discovery_plugin_configuration,omitempty"`
	AwsRdsDiscoveryPluginConfiguration     *AwsRdsDiscoveryPluginConfiguration     `json:"aws_rds_discovery_plugin_configuration,omitempty"`
	DockerDiscoveryPluginConfiguration     *DockerDiscoveryPluginConfiguration     `json:"docker_discovery_plugin_configuration,omitempty"`
	KubernetesDiscoveryPluginConfiguration *KubernetesDiscoveryPluginConfiguration `json:"kubernetes_discovery_plugin_configuration,omitempty"`
	NetworkDiscoveryPluginConfiguration    *NetworkDiscoveryPluginConfiguration    `json:"network_discovery_plugin_configuration,omitempty"`
}

PluginConfiguration represents configuration for a Border0 connector plugin.

type SSHConfiguration added in v0.1.6

type SSHConfiguration struct {
	// UpstreamAuthenticationType specifies the type of authentication for the SSH connection.
	UpstreamAuthenticationType string `json:"upstream_authentication_type,omitempty"`
	// AwsSSMDetails are optional and represent AWS SSM details for SSH connection.
	AwsSSMDetails *AwsSSMDetails `json:"aws_ssm_details,omitempty"`
	// AwsEC2ConnectDetails are optional and represent AWS EC2 Connect details for SSH connection.
	AwsEC2ConnectDetails *AwsEC2ConnectDetails `json:"aws_ec2_connect_details,omitempty"`
	// SSHPrivateKeyDetails are optional and represent a private key details for SSH connection.
	SSHPrivateKeyDetails *SSHPrivateKeyDetails `json:"ssh_private_key_details,omitempty"`
	// Border0 cert is optional and represents a Border0 certificate for SSH connection.
	Border0CertificateDetails *Border0CertificateDetails `json:"border0_certificate_details,omitempty"`
	// BuiltInSshServerDetails is optional and represents details for a built-in ssh server ssh connection.
	BuiltInSshServerDetails *BuiltInSshServerDetails `json:"built_in_ssh_server_details,omitempty"`
	// BasicCredentials are optional and represent a username-password pair for SSH connection.
	BasicCredentials *BasicCredentials `json:"basic_credentials,omitempty"`
}

SSHConfiguration represents a configuration for a SSH connection.

type SSHPrivateKeyDetails added in v0.1.6

type SSHPrivateKeyDetails struct {
	// Key is the SSH private key.
	Key string `json:"key"`
	// Username is the SSH username
	Username string `json:"username,omitempty"`
}

SSHPrivateKeyDetails represents details of a SSH private key.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL