models

package
v2.0.3 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package models implements database object models for use with GORM

Index

Constants

View Source
const (
	ProvisionOperationType   = "provision"
	DeprovisionOperationType = "deprovision"
	UpdateOperationType      = "update"
	UpgradeOperationType     = "upgrade"
	BindOperationType        = "bind"
	UnbindOperationType      = "unbind"
	ClearOperationType       = ""
)

The following operation types are used as part of the OSB process. The types correspond to asynchronous provision/deprovision/update calls and will exist on a ServiceInstanceDetails with an operation ID that can be used to look up the state of an operation.

Variables

This section is empty.

Functions

This section is empty.

Types

type BindRequestDetails

type BindRequestDetails BindRequestDetailsV1

BindRequestDetails holds user-defined properties passed to a call to provision a service.

type BindRequestDetailsV1

type BindRequestDetailsV1 struct {
	gorm.Model

	ServiceBindingID  string `gorm:"unique"`
	ServiceInstanceID string

	// is a json.Marshal of models.BindDetails
	RequestDetails []byte `gorm:"type:blob"`
}

BindRequestDetailsV1 holds user-defined properties passed to a call to provision a service.

func (BindRequestDetailsV1) TableName

func (BindRequestDetailsV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type CloudOperation

type CloudOperation CloudOperationV1

CloudOperation holds information about the status of Google Cloud long-running operations.

type CloudOperationV1

type CloudOperationV1 struct {
	gorm.Model

	Name          string
	Status        string
	OperationType string
	ErrorMessage  string `gorm:"type:text"`
	InsertTime    string
	StartTime     string
	TargetID      string
	TargetLink    string

	ServiceID         string
	ServiceInstanceID string
}

CloudOperationV1 holds information about the status of Google Cloud long-running operations. As-of version 4.1.0, this table is no longer necessary.

func (CloudOperationV1) TableName

func (CloudOperationV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type Migration

type Migration MigrationV1

Migration represents the migrations table. It holds a monotonically increasing number that gets incremented with every database schema revision.

type MigrationV1

type MigrationV1 struct {
	gorm.Model

	MigrationID int `gorm:"type:int(10)"`
}

MigrationV1 represents the migrations table. It holds a monotonically increasing number that gets incremented with every database schema revision.

func (MigrationV1) TableName

func (MigrationV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type PasswordMetadata

type PasswordMetadata PasswordMetadataV1

PasswordMetadata contains information about the passwords, but never the passwords themselves

type PasswordMetadataV1

type PasswordMetadataV1 struct {
	ID        uint `gorm:"primarykey"`
	CreatedAt time.Time
	UpdatedAt time.Time

	Label   string `gorm:"index;unique;not null"`
	Salt    []byte `gorm:"type:blob;not null"`
	Canary  []byte `gorm:"type:blob;not null"`
	Primary bool
}

PasswordMetadataV1 contains information about the passwords, but never the passwords themselves

func (PasswordMetadataV1) TableName

func (PasswordMetadataV1) TableName() string

type PlanDetailsV1

type PlanDetailsV1 struct {
	ID        string `gorm:"primary_key"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	ServiceID string
	Name      string
	Features  string `gorm:"type:text"`
}

PlanDetailsV1 is a table that was deprecated in favor of using Environment variables. It only remains for ORM migrations and the ability for existing users to export their plans.

func (PlanDetailsV1) TableName

func (PlanDetailsV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ProvisionRequestDetails

type ProvisionRequestDetails ProvisionRequestDetailsV3

ProvisionRequestDetails holds user-defined properties passed to a call to provision a service.

type ProvisionRequestDetailsV1

type ProvisionRequestDetailsV1 struct {
	gorm.Model

	ServiceInstanceID string `gorm:"uniqueIndex"`
	// is a json.Marshal of models.ProvisionDetails
	RequestDetails string
}

ProvisionRequestDetailsV1 holds user-defined properties passed to a call to provision a service.

func (ProvisionRequestDetailsV1) TableName

func (ProvisionRequestDetailsV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ProvisionRequestDetailsV2

type ProvisionRequestDetailsV2 struct {
	gorm.Model

	ServiceInstanceID string

	// is a json.Marshal of models.ProvisionDetails
	RequestDetails string `gorm:"type:text"`
}

ProvisionRequestDetailsV2 holds user-defined properties passed to a call to provision a service.

func (ProvisionRequestDetailsV2) TableName

func (ProvisionRequestDetailsV2) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ProvisionRequestDetailsV3

type ProvisionRequestDetailsV3 struct {
	gorm.Model

	ServiceInstanceID string

	// is a json.Marshal of models.ProvisionDetails
	RequestDetails []byte `gorm:"type:blob"`
}

ProvisionRequestDetailsV3 holds user-defined properties passed to a call to provision a service.

func (ProvisionRequestDetailsV3) TableName

func (ProvisionRequestDetailsV3) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ServiceBindingCredentials

type ServiceBindingCredentials ServiceBindingCredentialsV2

ServiceBindingCredentials holds credentials returned to the users after binding to a service.

type ServiceBindingCredentialsV1

type ServiceBindingCredentialsV1 struct {
	gorm.Model

	OtherDetails string `gorm:"type:text"`

	ServiceID         string
	ServiceInstanceID string
	BindingID         string
}

ServiceBindingCredentialsV1 holds credentials returned to the users after binding to a service.

func (ServiceBindingCredentialsV1) TableName

func (ServiceBindingCredentialsV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ServiceBindingCredentialsV2

type ServiceBindingCredentialsV2 struct {
	gorm.Model

	OtherDetails []byte `gorm:"type:blob"`

	ServiceID         string
	ServiceInstanceID string
	BindingID         string
}

ServiceBindingCredentialsV2 holds credentials returned to the users after binding to a service.

func (ServiceBindingCredentialsV2) TableName

func (ServiceBindingCredentialsV2) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ServiceInstanceDetails

type ServiceInstanceDetails ServiceInstanceDetailsV3

ServiceInstanceDetails holds information about provisioned services.

type ServiceInstanceDetailsV1

type ServiceInstanceDetailsV1 struct {
	ID        string `gorm:"primary_key;not null"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	Name         string
	Location     string
	URL          string
	OtherDetails string `gorm:"type:text"`

	ServiceID        string
	PlanID           string
	SpaceGUID        string
	OrganizationGUID string
}

ServiceInstanceDetailsV1 holds information about provisioned services.

func (ServiceInstanceDetailsV1) TableName

func (ServiceInstanceDetailsV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ServiceInstanceDetailsV2

type ServiceInstanceDetailsV2 struct {
	ID        string `gorm:"primary_key;type:varchar(255);not null"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	Name         string
	Location     string
	URL          string
	OtherDetails string `gorm:"type:text"`

	ServiceID        string
	PlanID           string
	SpaceGUID        string
	OrganizationGUID string

	// OperationType holds a string corresponding to what kind of operation
	// OperationID is referencing. The object is "locked" for editing if
	// an operation is pending.
	OperationType string

	// OperationID holds a string referencing an operation specific to a broker.
	// Operations in GCP all have a unique ID.
	// The OperationID will be cleared after a successful operation.
	// This string MAY be sent to users and MUST NOT leak confidential information.
	OperationID string `gorm:"type:varchar(1024)"`
}

ServiceInstanceDetailsV2 holds information about provisioned services.

func (ServiceInstanceDetailsV2) TableName

func (ServiceInstanceDetailsV2) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type ServiceInstanceDetailsV3

type ServiceInstanceDetailsV3 struct {
	ID        string `gorm:"primary_key;type:varchar(255);not null"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	Name         string
	Location     string
	URL          string
	OtherDetails []byte `gorm:"type:blob"`

	ServiceID        string
	PlanID           string
	SpaceGUID        string
	OrganizationGUID string

	// OperationType holds a string corresponding to what kind of operation
	// OperationID is referencing. The object is "locked" for editing if
	// an operation is pending.
	OperationType string

	// OperationID holds a string referencing an operation specific to a broker.
	// Operations in GCP all have a unique ID.
	// The OperationID will be cleared after a successful operation.
	// This string MAY be sent to users and MUST NOT leak confidential information.
	OperationID string `gorm:"type:varchar(1024)"`
}

ServiceInstanceDetailsV3 holds information about provisioned services.

func (ServiceInstanceDetailsV3) TableName

func (ServiceInstanceDetailsV3) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type TerraformDeployment

type TerraformDeployment TerraformDeploymentV3

TerraformDeployment holds Terraform state and plan information for resources that use that execution system.

type TerraformDeploymentV1

type TerraformDeploymentV1 struct {
	ID        string `gorm:"primary_key;type:varchar(1024)"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	// Workspace contains a JSON serialized version of the Terraform workspace.
	Workspace string `gorm:"type:mediumtext"`

	// LastOperationType describes the last operation being performed on the resource.
	LastOperationType string

	// LastOperationState holds one of the following strings "in progress", "succeeded", "failed".
	// These mirror the OSB API.
	LastOperationState string

	// LastOperationMessage is a description that can be passed back to the user.
	LastOperationMessage string `gorm:"type:text"`
}

TerraformDeploymentV1 describes the state of a Terraform resource deployment.

func (TerraformDeploymentV1) TableName

func (TerraformDeploymentV1) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type TerraformDeploymentV2

type TerraformDeploymentV2 struct {
	ID        string `gorm:"primary_key;type:varchar(1024)"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	// Workspace contains a JSON serialized version of the Terraform workspace.
	Workspace string `gorm:"type:mediumtext"`

	// LastOperationType describes the last operation being performed on the resource.
	LastOperationType string

	// LastOperationState holds one of the following strings "in progress", "succeeded", "failed".
	// These mirror the OSB API.
	LastOperationState string

	// LastOperationMessage is a description that can be passed back to the user.
	LastOperationMessage string `gorm:"type:text"`
}

TerraformDeploymentV2 expands the size of the Workspace column to handle deployments where the Terraform workspace is greater than 64K. (mediumtext allows for workspaces up to 16384K.)

func (TerraformDeploymentV2) TableName

func (TerraformDeploymentV2) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

type TerraformDeploymentV3

type TerraformDeploymentV3 struct {
	ID        string `gorm:"primary_key;type:varchar(1024)"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time

	// Workspace contains a JSON serialized version of the Terraform workspace.
	Workspace []byte `gorm:"type:mediumblob"`

	// LastOperationType describes the last operation being performed on the resource.
	LastOperationType string

	// LastOperationState holds one of the following strings "in progress", "succeeded", "failed".
	// These mirror the OSB API.
	LastOperationState string

	// LastOperationMessage is a description that can be passed back to the user.
	LastOperationMessage string `gorm:"type:text"`
}

TerraformDeploymentV3 converts workspace type from mediumtext to mediumblob

func (TerraformDeploymentV3) TableName

func (TerraformDeploymentV3) TableName() string

TableName returns a consistent table name for gorm so multiple structs from different versions of the database all operate on the same table.

Jump to

Keyboard shortcuts

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