entity

package
v0.0.0-...-a2cb0ab Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

package entity defines types for the MaaS API endpoints' return types.

Each endpoint returns JSON that describes the object it represents. For example, GETting the Subnets endpoint will return an array of Subnet, while GETting the Subnet endpoint (ie subnets/<subnet_id>) will return one Subnet.

Some endpoints expose operations that return metadata about the object, such as as Subnet's GetStatistics(), which contains statistics about the subnet, but does not actually describe the subnet: these alternative types can be found in subpackages named after the endpoint.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockDevice

type BlockDevice struct {
	BlockSize          int                    `json:"block_size,omitempty"`
	ID                 int                    `json:"id,omitempty"`
	IDPath             string                 `json:"id_path,omitempty"`
	Model              string                 `json:"model,omitempty"`
	Name               string                 `json:"name,omitempty"`
	Path               string                 `json:"path,omitempty"`
	Serial             string                 `json:"serial,omitempty"`
	Size               int                    `json:"size,omitempty"`
	Tags               []string               `json:"tags,omitempty"`
	FirmwareVersion    string                 `json:"firmware_version,omitempty"`
	SystemID           string                 `json:"system_id,omitempty"`
	AvailableSize      int                    `json:"available_size,omitempty"`
	UsedSize           int                    `json:"used_size,omitempty"`
	PartitionTableType string                 `json:"partition_table_type,omitempty"`
	Partitions         []BlockDevicePartition `json:"partitions,omitempty"`
	Filesystem         PartitionFileSystem    `json:"filesystem,omitempty"`
	StoragePool        string                 `json:"storage_pool,omitempty"`
	UsedFor            string                 `json:"used_for,omitempty"`
	Type               string                 `json:"type,omitempty"`
	UUID               string                 `json:"uuid,omitempty"`
	ResourceURI        string                 `json:"resource_uri,omitempty"`
}

BlockDevice represents the MaaS BlockDevice endpoint.

type BlockDeviceParams

type BlockDeviceParams struct {
	Name      string `url:"name,omitempty"`
	Size      int    `url:"size,omitempty"`
	BlockSize int    `url:"block_size,omitempty"`
	UUID      string `url:"uuid,omitempty"`
	Model     string `url:"model,omitempty"`
	Serial    string `url:"serial,omitempty"`
	IDPath    string `url:"id_path,omitempty"`
}

type BlockDevicePartition

type BlockDevicePartition struct {
	UUID        string              `json:"uuid"`
	Size        int                 `json:"size"`
	Bootable    bool                `json:"bootable"`
	Tags        []string            `json:"tags,omitempty"`
	SystemID    string              `json:"system_id"`
	ID          int                 `json:"id"`
	DeviceID    int                 `json:"device_id"`
	FileSystem  PartitionFileSystem `json:"filesystem"`
	UsedFor     string              `json:"used_for,omitempty"`
	Type        string              `json:"type"`
	Path        string              `json:"path"`
	ResourceURI string              `json:"resource_uri"`
}

BlockDevicePartition represents the MaaS block device partition endpoint.

type BlockDevicePartitionParams

type BlockDevicePartitionParams struct {
	Size     int    `url:"size,omitempty"`
	UUID     string `url:"uuid,omitempty"`
	Bootable bool   `url:"bootable"`
}

type DNSResource

type DNSResource struct {
	ID              int                 `json:"id,omitempty"`
	AddressTTL      int                 `json:"address_ttl,omitempty"`
	FQDN            string              `json:"fqdn,omitempty"`
	ResourceURI     string              `json:"resource_uri,omitempty"`
	IPAddresses     []IPAddress         `json:"ip_addresses,omitempty"`
	ResourceRecords []DNSResourceRecord `json:"resource_records,omitempty"`
}

type DNSResourceParams

type DNSResourceParams struct {
	AddressTTL  int    `url:"address_ttl"`
	FQDN        string `url:"fqdn,omitempty"`
	Name        string `url:"name,omitempty"`
	Domain      string `url:"domain,omitempty"`
	IPAddresses string `url:"ip_addresses,omitempty"`
}

type DNSResourceRecord

type DNSResourceRecord struct {
	ID          int    `json:"id,omitempty"`
	TTL         int    `json:"ttl,omitempty"`
	RRType      string `json:"rrtype,omitempty"`
	RRData      string `json:"rrdata,omitempty"`
	FQDN        string `json:"fqdn,omitempty"`
	ResourceURI string `json:"resource_uri,omitempty"`
}

type DNSResourceRecordParams

type DNSResourceRecordParams struct {
	FQDN   string `url:"fqdn,omitempty"`
	Name   string `url:"name,omitempty"`
	Domain string `url:"domain,omitempty"`
	RRType string `url:"rrtype,omitempty"`
	RRData string `url:"rrdata,omitempty"`
	TTL    int    `url:"ttl"`
}

type Domain

type Domain struct {
	Name                string `json:"name,omitempty"`
	ResourceURI         string `json:"resource_uri,omitempty"`
	ID                  int    `json:"id,omitempty"`
	TTL                 int    `json:"ttl,omitempty"`
	ResourceRecordCount int    `json:"resource_record_count,omitempty"`
	Authoritative       bool   `json:"authoritative,omitempty"`
	IsDefault           bool   `json:"is_default,omitempty"`
}

Domain represents the MaaS Domain endpoint

type DomainParams

type DomainParams struct {
	Name          string `url:"name,omitempty"`
	TTL           int    `url:"ttl,omitempty"`
	Authoritative bool   `url:"authoritative"`
}

type Fabric

type Fabric struct {
	ID          int    `json:"id,omitempty"`
	VLANs       []VLAN `json:"vlans,omitempty"`
	Name        string `json:"name,omitempty"`
	ClassType   string `json:"class_type,omitempty"`
	ResourceURI string `json:"resource_uri,omitempty"`
}

type FabricParams

type FabricParams struct {
	Name        string `url:"name,omitempty"`
	Description string `url:"description,omitempty"`
	ClassType   string `url:"class_type,omitempty"`
}

type IPAddress

type IPAddress struct {
	AllocType     int                `json:"alloc_type,omitempty"`
	AllocTypeName string             `json:"alloc_type_name,omitempty"`
	Created       string             `json:"created,omitempty"`
	ResourceURI   string             `json:"resource_uri,omitempty"`
	IP            net.IP             `json:"ip,omitempty"`
	Subnet        Subnet             `json:"subnet,omitempty"`
	InterfaceSet  []NetworkInterface `json:"interface_set,omitempty"`
	Owner         User               `json:"owner,omitempty"`
}

type IPAddressesParams

type IPAddressesParams struct {
	All        bool   `url:"all,omitempty"`
	Discovered bool   `url:"discovered,omitempty"`
	Force      bool   `url:"force,omitempty"`
	Subnet     string `url:"subnet,omitempty"`
	IP         string `url:"ip,omitempty"`
	Owner      string `url:"owner,omitempty"`
}

type IPRange

type IPRange struct {
	ID          int    `json:"id"`
	Type        string `json:"type"`
	StartIP     net.IP `json:"start_ip"`
	EndIP       net.IP `json:"end_ip"`
	Subnet      Subnet `json:"subnet"`
	User        User   `json:"user,omitempty"`
	Comment     string `json:"comment,omitempty"`
	ResourceURI string `json:"resource_uri"`
}

type IPRangeParams

type IPRangeParams struct {
	Type    string `url:"type"`
	Subnet  string `url:"subnet"`
	StartIP string `url:"start_ip"`
	EndIP   string `url:"end_ip"`
	Comment string `url:"comment,omitempty"`
}

type Machine

type Machine struct {
	BootInterface   NetworkInterface `json:"boot_interface,omitempty"`
	VMHost          VMHost           `json:"pod,omitempty"`
	BootDisk        BlockDevice      `json:"boot_disk,omitempty"`
	Domain          Domain           `json:"domain,omitempty"`
	DefaultGateways struct {
		IPv4 struct {
			GatewayIP net.IP `json:"gateway_ip,omitempty"`
			LinkID    int    `json:"link_id,omitempty"`
		} `json:"ipv4,omitempty"`
		IPv6 struct {
			GatewayIP net.IP `json:"gateway_ip,omitempty"`
			LinkID    int    `json:"link_id,omitempty"`
		} `json:"ipv6,omitempty"`
	} `json:"default_gateways,omitempty"`
	Pool                         ResourcePool        `json:"pool,omitempty"`
	Zone                         Zone                `json:"zone,omitempty"`
	TagNames                     []string            `json:"tag_names,omitempty"`
	IPAddresses                  []net.IP            `json:"ip_addresses,omitempty"`
	BlockDeviceSet               []BlockDevice       `json:"blockdevice_set,omitempty"`
	CacheSets                    []string            `json:"cache_sets,omitempty"`
	VolumeGroups                 []VolumeGroup       `json:"volume_groups,omitempty"`
	InterfaceSet                 []NetworkInterface  `json:"interface_set,omitempty"`
	BCaches                      []string            `json:"bcaches,omitempty"`
	RAIDs                        []string            `json:"raids,omitempty"`
	SpecialFilesystems           []string            `json:"special_filesystems,omitempty"`
	ServiceSet                   []MachineServiceSet `json:"service_set,omitempty"`
	PhysicalBlockDeviceSet       []BlockDevice       `json:"physicalblockdevice_set,omitempty"`
	ISCSIBlockDeviceSet          []BlockDevice       `json:"iscsiblockdevice_set,omitempty"`
	VirtualBlockDeviceSet        []BlockDevice       `json:"virtualblockdevice_set,omitempty"`
	FQDN                         string              `json:"fqdn,omitempty"`
	DistroSeries                 string              `json:"distro_series,omitempty"`
	MinHWEKernel                 string              `json:"min_hwe_kernel,omitempty"`
	CommissioningStatusName      string              `json:"commissioning_status_name,omitempty"`
	SystemID                     string              `json:"system_id,omitempty"`
	NodeTypeName                 string              `json:"node_type_name,omitempty"`
	StorageTestStatusName        string              `json:"storage_test_status_name,omitempty"`
	Owner                        string              `json:"owner,omitempty"`
	HWEKernel                    string              `json:"hwe_kernel,omitempty"`
	TestingStatusName            string              `json:"testing_status_name,omitempty"`
	Version                      string              `json:"version,omitempty"`
	Architecture                 string              `json:"architecture,omitempty"`
	PowerState                   string              `json:"power_state,omitempty"`
	MemoryTestStatusName         string              `json:"memory_test_status_name,omitempty"`
	PowerType                    string              `json:"power_type,omitempty"`
	OwnerData                    interface{}         `json:"owner_data,omitempty"`
	Hostname                     string              `json:"hostname,omitempty"`
	Description                  string              `json:"description,omitempty"`
	StatusAction                 string              `json:"status_action,omitempty"`
	StatusMessage                string              `json:"status_message,omitempty"`
	StatusName                   string              `json:"status_name,omitempty"`
	OSystem                      string              `json:"osystem,omitempty"`
	CPUTestStatusName            string              `json:"cpu_test_status_name,omitempty"`
	OtherTestStatusName          string              `json:"other_test_status_name,omitempty"`
	ResourceURI                  string              `json:"resource_uri,omitempty"`
	Memory                       int                 `json:"memory,omitempty"`
	NodeType                     int                 `json:"node_type,omitempty"`
	CurrentCommissioningResultID int                 `json:"current_commissioning_result_id,omitempty"`
	CPUTestStatus                int                 `json:"cpu_test_status,omitempty"`
	AddressTTL                   int                 `json:"address_ttl,omitempty"`
	Storage                      float64             `json:"storage,omitempty"`
	HardwareInfo                 map[string]string   `json:"hardware_info,omitempty"`
	CPUCount                     int                 `json:"cpu_count,omitempty"`
	Status                       node.Status         `json:"status,omitempty"`
	CurrentInstallationResultID  int                 `json:"current_installation_result_id,omitempty"`
	CurrentTestingResultID       int                 `json:"current_testing_result_id,omitempty"`
	CommissioningStatus          int                 `json:"commissioning_status,omitempty"`
	OtherTestStatus              int                 `json:"other_test_status,omitempty"`
	TestingStatus                int                 `json:"testing_status,omitempty"`
	StorageTestStatus            int                 `json:"storage_test_status,omitempty"`
	SwapSize                     int                 `json:"swap_size,omitempty"`
	MemoryTestStatus             int                 `json:"memory_test_status,omitempty"`
	CPUSpeed                     int                 `json:"cpu_speed,omitempty"`
	DisableIPv4                  bool                `json:"disable_ipv4,omitempty"`
	Netboot                      bool                `json:"netboot,omitempty"`
	Locked                       bool                `json:"locked,omitempty"`
	EnableHWSync                 bool                `json:"enable_hw_sync,omitempty"`
}

Machine represents the MaaS Machine endpoint.

type MachineAllocateParams

type MachineAllocateParams struct {
	Tags             []string `url:"tags,omitempty"`
	NotTags          []string `url:"not_tags,omitempty"`
	NotInZone        []string `url:"not_in_zone,omitempty"`
	NotInPool        []string `url:"not_in_pool,omitempty"`
	Subnets          []string `url:"subnets,omitempty"`
	NotSubnets       []string `url:"not_subnets,omitempty"`
	Storage          []string `url:"storage,omitempty"`
	Fabrics          []string `url:"fabrics,omitempty"`
	NotFabrics       []string `url:"not_fabrics,omitempty"`
	FabricClasses    []string `url:"fabric_classes,omitempty"`
	NotFabricClasses []string `url:"not_fabric_classes,omitempty"`
	Name             string   `url:"name,omitempty"`
	SystemID         string   `url:"system_id,omitempty"`
	Arch             string   `url:"arch,omitempty"`
	Zone             string   `url:"zone,omitempty"`
	Pool             string   `url:"pool,omitempty"`
	VMHost           string   `url:"pod,omitempty"`
	NotVMHost        string   `url:"not_pod,omitempty"`
	VMHostType       string   `url:"pod_type,omitempty"`
	NotVMHostType    string   `url:"not_pod_type,omitempty"`
	Interfaces       string   `url:"interfaces,omitempty"`
	AgentName        string   `url:"agent_name,omitempty"`
	Comment          string   `url:"comment,omitempty"`
	CPUCount         int      `url:"cpu_count,omitempty"`
	Mem              int      `url:"mem,omitempty"`
	BridgeFD         int      `url:"bridge_fd,omitempty"`
	BridgeAll        bool     `url:"bridge_all,omitempty"`
	BridgeSTP        bool     `url:"bridge_stp,omitempty"`
	DryRun           bool     `url:"dry_run,omitempty"`
	Verbose          bool     `url:"verbose,omitempty"`
}

MachineAllocateParams enumerates the options for the allocate operation.

type MachineCommissionParams

type MachineCommissionParams struct {
	EnableSSH            int    `url:"enable_ssh,omitempty"`
	SkipBMCConfig        int    `url:"skip_bmc_config,omitempty"`
	SkipNetworking       int    `url:"skip_networking,omitempty"`
	SkipStorage          int    `url:"skip_storage,omitempty"`
	CommissioningScripts string `url:"commissioning_scripts,omitempty"`
	TestingScripts       string `url:"testing_scripts,omitempty"`
}

MachineCommissionParams enumerates the parameters for the commission operation

type MachineDeployParams

type MachineDeployParams struct {
	UserData       string `url:"user_data,omitempty"`
	DistroSeries   string `url:"distro_series,omitempty"`
	HWEKernel      string `url:"hwe_kernel,omitempty"`
	AgentName      string `url:"agent_name,omitempty"`
	Comment        string `url:"comment,omitempty"`
	BridgeFD       int    `url:"bridge_fd,omitempty"`
	BridgeAll      bool   `url:"bridge_all,omitempty"`
	BridgeSTP      bool   `url:"bridge_stp,omitempty"`
	InstallRackD   bool   `url:"install_rackd,omitempty"`
	InstallKVM     bool   `url:"install_kvm,omitempty"`
	RegisterVMHost bool   `url:"register_vmhost,omitempty"`
	EnableHWSync   bool   `url:"enable_hw_sync,omitempty"`
}

MachineDeployParams enumerates the parameters for the deploy operation

type MachineParams

type MachineParams struct {
	CPUCount      int    `url:"cpu_count,omitempty"`
	Memory        int    `url:"memory,omitempty"`
	SwapSize      int    `url:"swap_size,omitempty"`
	PXEMacAddress string `url:"mac_addresses,omitempty"`
	Architecture  string `url:"architecture,omitempty"`
	MinHWEKernel  string `url:"min_hwe_kernel,omitempty"`
	PowerType     string `url:"power_type,omitempty"`
	Hostname      string `url:"hostname,omitempty"`
	Description   string `url:"description,omitempty"`
	Domain        string `url:"domain,omitempty"`
	Pool          string `url:"pool,omitempty"`
	Zone          string `url:"zone,omitempty"`
	Commission    bool   `url:"commission,omitempty"`
}

MachineParams enumerates the parameters for the machine update operation

type MachineServiceSet

type MachineServiceSet struct {
	Name       string `json:"name,omitempty"`
	Status     string `json:"status,omitempty"`
	StatusInfo string `json:"status_info,omitempty"`
}

MachineServiceSet represents a Machine's "service_set". This type should not be used directly.

type NetworkInterface

type NetworkInterface struct {
	VLAN               VLAN                   `json:"vlan,omitempty"`
	Children           []string               `json:"children,omitempty"`
	Parents            []string               `json:"parents,omitempty"`
	Tags               []string               `json:"tags,omitempty"`
	Discovered         []NetworkInterfaceLink `json:"discovered,omitempty"`
	Links              []NetworkInterfaceLink `json:"links,omitempty"`
	Name               string                 `json:"name,omitempty"`
	MACAddress         string                 `json:"mac_address,omitempty"`
	Product            string                 `json:"product,omitempty"`
	FirmwareVersion    string                 `json:"firmware_version,omitempty"`
	SystemID           string                 `json:"system_id,omitempty"`
	Params             interface{}            `json:"params,omitempty"`
	Type               string                 `json:"type,omitempty"`
	Vendor             string                 `json:"vendor,omitempty"`
	ResourceURI        string                 `json:"resource_uri,omitempty"`
	BondXMitHashPolicy string                 `json:"bond_x_mit_hash_policy,omitempty"`
	BondMode           string                 `json:"bond_mode,omitempty"`
	MTU                string                 `json:"mtu,omitempty"`
	EffectiveMTU       int                    `json:"effective_mtu,omitempty"`
	ID                 int                    `json:"id,omitempty"`
	BridgeFD           int                    `json:"bridge_fd,omitempty"`
	BondMIIMon         int                    `json:"bond_mii_mon,omitempty"`
	BondDownDelay      int                    `json:"bond_down_delay,omitempty"`
	BondUpDelay        int                    `json:"bond_up_delay,omitempty"`
	BondLACPRate       int                    `json:"bond_lacp_rate,omitempty"`
	AcceptRA           bool                   `json:"accept_ra,omitempty"`
	Autoconf           bool                   `json:"autoconf,omitempty"`
	Enabled            bool                   `json:"enabled,omitempty"`
	BridgeSTP          bool                   `json:"bridge_stp,omitempty"`
}

NetworkInterface represents the MaaS Interface endpoint.

type NetworkInterfaceBondParams

type NetworkInterfaceBondParams struct {
	NetworkInterfacePhysicalParams
	Parents            []int  `url:"parents,omitempty"`
	BondMode           string `url:"bond_mode,omitempty"`
	BondMiimon         int    `url:"bond_miimon,omitempty"`
	BondDownDelay      int    `url:"bond_downdelay,omitempty"`
	BondUpDelay        int    `url:"bond_updelay,omitempty"`
	BondLACPRate       string `url:"bond_lacp_rate,omitempty"`
	BondXMitHashPolicy string `url:"bond_xmit_hash_policy,omitempty"`
	BondNumberGratARP  int    `url:"bond_num_grat_arp,omitempty"`
}

NetworkInterfaceBond is the parameters for the NetworkInterfaces create_bond POST operation.

type NetworkInterfaceBridgeParams

type NetworkInterfaceBridgeParams struct {
	NetworkInterfacePhysicalParams
	Parent     int    `url:"parent,omitempty"`
	Bridgetype string `url:"bridge_type,omitempty"`
	BridgeSTP  bool   `url:"bridge_stp,omitempty"`
	BridgeFD   int    `url:"bridge_fd,omitempty"`
}

NetworkInterfaceBridge is the parameters for the NetworkInterfaces create_bridge POST operation.

type NetworkInterfaceLink struct {
	ID        int    `json:"id,omitempty"`
	Mode      string `json:"mode,omitempty"`
	Subnet    Subnet `json:"subnet,omitempty"`
	IPAddress string `json:"ip_address,omitempty"`
}

NetworkInterfaceLink is consumed by NetworkInterface{} and should not be used directly.

type NetworkInterfaceLinkParams

type NetworkInterfaceLinkParams struct {
	Mode           string `url:"mode,omitempty"`
	Subnet         int    `url:"subnet,omitempty"`
	Force          bool   `url:"force,omitempty"`
	DefaultGateway bool   `url:"default_gateway"`
	IPAddress      string `url:"ip_address,omitempty"`
}

NetworkInterfaceLinkParams is used with NetworkInterface.LinkSubnet(). Mode must be one of (AUTO, DHCP, STATIC, LINK_UP). IPAddress is ignored unless mode is STATIC, and will be set automatically if empty. Force allows LINK_UP to be set when other links exist, allows links between different VLANs, and deletes all other links on the interface. DefaultGateway is ignored unless Mode is AUTO or STATIC. Note: You can parse an IP address into a net.IP via net.ParseIP(string).

type NetworkInterfacePhysicalParams

type NetworkInterfacePhysicalParams struct {
	MACAddress string `url:"mac_address,omitempty"`
	Name       string `url:"name,omitempty"`
	Tags       string `url:"tags,omitempty"`
	VLAN       string `url:"vlan,omitempty"`
	MTU        int    `url:"mtu,omitempty"`
	AcceptRA   bool   `url:"accept_ra,omitempty"`
	Autoconf   bool   `url:"autoconf,omitempty"`
}

NetworkInterfacePhysical is the parameters for the NetworkInterfaces create_physical POST operation.

type NetworkInterfaceVLANParams

type NetworkInterfaceVLANParams struct {
	VLAN     string   `url:"vlan,omitempty"`
	Parent   int      `url:"parent,omitempty"`
	Tags     []string `url:"tags,omitempty"`
	MTU      int      `url:"mtu,omitempty"`
	AcceptRA bool     `url:"accept_ra,omitempty"`
	Autoconf bool     `url:"autoconf,omitempty"`
}

NetworkInterfaceVLAN is the parameters for the NetworkInterfaces create_vlan POST operation.

type Node

type Node Machine

Node represents the MaaS Node endpoint.

type PartitionFileSystem

type PartitionFileSystem struct {
	FSType       string `json:"fstype"`
	UUID         string `json:"uuid"`
	MountPoint   string `json:"mount_point"`
	Label        string `json:"label,omitempty"`
	MountOptions string `json:"mount_options,omitempty"`
}

type RackController

type RackController Machine

RackController represents the MaaS RackController endpoint.

type RackControllerSearch

type RackControllerSearch struct {
	Hostname   string `json:"hostname,omitempty"`
	MACAddress string `json:"mac_address,omitempty"`
	SystemID   string `json:"id,omitempty"`
	Domain     string `json:"domain,omitempty"`
	Zone       string `json:"zone,omitempty"`
	Pool       string `json:"pool,omitempty"`
	AgentName  string `json:"agent_name,omitempty"`
}

RackControllerSearch narrows down the list in RackController.Get(). All fields are optional.

type ResourcePool

type ResourcePool struct {
	ID          int    `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	ResourceURI string `json:"resource_uri,omitempty"`
}

ResourcePool represents the MaaS ResourcePool endpoint

type Space

type Space struct {
	ID          int      `json:"id,omitempty"`
	Name        string   `json:"name,omitempty"`
	Subnets     []Subnet `json:"subnets,omitempty"`
	VLANs       []VLAN   `json:"vlans,omitempty"`
	ResourceURI string   `json:"resource_uri,omitempty"`
}

type Subnet

type Subnet struct {
	Name            string   `json:"name,omitempty"`
	VLAN            VLAN     `json:"vlan,omitempty"`
	CIDR            string   `json:"cidr,omitempty"`
	RDNSMode        int      `json:"rdns_mode,omitempty"`
	GatewayIP       net.IP   `json:"gateway_ip,omitempty"`
	DNSServers      []net.IP `json:"dns_servers,omitempty"`
	AllowDNS        bool     `json:"allow_dns,omitempty"`
	AllowProxy      bool     `json:"allow_proxy,omitempty"`
	ActiveDiscovery bool     `json:"active_discovery,omitempty"`
	Managed         bool     `json:"managed,omitempty"`
	ID              int      `json:"id,omitempty"`
	Space           string   `json:"space,omitempty"`
	ResourceURI     string   `json:"resource_uri,omitempty"`
}

Subnet represents the MaaS Subnet endpoint.

type SubnetParams

type SubnetParams struct {
	CIDR        string   `url:"cidr"`
	Name        string   `url:"name,omitempty"`
	Description string   `url:"description,omitempty"`
	VLAN        string   `url:"vlan,omitempty"`
	Fabric      string   `url:"fabric,omitempty"`
	VID         int      `url:"vid,omitempty"`
	GatewayIP   string   `url:"gateway_ip,omitempty"`
	DNSServers  []string `url:"dns_servers,omitempty"`
	RDNSMode    int      `url:"rdns_mode"`
	AllowDNS    bool     `url:"allow_dns"`
	AllowProxy  bool     `url:"allow_proxy"`
	Managed     bool     `url:"managed"`
}

SubnetParams contains the parameters for the POST operation on the Subnets endpoint.

type Tag

type Tag struct {
	Name        string `json:"name,omitempty"`
	Definition  string `json:"definition,omitempty"`
	Comment     string `json:"comment,omitempty"`
	KernelOpts  string `json:"kernel_opts,omitempty"`
	ResourceURI string `json:"resource_uri,omitempty"`
}

type TagParams

type TagParams struct {
	Name       string `url:"name"`
	Definition string `url:"definition,omitempty"`
	Comment    string `url:"comment,omitempty"`
	KernelOpts string `url:"kernel_opts,omitempty"`
}

type User

type User struct {
	IsSuperUser bool   `json:"is_superuser"`
	IsLocal     bool   `json:"is_local"`
	UserName    string `json:"username"`
	Email       string `json:"email"`
	ResourceURI string `json:"resource_uri"`
}

type UserParams

type UserParams struct {
	UserName    string `url:"username"`
	Password    string `url:"password"`
	Email       string `url:"email"`
	IsSuperUser bool   `url:"is_superuser,int"`
}

type VLAN

type VLAN struct {
	VID           int    `json:"vid,omitempty"`
	MTU           int    `json:"mtu,omitempty"`
	DHCPOn        bool   `json:"dhcp_on,omitempty"`
	ExternalDHCP  string `json:"external_dhcp,omitempty"`
	RelayVLAN     *VLAN  `json:"relay_vlan,omitempty"`
	FabricID      int    `json:"fabric_id,omitempty"`
	Name          string `json:"name,omitempty"`
	Description   string `json:"description,omitempty"`
	PrimaryRack   string `json:"primary_rack,omitempty"`
	SecondaryRack string `json:"secondary_rack,omitempty"`
	Space         string `json:"space,omitempty"`
	ID            int    `json:"id,omitempty"`
	Fabric        string `json:"fabric,omitempty"`
	ResourceURI   string `json:"resource_uri,omitempty"`
}

VLAN represents the MaaS VLAN endpoint.

type VLANParams

type VLANParams struct {
	VID           int    `url:"vid,omitempty"`
	MTU           int    `url:"mtu,omitempty"`
	RelayVLAN     int    `url:"relay_vlan,omitempty"`
	Name          string `url:"name,omitempty"`
	Description   string `url:"description,omitempty"`
	Space         string `url:"space,omitempty"`
	PrimaryRack   string `url:"primary_rack,omitempty"`
	SecondaryRack string `url:"secondary_rack,omitempty"`
	DHCPOn        bool   `url:"dhcp_on"`
}

VLANParams contains the options for a POST request to the vlans endpoint. Only the VID field is required. If Space is empty or the string "undefined", the VLAN will be created in the 'undefined' space.

type VMHost

type VMHost struct {
	Zone      Zone           `json:"zone,omitempty"`
	Pool      ResourcePool   `json:"pool,omitempty"`
	Used      VMHostResource `json:"used,omitempty"`
	Available VMHostResource `json:"available,omitempty"`
	Total     VMHostResource `json:"total,omitempty"`
	Host      struct {
		SystemID   string `json:"system_id,omitempty"`
		Incomplete bool   `json:"__incomplete__,omitempty"`
	} `json:"host,omitempty"`
	StoragePools          []VMHostStoragePool `json:"storage_pools,omitempty"`
	Architectures         []string            `json:"architectures,omitempty"`
	Tags                  []string            `json:"tags,omitempty"`
	Capabilities          []string            `json:"capabilities,omitempty"`
	Name                  string              `json:"name,omitempty"`
	Type                  string              `json:"type,omitempty"`
	DefaultMACVLANMode    string              `json:"default_macvlan_mode,omitempty"`
	ResourceURI           string              `json:"resource_uri,omitempty"`
	CPUOverCommitRatio    float64             `json:"cpu_over_commit_ratio,omitempty"`
	MemoryOverCommitRatio float64             `json:"memory_over_commit_ratio,omitempty"`
	ID                    int                 `json:"id,omitempty"`
}

VMHost represents the MaaS VM host endpoint.

type VMHostMachineParams

type VMHostMachineParams struct {
	Cores           int    `url:"cores,omitempty"`
	PinnedCores     int    `url:"pinned_cores,omitempty"`
	Memory          int    `url:"memory,omitempty"`
	HugepagesBacked bool   `url:"hugepages_backed,omitempty"`
	Architecture    string `url:"architecture,omitempty"`
	Storage         string `url:"storage,omitempty"`
	Interfaces      string `url:"interfaces,omitempty"`
	Hostname        string `url:"hostname,omitempty"`
}

VMHostMachineParams enumerates the VMHost machine configuration options.

type VMHostParams

type VMHostParams struct {
	Type                  string  `url:"type,omitempty"`
	PowerAddress          string  `url:"power_address,omitempty"`
	PowerUser             string  `url:"power_user,omitempty"`
	PowerPass             string  `url:"power_pass,omitempty"`
	Name                  string  `url:"name,omitempty"`
	Zone                  string  `url:"zone,omitempty"`
	Pool                  string  `url:"pool,omitempty"`
	DefaultStoragePool    string  `url:"default_storage_pool,omitempty"`
	DefaultMacvlanMode    string  `url:"default_macvlan_mode,omitempty"`
	CPUOverCommitRatio    float64 `url:"cpu_over_commit_ratio,omitempty"`
	MemoryOverCommitRatio float64 `url:"memory_over_commit_ratio,omitempty"`
	Tags                  string  `url:"tags,omitempty"`
}

VMHostParams enumerates the VMHost configuration options.

type VMHostResource

type VMHostResource struct {
	Cores        int `json:"cores,omitempty"`
	Memory       int `json:"memory,omitempty"`
	LocalStorage int `json:"local_storage,omitempty"`
}

VMHostResource represents the "used", "available", and "total" objects in a VMHost This type should not be used directly.

type VMHostStoragePool

type VMHostStoragePool struct {
	ID        string `json:"id,omitempty"`
	Name      string `json:"name,omitempty"`
	Type      string `json:"type,omitempty"`
	Path      string `json:"path,omitempty"`
	Total     int    `json:"total,omitempty"`
	Used      int    `json:"used,omitempty"`
	Available int    `json:"available,omitempty"`
	Default   bool   `json:"default,omitempty"`
}

VMHostStoragePool represents the "storage_pools" object in a VMHost. This type should not be used directly.

type VolumeGroup

type VolumeGroup struct {
	HumanUsedSize      string      `json:"human_used_size,omitempty"`
	UUID               string      `json:"uuid,omitempty"`
	HumanAvailableSize string      `json:"human_available_size,omitempty"`
	SystemID           string      `json:"system_id,omitempty"`
	ID                 int         `json:"id,omitempty"`
	LogicalVolumes     interface{} `json:"logical_volumes,omitempty"`
	Size               int         `json:"size,omitempty"`
	Devices            interface{} `json:"devices,omitempty"`
	AvailableSize      int         `json:"available_size,omitempty"`
	UsedSize           int         `json:"used_size,omitempty"`
	HumanSize          string      `json:"human_size,omitempty"`
	Name               string      `json:"name,omitempty"`
	ResourceURI        string      `json:"resource_uri,omitempty"`
}

VolumeGroup represents the MaaS VolumeGroup endpoint.

type Zone

type Zone struct {
	ID          int    `json:"id,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	ResourceURI string `json:"resource_uri,omitempty"`
}

Zone represents the MaaS Zone endpoint

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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