catalogue

package
v0.0.0-...-1d1d6d3 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2018 License: Apache-2.0 Imports: 4 Imported by: 7

README

Catalogue

catalogue contains a partial implementation of the OpenBaton catalogue.

Documentation

Overview

Package catalogue contains a partial implementation of the OpenBaton catalogue.

Index

Constants

View Source
const (
	EventGranted  = Event("GRANTED")
	EventAllocate = Event("ALLOCATE")
	EventScale    = Event("SCALE")
	EventRelease  = Event("RELEASE")
	EventError    = Event("ERROR")

	EventInstantiate     = Event("INSTANTIATE")
	EventTerminate       = Event("TERMINATE")
	EventConfigure       = Event("CONFIGURE")
	EventStart           = Event("START")
	EventStop            = Event("STOP")
	EventHeal            = Event("HEAL")
	EventScaleOut        = Event("SCALE_OUT")
	EventScaleIn         = Event("SCALE_IN")
	EventScaleUp         = Event("SCALE_UP")
	EventScaleDown       = Event("SCALE_DOWN")
	EventUpdate          = Event("UPDATE")
	EventUpdateRollback  = Event("UPDATE_ROLLBACK")
	EventUpgrade         = Event("UPGRADE")
	EventUpgradeRollback = Event("UPGRADE_ROLLBACK")
	EventReset           = Event("RESET")
)
View Source
const (
	RedundancyActive  = RedundancyModel("ACTIVE")
	RedundancyStandby = RedundancyModel("STANDBY")
)
View Source
const (
	ResiliencyActiveStandbyStateless = ResiliencyLevel("ACTIVE_STANDBY_STATELESS")
	ResiliencyActiveStandbyStateful  = ResiliencyLevel("ACTIVE_STANDBY_STATEFUL")
)
View Source
const (
	ScaleOut          = ScalingActionType("SCALE_OUT")
	ScaleOutTo        = ScalingActionType("SCALE_OUT_TO")
	ScaleOutToFlavour = ScalingActionType("SCALE_OUT_TO_FLAVOUR")
	ScaleIn           = ScalingActionType("SCALE_IN")
	ScaleInTo         = ScalingActionType("SCALE_IN_TO")
	ScaleInToFlavour  = ScalingActionType("SCALE_IN_TO_FLAVOUR")
)
View Source
const (
	ScaleModeReactive   = ScalingMode("REACTIVE")
	ScaleModeProactive  = ScalingMode("PROACTIVE")
	ScaleModePredictive = ScalingMode("PREDICTIVE")
)
View Source
const (
	ScaleTypeSingle   = ScalingType("SINGLE")
	ScaleTypeVoted    = ScalingType("VOTED")
	ScaleTypeWeighted = ScalingType("WEIGHTED")
)
View Source
const (
	FaultRestart              = FaultManagementAction("RESTART")
	FaultReinstantiateService = FaultManagementAction("REINSTANTIATE_SERVICE")
	FaultHeal                 = FaultManagementAction("HEAL")
	FaultReinstantiate        = FaultManagementAction("REINSTANTIATE")
	FaultSwitchToStandby      = FaultManagementAction("SWITCH_TO_STANDBY")
	FaultSwitchToActive       = FaultManagementAction("SWITCH_TO_ACTIVE")
)
View Source
const (
	SelectorAtLeastOne = VNFCSelector("at_least_one")
	SelectorAll        = VNFCSelector("all")
)
View Source
const (
	SeverityIndeterminate = PerceivedSeverity("INDETERMINATE")
	SeverityWarning       = PerceivedSeverity("WARNING")
	SeverityMinor         = PerceivedSeverity("MINOR")
	SeverityMajor         = PerceivedSeverity("MAJOR")
	SeverityCritical      = PerceivedSeverity("CRITICAL")
)
View Source
const (
	LinkDown                           = LinkStatus("LINKDOWN")
	LinkNormalOperation                = LinkStatus("NORMALOPERATION")
	LinkDegradeOperation               = LinkStatus("DEGRADEDOPERATION")
	LinkOfflineThroughManagementAction = LinkStatus("OFFLINETHROUGHMANAGEMENTACTION")
)
View Source
const (
	// Error
	StatusError = Status("ERROR")

	// Null
	StatusNull = Status("NULL")

	//Instantiated - Not Configured
	StatusInitialized = Status("INITIALIZED")

	// Inactive - Configured
	StatusInactive = Status("INACTIVE")

	// Scaling
	StatusScaling = Status("SCALING")

	// Active - Configured
	StatusActive = Status("ACTIVE")

	// Terminated
	StatusTerminated = Status("TERMINATED")

	// Resuming
	StatusResuming = Status("RESUMING")
)
View Source
const (
	Active = ImageStatus("ACTIVE")
	Error  = ImageStatus("ERROR")
)
View Source
const (
	ActionGrantOperation         = Action("GRANT_OPERATION")
	ActionAllocateResources      = Action("ALLOCATE_RESOURCES")
	ActionScaleIn                = Action("SCALE_IN")
	ActionScaleOut               = Action("SCALE_OUT")
	ActionScaling                = Action("SCALING")
	ActionError                  = Action("ERROR")
	ActionReleaseResources       = Action("RELEASE_RESOURCES")
	ActionInstantiate            = Action("INSTANTIATE")
	ActionModify                 = Action("MODIFY")
	ActionHeal                   = Action("HEAL")
	ActionUpdateVNFR             = Action("UPDATEVNFR")
	ActionUpdate                 = Action("UPDATE")
	ActionScaled                 = Action("SCALED")
	ActionReleaseResourcesFinish = Action("RELEASE_RESOURCES_FINISH")
	ActionInstantiateFinish      = Action("INSTANTIATE_FINISH")
	ActionConfigure              = Action("CONFIGURE")
	ActionStart                  = Action("START")
	ActionStop                   = Action("STOP")
	ActionResume                 = Action("RESUME")

	NoActionSpecified = Action("")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action string

type AutoScalePolicy

type AutoScalePolicy struct {
	ID                 string            `json:"id,omitempty"`
	HbVersion          int               `json:"hbVersion,omitempty"`
	ProjectID          string            `json:"projectId"`
	Shared             bool              `json:"shared,omitempty"`
	Metadata           map[string]string `json:"metadata,omitempty"`
	Name               string            `json:"name"`
	Threshold          float64           `json:"threshold"`
	ComparisonOperator string            `json:"comparisonOperator"`
	Period             int               `json:"period"`
	Cooldown           int               `json:"cooldown"`
	Mode               ScalingMode       `json:"mode,omitempty"`
	Type               ScalingType       `json:"type,omitempty"`
	Alarms             []*ScalingAlarm   `json:"alarms,omitempty"`
	Actions            []*ScalingAction  `json:"actions,omitempty"`
}

type BaseEntity

type BaseEntity struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
}

type BaseImageInt

type BaseImageInt interface{}

type BaseNetwork

type BaseNetwork struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Name      string            `json:"name"`
	ExtID     string            `json:"extId"`
}

type BaseNetworkInt

type BaseNetworkInt interface{}

type BaseNfvImage

type BaseNfvImage struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	ExtID     string            `json:"extId"`
	Created   Date              `json:"created,omitempty"`
}

type BaseVimInstance

type BaseVimInstance struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Name      string            `json:"name"`
	AuthURL   string            `json:"authUrl"`
	Active    bool              `json:"active"`
	Location  *Location         `json:"location,omitempty"`
	Type      string            `json:"type"`
}

type Component

type Component interface{}

Component represents a generic component.

type Configuration

type Configuration struct {
	ID                      string                    `json:"id,omitempty"`
	HbVersion               int                       `json:"hbVersion,omitempty"`
	ProjectID               string                    `json:"projectId"`
	Shared                  bool                      `json:"shared,omitempty"`
	Metadata                map[string]string         `json:"metadata,omitempty"`
	ConfigurationParameters []*ConfigurationParameter `json:"configurationParameters"`
	Name                    string                    `json:"name"`
}

func (*Configuration) Append

func (cfg *Configuration) Append(p *ConfigurationParameter)

type ConfigurationParameter

type ConfigurationParameter struct {
	ID          string            `json:"id,omitempty"`
	HbVersion   int               `json:"hbVersion,omitempty"`
	ProjectID   string            `json:"projectId"`
	Shared      bool              `json:"shared,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
	Description string            `json:"description,omitempty"`
	ConfKey     string            `json:"confKey"`
	Value       string            `json:"value,omitempty"`
}

type ConnectionPoint

type ConnectionPoint struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Type      string            `json:"type"`
}

type ConstituentVDU

type ConstituentVDU struct {
	ID                string            `json:"id,omitempty"`
	HbVersion         int               `json:"hbVersion,omitempty"`
	ProjectID         string            `json:"projectId"`
	Shared            bool              `json:"shared,omitempty"`
	Metadata          map[string]string `json:"metadata,omitempty"`
	VDUReference      string            `json:"vdu_reference"`
	NumberOfInstances int               `json:"number_of_instances"`
	ConstituentVNFC   string            `json:"constituent_vnfc"`
}

ConstituentVDU as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type ConstituentVNF

type ConstituentVNF struct {
	ID                    string            `json:"id,omitempty"`
	HbVersion             int               `json:"hbVersion,omitempty"`
	ProjectID             string            `json:"projectId"`
	Shared                bool              `json:"shared,omitempty"`
	Metadata              map[string]string `json:"metadata,omitempty"`
	VnfReference          string            `json:"vnf_reference"`
	VnfFlavourIDReference string            `json:"vnf_flavour_id_reference"`
	RedundancyModel       RedundancyModel   `json:"redundancy_modelid"`
	Affinity              string            `json:"affinity"`
	Capability            string            `json:"capability"`
	NumberOfInstances     int               `json:"number_of_instancesid"`
	Version               int               `json:"version"`
}

ConstituentVNF as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Criteria

type Criteria struct {
	ID                 string       `json:"id,omitempty"`
	Version            int          `json:"version"`
	Name               string       `json:"name"`
	ParameterRef       string       `json:"parameter_ref"`
	Function           string       `json:"function"`
	VNFCSelector       VNFCSelector `json:"vnfc_selector"`
	ComparisonOperator string       `json:"comparison_operator"`
	Threshold          string       `json:"threshold"`
}

type Date

type Date string

func NewDate

func NewDate() Date

func NewDateWithTime

func NewDateWithTime(t time.Time) Date

func UnixDate

func UnixDate(timestamp int64) Date

func (Date) Time

func (d Date) Time() time.Time

type DependencyParameters

type DependencyParameters struct {
	ID         string            `json:"id,omitempty"`
	HbVersion  int               `json:"hbVersion,omitempty"`
	ProjectID  string            `json:"projectId"`
	Shared     bool              `json:"shared,omitempty"`
	Metadata   map[string]string `json:"metadata,omitempty"`
	Parameters map[string]string `json:"parameters"`
}

type DeploymentFlavour

type DeploymentFlavour struct {
	ID         string            `json:"id,omitempty"`
	HbVersion  int               `json:"hbVersion,omitempty"`
	ProjectID  string            `json:"projectId"`
	Shared     bool              `json:"shared,omitempty"`
	Metadata   map[string]string `json:"metadata,omitempty"`
	FlavourKey string            `json:"flavour_key"`
	ExtID      string            `json:"extId"`
	RAM        int               `json:"ram"`
	Disk       int               `json:"disk"`
	VCPUs      int               `json:"vcpus"`
}

DeploymentFlavour as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type DockerImage

type DockerImage struct {
	BaseNfvImage

	Tags []string `json:"tags"`
}

type DockerNetwork

type DockerNetwork struct {
	BaseNetwork

	Scope   string `json:"scope"`
	Driver  string `json:"driver"`
	Gateway string `json:"gateway"`
	Subnet  string `json:"subnet"`
}

type DockerVimInstance

type DockerVimInstance struct {
	BaseVimInstance

	Ca        string          `json:"ca"`
	Cert      string          `json:"cert"`
	DockerKey string          `json:"dockerKey"`
	Images    []DockerImage   `json:"images"`
	Networks  []DockerNetwork `json:"networks"`
}

type Endpoint

type Endpoint struct {
	ID           string            `json:"id,omitempty"`
	HbVersion    int               `json:"hbVersion,omitempty"`
	ProjectID    string            `json:"projectId"`
	Shared       bool              `json:"shared,omitempty"`
	Metadata     map[string]string `json:"metadata,omitempty"`
	Type         string            `json:"type"`
	EndpointType string            `json:"endpointType"`
	Endpoint     string            `json:"endpoint"`
	Description  string            `json:"description"`
	Enabled      bool              `json:"enabled"`
	Active       bool              `json:"active"`
}

type Event

type Event string

type FaultManagementAction

type FaultManagementAction string

type FaultManagementPolicy

type FaultManagementPolicy struct {
	ID       string            `json:"id,omitempty"`
	Name     string            `json:"name"`
	VNFAlarm bool              `json:"VNFAlarm"`
	Period   int               `json:"period"`
	Severity PerceivedSeverity `json:"severity"`
	Criteria []*Criteria       `json:"criteria"`
	Version  int               `json:"version"`
}

type HighAvailability

type HighAvailability struct {
	ID               string            `json:"id,omitempty"`
	HbVersion        int               `json:"hbVersion,omitempty"`
	ProjectID        string            `json:"projectId"`
	Shared           bool              `json:"shared,omitempty"`
	Metadata         map[string]string `json:"metadata,omitempty"`
	ResiliencyLevel  ResiliencyLevel   `json:"resiliencyLevel"`
	GeoRedundancy    bool              `json:"geoRedundancy"`
	RedundancyScheme string            `json:"redundancyScheme"`
}

type HistoryLifecycleEvent

type HistoryLifecycleEvent struct {
	ID          string            `json:"id,omitempty"`
	HbVersion   int               `json:"hbVersion,omitempty"`
	ProjectID   string            `json:"projectId"`
	Shared      bool              `json:"shared,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
	Event       string            `json:"event"`
	Description string            `json:"description"`
	ExecutedAt  string            `json:"executedAt"`
}

type IP

type IP struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	NetName   string            `json:"netName"`
	IP        string            `json:"ip"`
}

type ImageStatus

type ImageStatus string
type InternalVirtualLink struct {
	ID               string            `json:"id,omitempty"`
	HbVersion        int               `json:"hbVersion,omitempty"`
	ProjectID        string            `json:"projectId"`
	Shared           bool              `json:"shared,omitempty"`
	Metadata         map[string]string `json:"metadata,omitempty"`
	ExtID            string            `json:"extId"`
	RootRequirement  string            `json:"root_requirement"`
	LeafRequirement  string            `json:"leaf_requirement"`
	QoS              []string          `json:"qos"`
	TestAccess       []string          `json:"test_access"`
	ConnectivityType []string          `json:"connectivity_type"`
	Name             string            `json:"name"`

	ConnectionPointsReferences []string `json:"connection_points_references"`
}

An extended Virtual Link based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Key

type Key struct {
	ID          string            `json:"id,omitempty"`
	HbVersion   int               `json:"hbVersion,omitempty"`
	ProjectID   string            `json:"projectId"`
	Shared      bool              `json:"shared,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
	Name        string            `json:"name"`
	PublicKey   string            `json:"publicKey"`
	Fingerprint string            `json:"fingerprint"`
}

type KubernatesNamespeces

type KubernatesNamespeces struct {
	Name string `json:"name"`
}

type KubernetesVimInstance

type KubernetesVimInstance struct {
	BaseVimInstance
	ConfigFilePath string                  `json:"configFilePath"`
	Namespaces     []*KubernatesNamespeces `json:"networks"`
	Images         []string                `json:"images"`
}

type LifecycleEvent

type LifecycleEvent struct {
	ID              string            `json:"id,omitempty"`
	HbVersion       int               `json:"hbVersion,omitempty"`
	ProjectID       string            `json:"projectId"`
	Shared          bool              `json:"shared,omitempty"`
	Metadata        map[string]string `json:"metadata,omitempty"`
	Event           Event             `json:"event"`
	LifecycleEvents []string          `json:"lifecycle_events"`
}

LifecycleEvent as specified in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type LifecycleEvents

type LifecycleEvents []*LifecycleEvent

LifecycleEvents represents a list of LifecycleEvent.

func (LifecycleEvents) Filter

func (les LifecycleEvents) Filter(event Event) LifecycleEvents

Filter returns only the LifecycleEvent having the given Event from the list of events.

type LinkStatus

type LinkStatus string

type Location

type Location struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Name      string            `json:"name,omitempty"`
	Latitude  string            `json:"latitude,omitempty"`
	Longitude string            `json:"longitude,omitempty"`
}

type ManagerCredentials

type ManagerCredentials struct {
	RabbitUsername string `json:"rabbitUsername"`
	RabbitPassword string `json:"rabbitPassword"`
}

type ManagerUnregisterMessage

type ManagerUnregisterMessage struct {
	Type     string `json:"type"`
	Action   string `json:"action"`
	Username string `json:"username"`
	Password string `json:"password"`
}

type NFVEntityDescriptor

type NFVEntityDescriptor struct {
	ID                        string                          `json:"id,omitempty"`
	HbVersion                 int                             `json:"hbVersion,omitempty"`
	ProjectID                 string                          `json:"projectId"`
	Shared                    bool                            `json:"shared,omitempty"`
	Metadata                  map[string]string               `json:"metadata,omitempty"`
	Name                      string                          `json:"name"`
	Vendor                    string                          `json:"vendor"`
	Version                   string                          `json:"version"`
	VNFFGDs                   []*VNFForwardingGraphDescriptor `json:"vnffgd"`
	VLDs                      []*VirtualLinkDescriptor        `json:"vld"`
	MonitoringParameters      []string                        `json:"monitoring_parameter"`
	ServiceDeploymentFlavours []*DeploymentFlavour            `json:"service_deployment_flavour"`
	AutoScalePolicies         []*AutoScalePolicy              `json:"auto_scale_policy"`
	ConnectionPoints          []*ConnectionPoint              `json:"connection_point"`
}

type NetworkForwardingPath

type NetworkForwardingPath struct {
	ID         string            `json:"id,omitempty"`
	HbVersion  int               `json:"hbVersion,omitempty"`
	ProjectID  string            `json:"projectId"`
	Shared     bool              `json:"shared,omitempty"`
	Metadata   map[string]string `json:"metadata,omitempty"`
	Policy     *Policy           `json:"policy,omitempty"`
	Connection map[string]string `json:"connection,omitempty"`
}

type NetworkServiceDeploymentFlavour

type NetworkServiceDeploymentFlavour struct {
	DeploymentFlavour
	Vendor                string                      `json:"vendor"`
	Version               string                      `json:"version"`
	NumberOfEndpoints     int                         `json:"number_of_endpoints"`
	ParentNs              string                      `json:"parent_ns"`
	VNFFGRReference       []*VNFForwardingGraphRecord `json:"vnffgr_reference"`
	DescriptorReference   string                      `json:"descriptor_reference"`
	VimID                 string                      `json:"vim_id"`
	AllocatedCapacity     []string                    `json:"allocated_capacity"`
	Status                LinkStatus                  `json:"status"`
	Notification          []string                    `json:"notification"`
	LifecycleEventHistory LifecycleEvents             `json:"lifecycle_event_history"`
	AuditLog              []string                    `json:"audit_log"`
	Connection            []string                    `json:"connection"`
}

NetworkServiceDeploymentFlavour as specified in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type NetworkServiceRecord

type NetworkServiceRecord struct {
	ID                       string                           `json:"id,omitempty"`
	HbVersion                int                              `json:"hbVersion,omitempty"`
	ProjectID                string                           `json:"projectId"`
	Shared                   bool                             `json:"shared,omitempty"`
	Metadata                 map[string]string                `json:"metadata,omitempty"`
	AutoScalePolicy          []*AutoScalePolicy               `json:"auto_scale_policy"`
	ConnectionPoint          []*ConnectionPoint               `json:"connection_point"`
	MonitoringParameter      []string                         `json:"monitoring_parameterid"`
	ServiceDeploymentFlavour NetworkServiceDeploymentFlavour  `json:"service_deployment_flavour"`
	Vendor                   string                           `json:"vendor"`
	Task                     string                           `json:"task"`
	Version                  string                           `json:"version"`
	VLR                      []*VirtualLinkRecord             `json:"vlr"`
	VNFR                     []*VirtualNetworkFunctionRecord  `json:"vnfr"`
	VNFDependency            []*VNFRecordDependency           `json:"vnf_dependency"`
	LifecycleEvents          LifecycleEvents                  `json:"lifecycle_event"`
	VNFFGR                   []*VNFForwardingGraphRecord      `json:"vnffgr"`
	PNFR                     []*PhysicalNetworkFunctionRecord `json:"pnfr"`
	FaultManagementPolicy    []*FaultManagementPolicy         `json:"faultManagementPolicy"`
	DescriptorReference      string                           `json:"descriptor_reference"`
	ResourceReservation      string                           `json:"resource_reservation"`
	RuntimePolicyInfo        string                           `json:"runtime_policy_info"`
	Status                   Status                           `json:"status"`
	Notification             string                           `json:"notification"`
	LifecycleEventHistory    LifecycleEvents                  `json:"lifecycle_event_history"`
	AuditLog                 string                           `json:"audit_log"`
	CreatedAt                string                           `json:"createdAt"`
	KeyNames                 []string                         `json:"keyNames"`
	Name                     string                           `json:"name"`
}

NetworkServiceRecord as defined by ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type OpenstackVimInstance

type OpenstackVimInstance struct {
	BaseVimInstance

	Username string `json:"username"`
	Password string `json:"password"`
	KeyPair  string `json:"keyPair"`
	Tenant   string `json:"tenant"`
}

type PerceivedSeverity

type PerceivedSeverity string

type PhysicalNetworkFunctionRecord

type PhysicalNetworkFunctionRecord struct {
	ID                   string                      `json:"id,omitempty"`
	HbVersion            int                         `json:"hbVersion,omitempty"`
	ProjectID            string                      `json:"projectId"`
	Shared               bool                        `json:"shared,omitempty"`
	Metadata             map[string]string           `json:"metadata,omitempty"`
	Vendor               string                      `json:"vendor"`
	Version              string                      `json:"version"`
	Description          string                      `json:"description"`
	ConnectionPoint      []*ConnectionPoint          `json:"connection_point"`
	ParentNSID           string                      `json:"parent_ns_id"`
	DescriptorReference  string                      `json:"descriptor_reference"`
	VNFFGR               []*VNFForwardingGraphRecord `json:"vnffgr"`
	OamReference         string                      `json:"oam_reference"`
	ConnectedVirtualLink []*VirtualLinkRecord        `json:"connected_virtual_link"`
	PNFAddress           []string                    `json:"pnf_address"`
}

PhysicalNetworkFunctionRecord based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type PluginRegisterMessage

type PluginRegisterMessage struct {
	Type   string `json:"type"`
	Action string `json:"action"`
}

type Policy

type Policy struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
}

type Quota

type Quota struct {
	ID          string            `json:"id,omitempty"`
	HbVersion   int               `json:"hbVersion,omitempty"`
	ProjectID   string            `json:"projectId"`
	Shared      bool              `json:"shared,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
	Tenant      string            `json:"tenant"`
	Cores       int               `json:"cores"`
	FloatingIPs int               `json:"floatingIps"`
	Instances   int               `json:"instances"`
	KeyPairs    int               `json:"keyPairs"`
	RAM         int               `json:"ram"`
}

type RedundancyModel

type RedundancyModel string

type RequiresParameters

type RequiresParameters struct {
	ID         string            `json:"id,omitempty"`
	HbVersion  int               `json:"hbVersion,omitempty"`
	ProjectID  string            `json:"projectId"`
	Shared     bool              `json:"shared,omitempty"`
	Metadata   map[string]string `json:"metadata,omitempty"`
	Parameters []string          `json:"parameters"`
}

type ResiliencyLevel

type ResiliencyLevel string

type ScalingAction

type ScalingAction struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Type      ScalingActionType `json:"type"`
	Value     string            `json:"value,omitempty"`
	Target    string            `json:"target,omitempty"`
}

type ScalingActionType

type ScalingActionType string

type ScalingAlarm

type ScalingAlarm struct {
	ID                 string            `json:"id,omitempty"`
	HbVersion          int               `json:"hbVersion,omitempty"`
	ProjectID          string            `json:"projectId"`
	Shared             bool              `json:"shared,omitempty"`
	Metadata           map[string]string `json:"metadata,omitempty"`
	Metric             string            `json:"metric"`
	Statistic          string            `json:"statistic"`
	ComparisonOperator string            `json:"comparisonOperator"`
	Threshold          float64           `json:"threshold"`
	Weight             float64           `json:"weight"`
}

type ScalingMode

type ScalingMode string

type ScalingType

type ScalingType string

type Script

type Script struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Name      string            `json:"name"`
	Payload   []byte            `json:"-"`
}

type Security

type Security struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
}

type Server

type Server struct {
	ID                 string              `json:"id,omitempty"`
	HbVersion          int                 `json:"hbVersion,omitempty"`
	ProjectID          string              `json:"projectId"`
	Shared             bool                `json:"shared,omitempty"`
	Metadata           map[string]string   `json:"metadata,omitempty"`
	Name               string              `json:"name"`
	Image              BaseImageInt        `json:"image"`
	Flavour            *DeploymentFlavour  `json:"flavor"`
	Status             string              `json:"status"`
	ExtendedStatus     string              `json:"extendedStatus"`
	ExtID              string              `json:"extId"`
	IPs                map[string][]string `json:"ips"`
	FloatingIPs        map[string]string   `json:"floatingIps"`
	Created            Date                `json:"created,omitempty"`
	Updated            Date                `json:"updated,omitempty"`
	HostName           string              `json:"hostName"`
	HypervisorHostName string              `json:"hypervisorHostName"`
	InstanceName       string              `json:"instanceName"`
}

type Status

type Status string

type Subnet

type Subnet struct {
	ID        string            `json:"id,omitempty"`
	HbVersion int               `json:"hbVersion,omitempty"`
	ProjectID string            `json:"projectId"`
	Shared    bool              `json:"shared,omitempty"`
	Metadata  map[string]string `json:"metadata,omitempty"`
	Name      string            `json:"name"`
	ExtID     string            `json:"extId"`
	NetworkID string            `json:"networkId"`
	CIDR      string            `json:"cidr"`
	GatewayIP string            `json:"gatewayIp"`
}

type VDUDependency

type VDUDependency struct {
	ID        string                 `json:"id,omitempty"`
	HbVersion int                    `json:"hbVersion,omitempty"`
	ProjectID string                 `json:"projectId"`
	Shared    bool                   `json:"shared,omitempty"`
	Metadata  map[string]string      `json:"metadata,omitempty"`
	Source    *VirtualDeploymentUnit `json:"source,omitempty"`
	Target    *VirtualDeploymentUnit `json:"target,omitempty"`
}

VDUDepencency as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VNFCDependencyParameters

type VNFCDependencyParameters struct {
	ID         string                           `json:"id,omitempty"`
	HbVersion  int                              `json:"hbVersion,omitempty"`
	ProjectID  string                           `json:"projectId"`
	Shared     bool                             `json:"shared,omitempty"`
	Metadata   map[string]string                `json:"metadata,omitempty"`
	VNFCID     string                           `json:"vnfcId"`
	Parameters map[string]*DependencyParameters `json:"parameters"`
}

type VNFCInstance

type VNFCInstance struct {
	ID               string                 `json:"id,omitempty"`
	HbVersion        int                    `json:"hbVersion,omitempty"`
	ProjectID        string                 `json:"projectId"`
	Shared           bool                   `json:"shared,omitempty"`
	Metadata         map[string]string      `json:"metadata,omitempty"`
	ConnectionPoints []*VNFDConnectionPoint `json:"connection_point"`
	VIMID            string                 `json:"vim_id"`
	VCID             string                 `json:"vc_id"`
	Hostname         string                 `json:"hostname"`
	State            string                 `json:"state"`
	VNFComponent     *VNFComponent          `json:"vnfComponent,omitempty"`
	FloatingIPs      []*IP                  `json:"floatingIps"`
	IPs              []*IP                  `json:"ips"`
}

type VNFCSelector

type VNFCSelector string

type VNFComponent

type VNFComponent struct {
	ID               string                 `json:"id,omitempty"`
	HbVersion        int                    `json:"hbVersion,omitempty"`
	ProjectID        string                 `json:"projectId"`
	Shared           bool                   `json:"shared,omitempty"`
	Metadata         map[string]string      `json:"metadata,omitempty"`
	ConnectionPoints []*VNFDConnectionPoint `json:"connection_point"`
}

A VNFComponent as defined by ETSI GS NFV-MAN 001 V1.1.1

type VNFDConnectionPoint

type VNFDConnectionPoint struct {
	ID                     string            `json:"id,omitempty"`
	HbVersion              int               `json:"hbVersion,omitempty"`
	ProjectID              string            `json:"projectId"`
	Shared                 bool              `json:"shared,omitempty"`
	Metadata               map[string]string `json:"metadata,omitempty"`
	Type                   string            `json:"type"`
	FixedIp                string            `json:"fixedIp"`
	ChosenPool             string            `json:"chosenPool"`
	VirtualLinkReference   string            `json:"virtual_link_reference"`
	VirtualLinkReferenceId string            `json:"virtual_link_reference_id"`
	FloatingIP             string            `json:"floatingIp"`
	InterfaceID            int               `json:"interfaceId"`
}

Virtual Network Function Descriptor Connection Point as defined by ETSI GS NFV-MAN 001 V1.1.1

type VNFDeploymentFlavour

type VNFDeploymentFlavour struct {
	DeploymentFlavour
	DfConstraint   []string          `json:"df_constraint"`
	ConstituentVDU []*ConstituentVDU `json:"constituent_vdu"`
}

type VNFForwardingGraphDescriptor

type VNFForwardingGraphDescriptor struct {
	ID                     string                   `json:"id,omitempty"`
	HbVersion              int                      `json:"hbVersion,omitempty"`
	ProjectID              string                   `json:"projectId"`
	Shared                 bool                     `json:"shared,omitempty"`
	Metadata               map[string]string        `json:"metadata,omitempty"`
	Vendor                 string                   `json:"vendor"`
	Version                string                   `json:"version"`
	NumberOfEndpoints      int                      `json:"number_of_endpoints"`
	NumberOfVirtualLinks   int                      `json:"number_of_virtual_links"`
	DependentVirtualLinks  []*VirtualLinkDescriptor `json:"dependent_virtual_link"`
	NetworkForwardingPaths []*NetworkForwardingPath `json:"network_forwarding_path"`
	ConnectionPoints       []*ConnectionPoint       `json:"connection_point"`
	DescriptorVersion      string                   `json:"descriptor_version"`
	ConstituentVnfs        []*ConstituentVNF        `json:"constituent_vnfs"`
	VnffgdSecurity         *Security                `json:"vnffgd_security,omitempty"`
}

VNFForwardingGraphDescriptor as defined by ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VNFForwardingGraphRecord

type VNFForwardingGraphRecord struct {
	ID                    string                          `json:"id,omitempty"`
	HbVersion             int                             `json:"hbVersion,omitempty"`
	ProjectID             string                          `json:"projectId"`
	Shared                bool                            `json:"shared,omitempty"`
	Metadata              map[string]string               `json:"metadata,omitempty"`
	DescriptorReference   *VNFForwardingGraphDescriptor   `json:"descriptor_reference"`
	ParentNS              *NetworkServiceRecord           `json:"parent_ns"`
	DependentVirtualLink  []*VirtualLinkRecord            `json:"dependent_virtual_link"`
	Status                *Status                         `json:"status,omitempty"`
	Notification          []string                        `json:"notification"`
	LifecycleEventHistory LifecycleEvents                 `json:"lifecycle_event_history"`
	AuditLog              string                          `json:"audit_log"`
	NetworkForwardingPath *NetworkForwardingPath          `json:"network_forwarding_path,omitempty"`
	ConnectionPoint       []*VNFDConnectionPoint          `json:"connection_point"`
	MemberVNFs            []*VirtualNetworkFunctionRecord `json:"member_vnfs"`
	Vendor                string                          `json:"vendor"`
	Version               string                          `json:"version"`
	NumberOfEndpoints     int                             `json:"number_of_endpoints"`
	NumberOfVNFs          int                             `json:"number_of_vnfs"`
	NumberOfPNFs          int                             `json:"number_of_pnfs"`
	NumberOfVirtualLinks  int                             `json:"number_of_virtual_links"`
}

Based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VNFPackage

type VNFPackage struct {
	ID          string            `json:"id,omitempty"`
	HbVersion   int               `json:"hbVersion,omitempty"`
	ProjectID   string            `json:"projectId"`
	Shared      bool              `json:"shared,omitempty"`
	Metadata    map[string]string `json:"metadata,omitempty"`
	Name        string            `json:"name"`
	NFVOVersion string            `json:"nfvo_version"`
	VIMTypes    []string          `json:"vimTypes"`
	ImageLink   string            `json:"imageLink,omitempty"`
	ScriptsLink string            `json:"scriptsLink,omitempty"`
	Image       *BaseNfvImage     `json:"image,omitempty"`
	Scripts     []*Script         `json:"scripts"`
}

type VNFRecordDependency

type VNFRecordDependency struct {
	ID             string                               `json:"id,omitempty"`
	HbVersion      int                                  `json:"hbVersion,omitempty"`
	ProjectID      string                               `json:"projectId"`
	Shared         bool                                 `json:"shared,omitempty"`
	Metadata       map[string]string                    `json:"metadata,omitempty"`
	Target         string                               `json:"target"`
	Parameters     map[string]*DependencyParameters     `json:"parameters"`
	VNFCParameters map[string]*VNFCDependencyParameters `json:"vnfcParameters"`
	IDType         map[string]string                    `json:"idType"`
}

type VRFaultManagementPolicy

type VRFaultManagementPolicy struct {
	FaultManagementPolicy

	Action FaultManagementAction `json:"action"`
}

type VirtualDeploymentUnit

type VirtualDeploymentUnit struct {
	ID                              string                     `json:"id,omitempty"`
	HbVersion                       int                        `json:"hbVersion,omitempty"`
	ProjectID                       string                     `json:"projectId"`
	Shared                          bool                       `json:"shared,omitempty"`
	Metadata                        map[string]string          `json:"metadata,omitempty"`
	Name                            string                     `json:"name"`
	VMImages                        []string                   `json:"vm_image"`
	ParentVDU                       string                     `json:"parent_vdu"`
	ComputationRequirement          string                     `json:"computation_requirement"`
	VirtualMemoryResourceElement    string                     `json:"virtual_memory_resource_element"`
	VirtualNetworkBandwidthResource string                     `json:"virtual_network_bandwidth_resource"`
	LifecycleEvents                 LifecycleEvents            `json:"lifecycle_event"`
	VduConstraint                   string                     `json:"vdu_constraint"`
	HighAvailability                *HighAvailability          `json:"high_availability,omitempty"`
	FaultManagementPolicies         []*VRFaultManagementPolicy `json:"fault_management_policy,omitempty"`
	ScaleInOut                      int                        `json:"scale_in_out"`
	VNFCs                           []*VNFComponent            `json:"vnfc"`
	VNFCInstances                   []*VNFCInstance            `json:"vnfc_instance"`
	MonitoringParameters            []string                   `json:"monitoring_parameter"`
	Hostname                        string                     `json:"hostname"`
	VIMInstanceNames                []string                   `json:"vimInstanceName"`
}
type VirtualLink struct {
	ID               string            `json:"id,omitempty"`
	HbVersion        int               `json:"hbVersion,omitempty"`
	ProjectID        string            `json:"projectId"`
	Shared           bool              `json:"shared,omitempty"`
	Metadata         map[string]string `json:"metadata,omitempty"`
	ExtID            string            `json:"extId"`
	RootRequirement  string            `json:"root_requirement"`
	LeafRequirement  string            `json:"leaf_requirement"`
	QoS              []string          `json:"qos"`
	TestAccess       []string          `json:"test_access"`
	ConnectivityType []string          `json:"connectivity_type"`
	Name             string            `json:"name"`
}

VirtualLink (abstract) based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12) The VLD describes the basic topology of the connectivity (e.g. E-LAN, E-Line, E-Tree) between one or more VNFs connected to this VL and other required parameters (e.g. bandwidth and QoS class). The VLD connection parameters are expected to have similar attributes to those used on the ports on VNFs in ETSI GS NFV-SWA 001 [i.8]. Therefore a set of VLs in a Network Service can be mapped to a Network Connectivity Topology (NCT) as defined in ETSI GS NFV-SWA 001 [i.8].

type VirtualLinkDescriptor

type VirtualLinkDescriptor struct {
	ID                string            `json:"id,omitempty"`
	HbVersion         int               `json:"hbVersion,omitempty"`
	ProjectID         string            `json:"projectId"`
	Shared            bool              `json:"shared,omitempty"`
	Metadata          map[string]string `json:"metadata,omitempty"`
	ExtID             string            `json:"extId"`
	RootRequirement   string            `json:"root_requirement"`
	LeafRequirement   string            `json:"leaf_requirement"`
	QoS               []string          `json:"qos"`
	TestAccess        []string          `json:"test_access"`
	ConnectivityType  []string          `json:"connectivity_type"`
	Name              string            `json:"name"`
	Vendor            string            `json:"vendor"`
	DescriptorVersion string            `json:"descriptor_version"`
	NumberOfEndpoints int               `json:"number_of_endpoints"`
	Connections       []string          `json:"connection"`
	VLDSecurity       *Security         `json:"vld_security,omitempty"`
}

VirtualLinkDescriptor as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VirtualLinkRecord

type VirtualLinkRecord struct {
	ID                    string                      `json:"id,omitempty"`
	HbVersion             int                         `json:"hbVersion,omitempty"`
	ProjectID             string                      `json:"projectId"`
	Shared                bool                        `json:"shared,omitempty"`
	Metadata              map[string]string           `json:"metadata,omitempty"`
	ExtID                 string                      `json:"extId"`
	RootRequirement       string                      `json:"root_requirement"`
	LeafRequirement       string                      `json:"leaf_requirement"`
	QoS                   []string                    `json:"qos"`
	TestAccess            []string                    `json:"test_access"`
	ConnectivityType      []string                    `json:"connectivity_type"`
	Name                  string                      `json:"name"`
	Vendor                string                      `json:"vendor"`
	Version               string                      `json:"version"`
	NumberOfEndpoints     int                         `json:"number_of_endpoints"`
	ParentNs              string                      `json:"parent_ns"`
	VNFFGRReference       []*VNFForwardingGraphRecord `json:"vnffgr_reference"`
	DescriptorReference   string                      `json:"descriptor_reference"`
	VimID                 string                      `json:"vim_id"`
	AllocatedCapacity     []string                    `json:"allocated_capacity"`
	Status                LinkStatus                  `json:"status"`
	Notification          []string                    `json:"notification"`
	LifecycleEventHistory LifecycleEvents             `json:"lifecycle_event_history"`
	AuditLog              []string                    `json:"audit_log"`
	Connection            []string                    `json:"connection"`
}

type VirtualNetworkFunctionDescriptor

type VirtualNetworkFunctionDescriptor struct {
	ID                        string                          `json:"id,omitempty"`
	HbVersion                 int                             `json:"hbVersion,omitempty"`
	ProjectID                 string                          `json:"projectId"`
	Shared                    bool                            `json:"shared,omitempty"`
	Metadata                  map[string]string               `json:"metadata,omitempty"`
	Name                      string                          `json:"name"`
	Vendor                    string                          `json:"vendor"`
	Version                   string                          `json:"version"`
	VNFFGDs                   []*VNFForwardingGraphDescriptor `json:"vnffgd"`
	VLDs                      []*VirtualLinkDescriptor        `json:"vld"`
	MonitoringParameters      []string                        `json:"monitoring_parameter"`
	ServiceDeploymentFlavours []*DeploymentFlavour            `json:"service_deployment_flavour"`
	AutoScalePolicies         []*AutoScalePolicy              `json:"auto_scale_policy"`
	ConnectionPoints          []*ConnectionPoint              `json:"connection_point"`
	LifecycleEvents           LifecycleEvents                 `json:"lifecycle_event"`
	Configurations            *Configuration                  `json:"configurations,omitempty"`
	VDUs                      []*VirtualDeploymentUnit        `json:"vdu"`
	VirtualLinks              []*InternalVirtualLink          `json:"virtual_link"`
	VDUDependencies           []*VDUDependency                `json:"vdu_dependency"`
	DeploymentFlavours        []*VNFDeploymentFlavour         `json:"deployment_flavour"`
	ManifestFile              string                          `json:"manifest_file"`
	ManifestFileSecurity      []*Security                     `json:"manifest_file_security"`
	Type                      string                          `json:"type"`
	Endpoint                  string                          `json:"endpoint"`
	VNFPackageLocation        string                          `json:"vnfPackageLocation"`
	Requires                  map[string]*RequiresParameters  `json:"requires,omitempty"`
	Provides                  []string                        `json:"provides,omitempty"`
	CyclicDependency          bool                            `json:"cyclicDependency"`
	VNFDConnectionPoints      []*VNFDConnectionPoint          `json:"VNFDConnection_point"`
}

VirtualNetworkFunctionDescriptor as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VirtualNetworkFunctionRecord

type VirtualNetworkFunctionRecord struct {
	ID                            string                   `json:"id,omitempty"`
	HbVersion                     int                      `json:"hbVersion,omitempty"`
	ProjectID                     string                   `json:"projectId"`
	Shared                        bool                     `json:"shared,omitempty"`
	Metadata                      map[string]string        `json:"metadata,omitempty"`
	AutoScalePolicies             []*AutoScalePolicy       `json:"auto_scale_policy"`
	ConnectionPoints              []*ConnectionPoint       `json:"connection_point"`
	DeploymentFlavourKey          string                   `json:"deployment_flavour_key"`
	Configurations                *Configuration           `json:"configurations,omitempty"`
	LifecycleEvents               LifecycleEvents          `json:"lifecycle_event"`
	LifecycleEventHistory         []*HistoryLifecycleEvent `json:"lifecycle_event_history"`
	Localization                  string                   `json:"localization"`
	MonitoringParameters          []string                 `json:"monitoring_parameter"`
	VDUs                          []*VirtualDeploymentUnit `json:"vdu"`
	Vendor                        string                   `json:"vendor"`
	Version                       string                   `json:"version"`
	VirtualLinks                  []*InternalVirtualLink   `json:"virtual_link"`
	ParentNsID                    string                   `json:"parent_ns_id"`
	DescriptorReference           string                   `json:"descriptor_reference"`
	VNFMID                        string                   `json:"vnfm_id"`
	ConnectedExternalVirtualLinks []*VirtualLinkRecord     `json:"connected_external_virtual_link"`
	VNFAddresses                  []string                 `json:"vnf_address"`
	Status                        Status                   `json:"status"`
	Notifications                 []string                 `json:"notification"`
	AuditLog                      string                   `json:"audit_log"`
	RuntimePolicyInfos            []string                 `json:"runtime_policy_info"`
	Name                          string                   `json:"name"`
	Type                          string                   `json:"type"`
	Endpoint                      string                   `json:"endpoint"`
	Task                          string                   `json:"task"`
	Requires                      *Configuration           `json:"requires,omitempty"`
	Provides                      *Configuration           `json:"provides,omitempty"`
	CyclicDependency              bool                     `json:"cyclic_dependency"`
	PackageID                     string                   `json:"packageId"`
}

A VirtualNetworkFunctionRecord as described by ETSI GS NFV-MAN 001 V1.1.1

func NewVNFR

func NewVNFR(
	vnfd *VirtualNetworkFunctionDescriptor,
	flavourKey string,
	vlrs []*VirtualLinkRecord,
	extension map[string]string,
	vimInstances map[string][]interface{}) (*VirtualNetworkFunctionRecord, error)

NewVNFR returns a new VNFR. TODO: CHECK THIS FUNCTION! Errors here may cause weird, unpredictable bugs.

func (*VirtualNetworkFunctionRecord) FindComponentInstance

func (vnfr *VirtualNetworkFunctionRecord) FindComponentInstance(component *VNFComponent) *VNFCInstance

FindComponentInstance searches an instance of a given VNFComponent inside the VirtualDeploymentUnit of the current VirtualNetworkFunctionRecord.

func (*VirtualNetworkFunctionRecord) String

func (vnfr *VirtualNetworkFunctionRecord) String() string

type VnfmManagerUnregisterMessage

type VnfmManagerUnregisterMessage struct {
	Type     string    `json:"type"`
	Action   string    `json:"action"`
	Username string    `json:"username"`
	Password string    `json:"password"`
	Endpoint *Endpoint `json:"vnfmManagerEndpoint"`
}

type VnfmRegisterMessage

type VnfmRegisterMessage struct {
	Type     string    `json:"type"`
	Action   string    `json:"action"`
	Endpoint *Endpoint `json:"vnfmManagerEndpoint"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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