sqsbroker

package
v0.0.0-...-fe161b3 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Catalog

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

func (Catalog) FindService

func (c Catalog) FindService(serviceID string) (service Service, found bool)

func (Catalog) FindServicePlan

func (c Catalog) FindServicePlan(planID string) (plan ServicePlan, found bool)

func (Catalog) Validate

func (c Catalog) Validate() error

type Config

type Config struct {
	Region                       string  `json:"region"`
	SQSPrefix                    string  `json:"sqs_prefix"`
	AllowUserProvisionParameters bool    `json:"allow_user_provision_parameters"`
	AllowUserUpdateParameters    bool    `json:"allow_user_update_parameters"`
	Catalog                      Catalog `json:"catalog"`
}

func (Config) Validate

func (c Config) Validate() error

type Cost

type Cost struct {
	Amount map[string]interface{} `json:"amount,omitempty"`
	Unit   string                 `json:"unit,omitempty"`
}

type DashboardClient

type DashboardClient struct {
	ID          string `json:"id,omitempty"`
	Secret      string `json:"secret,omitempty"`
	RedirectURI string `json:"redirect_uri,omitempty"`
}

type ProvisionParameters

type ProvisionParameters struct {
	DelaySeconds                  string `mapstructure:"delay_seconds"`
	MaximumMessageSize            string `mapstructure:"maximum_message_size"`
	MessageRetentionPeriod        string `mapstructure:"message_retention_period"`
	ReceiveMessageWaitTimeSeconds string `mapstructure:"receive_message_wait_time_seconds"`
	VisibilityTimeout             string `mapstructure:"visibility_timeout"`
}

type SQSBroker

type SQSBroker struct {
	// contains filtered or unexported fields
}

func New

func New(
	config Config,
	queue awssqs.Queue,
	user awsiam.User,
	logger lager.Logger,
) *SQSBroker

func (*SQSBroker) Bind

func (b *SQSBroker) Bind(instanceID, bindingID string, details brokerapi.BindDetails) (brokerapi.BindingResponse, error)

func (*SQSBroker) Deprovision

func (b *SQSBroker) Deprovision(instanceID string, details brokerapi.DeprovisionDetails, acceptsIncomplete bool) (bool, error)

func (*SQSBroker) LastOperation

func (b *SQSBroker) LastOperation(instanceID string) (brokerapi.LastOperationResponse, error)

func (*SQSBroker) Provision

func (b *SQSBroker) Provision(instanceID string, details brokerapi.ProvisionDetails, acceptsIncomplete bool) (brokerapi.ProvisioningResponse, bool, error)

func (*SQSBroker) Services

func (b *SQSBroker) Services() brokerapi.CatalogResponse

func (*SQSBroker) Unbind

func (b *SQSBroker) Unbind(instanceID, bindingID string, details brokerapi.UnbindDetails) error

func (*SQSBroker) Update

func (b *SQSBroker) Update(instanceID string, details brokerapi.UpdateDetails, acceptsIncomplete bool) (bool, error)

type SQSProperties

type SQSProperties struct {
	DelaySeconds                  string `json:"delay_seconds,omitempty"`
	MaximumMessageSize            string `json:"maximum_message_size,omitempty"`
	MessageRetentionPeriod        string `json:"message_retention_period,omitempty"`
	Policy                        string `json:"policy,omitempty"`
	ReceiveMessageWaitTimeSeconds string `json:"receive_message_wait_time_seconds,omitempty"`
	VisibilityTimeout             string `json:"visibility_timeout,omitempty"`
}

func (SQSProperties) Validate

func (sq SQSProperties) Validate() error

type Service

type Service struct {
	ID              string           `json:"id"`
	Name            string           `json:"name"`
	Description     string           `json:"description"`
	Bindable        bool             `json:"bindable,omitempty"`
	Tags            []string         `json:"tags,omitempty"`
	Metadata        *ServiceMetadata `json:"metadata,omitempty"`
	Requires        []string         `json:"requires,omitempty"`
	PlanUpdateable  bool             `json:"plan_updateable"`
	Plans           []ServicePlan    `json:"plans,omitempty"`
	DashboardClient *DashboardClient `json:"dashboard_client,omitempty"`
}

func (Service) Validate

func (s Service) Validate() error

type ServiceMetadata

type ServiceMetadata struct {
	DisplayName         string `json:"displayName,omitempty"`
	ImageURL            string `json:"imageUrl,omitempty"`
	LongDescription     string `json:"longDescription,omitempty"`
	ProviderDisplayName string `json:"providerDisplayName,omitempty"`
	DocumentationURL    string `json:"documentationUrl,omitempty"`
	SupportURL          string `json:"supportUrl,omitempty"`
}

type ServicePlan

type ServicePlan struct {
	ID            string               `json:"id"`
	Name          string               `json:"name"`
	Description   string               `json:"description"`
	Metadata      *ServicePlanMetadata `json:"metadata,omitempty"`
	Free          bool                 `json:"free"`
	SQSProperties SQSProperties        `json:"sqs_properties,omitempty"`
}

func (ServicePlan) Validate

func (sp ServicePlan) Validate() error

type ServicePlanMetadata

type ServicePlanMetadata struct {
	Bullets     []string `json:"bullets,omitempty"`
	Costs       []Cost   `json:"costs,omitempty"`
	DisplayName string   `json:"displayName,omitempty"`
}

type UpdateParameters

type UpdateParameters struct {
	DelaySeconds                  string `mapstructure:"delay_seconds"`
	MaximumMessageSize            string `mapstructure:"maximum_message_size"`
	MessageRetentionPeriod        string `mapstructure:"message_retention_period"`
	ReceiveMessageWaitTimeSeconds string `mapstructure:"receive_message_wait_time_seconds"`
	VisibilityTimeout             string `mapstructure:"visibility_timeout"`
}

Jump to

Keyboard shortcuts

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