provider

package
v0.50.0 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const AIVEN_BASE_URL string = "https://api.aiven.io"
View Source
const RestoreFromLatestBackupBeforeTimeFormat = "2006-01-02 15:04:05"
View Source
const RestoreFromPointInTimeBeforeTimeFormat = "2006-01-02 15:04:05"

Variables

This section is empty.

Functions

func IPAddresses added in v0.35.0

func IPAddresses(iplist string) string

func ParseIPWhitelist

func ParseIPWhitelist(ips string) ([]string, error)

Types

type AivenProvider

type AivenProvider struct {
	Client                       aiven.Client
	Config                       *Config
	AllowUserProvisionParameters bool
	AllowUserUpdateParameters    bool
	Logger                       lager.Logger
}

func New

func New(configJSON []byte, logger lager.Logger) (*AivenProvider, error)

func (*AivenProvider) Bind

func (ap *AivenProvider) Bind(ctx context.Context, bindData BindData) (binding domain.Binding, err error)

func (*AivenProvider) BuildServiceName added in v0.38.0

func (ap *AivenProvider) BuildServiceName(guid string) string

func (*AivenProvider) CheckPermissionsFromTags added in v0.38.0

func (ap *AivenProvider) CheckPermissionsFromTags(
	details domain.ProvisionDetails,
	tags *aiven.ServiceTags,
) error

func (*AivenProvider) Deprovision

func (ap *AivenProvider) Deprovision(ctx context.Context, deprovisionData DeprovisionData) (operationData string, err error)

func (*AivenProvider) LastOperation

func (ap *AivenProvider) LastOperation(
	ctx context.Context,
	lastOperationData LastOperationData,
) (state domain.LastOperationState, description string, err error)

func (*AivenProvider) Provision

func (ap *AivenProvider) Provision(
	ctx context.Context,
	provisionData ProvisionData,
	asyncAllowed bool,
) (result domain.ProvisionedServiceSpec, err error)

func (*AivenProvider) Unbind

func (ap *AivenProvider) Unbind(ctx context.Context, unbindData UnbindData) (err error)

func (*AivenProvider) Update

func (ap *AivenProvider) Update(
	ctx context.Context,
	updateData UpdateData,
	asyncAllowed bool,
) (result domain.UpdateServiceSpec, err error)

type AivenServiceCommonConfig added in v0.22.0

type AivenServiceCommonConfig struct{}

type AivenServiceInfluxDBConfig added in v0.22.0

type AivenServiceInfluxDBConfig struct{}

type AivenServiceOpenSearchConfig added in v0.38.0

type AivenServiceOpenSearchConfig struct {
	OpenSearchVersion string `json:"opensearch_version"`
}

type BindData

type BindData struct {
	InstanceID string
	BindingID  string
	Details    domain.BindDetails
}

type Catalog

type Catalog struct {
	Services []Service `json:"services"`
}

type CommonCredentials added in v0.22.0

type CommonCredentials struct {
	URI      string `json:"uri"`
	Hostname string `json:"hostname"`
	Port     string `json:"port"`
	Username string `json:"username"`
	Password string `json:"password"`
}

type Config

type Config struct {
	DeployEnv         string
	BrokerName        string `json:"name"`
	Cloud             string `json:"cloud"`
	ServiceNamePrefix string
	APIToken          string
	Project           string
	Catalog           Catalog `json:"catalog"`
}

func DecodeConfig

func DecodeConfig(b []byte) (*Config, error)

func (*Config) FindPlan

func (c *Config) FindPlan(serviceId, planId string) (*Plan, error)

type Credentials

type Credentials struct {
	CommonCredentials

	InfluxDBCredentials
}

func BuildCredentials added in v0.22.0

func BuildCredentials(
	serviceType string,
	username string,
	password string,
	hostname string,
	port string,
) (Credentials, error)

type DeprovisionData

type DeprovisionData struct {
	InstanceID string
	Details    domain.DeprovisionDetails
	Service    domain.Service
	Plan       domain.ServicePlan
}

type InfluxDBCredentials added in v0.22.0

type InfluxDBCredentials struct {
	InfluxDBPrometheus *InfluxDBPrometheusCredentials `json:"prometheus,omitempty"`
	InfluxDBDatabase   string                         `json:"database,omitempty"`
}

type InfluxDBPrometheusBasicAuthCredentials added in v0.22.0

type InfluxDBPrometheusBasicAuthCredentials struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type InfluxDBPrometheusCredentials added in v0.22.0

type InfluxDBPrometheusCredentials struct {
	RemoteRead  []InfluxDBPrometheusRemoteReadCredentials `json:"remote_read"`
	RemoteWrite []InfluxDBPrometheusRemoteCredentials     `json:"remote_write"`
}

type InfluxDBPrometheusRemoteCredentials added in v0.22.0

type InfluxDBPrometheusRemoteCredentials struct {
	URL                  string                                 `json:"url"`
	BasicAuthCredentials InfluxDBPrometheusBasicAuthCredentials `json:"basic_auth"`
}

type InfluxDBPrometheusRemoteReadCredentials added in v0.26.0

type InfluxDBPrometheusRemoteReadCredentials struct {
	InfluxDBPrometheusRemoteCredentials
	ReadRecent bool `json:"read_recent"`
}

type LastOperationData

type LastOperationData struct {
	InstanceID    string
	OperationData string
}

type Plan

type Plan struct {
	domain.ServicePlan
	PlanSpecificConfig
}

type PlanSpecificConfig

type PlanSpecificConfig struct {
	AivenPlan string `json:"aiven_plan"`

	AivenServiceCommonConfig
	AivenServiceOpenSearchConfig
	AivenServiceInfluxDBConfig
}

type ProvisionData

type ProvisionData struct {
	InstanceID    string
	Details       domain.ProvisionDetails
	Service       domain.Service
	Plan          domain.ServicePlan
	RawParameters json.RawMessage
}

type ProvisionParameters added in v0.35.0

type ProvisionParameters struct {
	UserIpFilter                  string  `json:"ip_filter"`
	RestoreFromLatestBackupOf     *string `json:"restore_from_latest_backup_of"`
	RestoreFromLatestBackupBefore *string `json:"restore_from_latest_backup_before"`
}

func (*ProvisionParameters) Validate added in v0.38.0

func (pp *ProvisionParameters) Validate() error

type Service

type Service struct {
	domain.Service
	Plans []Plan `json:"plans"`
}

type ServiceProvider

type ServiceProvider interface {
	Provision(context.Context, ProvisionData, bool) (result domain.ProvisionedServiceSpec, err error)
	Deprovision(context.Context, DeprovisionData) (operationData string, err error)
	Bind(context.Context, BindData) (binding domain.Binding, err error)
	Unbind(context.Context, UnbindData) (err error)
	Update(context.Context, UpdateData, bool) (result domain.UpdateServiceSpec, err error)
	LastOperation(context.Context, LastOperationData) (state domain.LastOperationState, description string, err error)
	BuildServiceName(guid string) (serviceName string)
	CheckPermissionsFromTags(details domain.ProvisionDetails, tags *aiven.ServiceTags) (err error)
}

type UnbindData

type UnbindData struct {
	InstanceID string
	BindingID  string
	Details    domain.UnbindDetails
}

type UpdateData

type UpdateData struct {
	InstanceID    string
	Details       domain.UpdateDetails
	Service       domain.Service
	Plan          domain.ServicePlan
	RawParameters json.RawMessage
}

type UpdateParameters added in v0.35.0

type UpdateParameters struct {
	UserIpFilter string `json:"ip_filter"`
}

Directories

Path Synopsis
fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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