oxide

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2025 License: MPL-2.0 Imports: 16 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// TokenEnvVar is the environment variable that contains the token.
	TokenEnvVar = "OXIDE_TOKEN"

	// HostEnvVar is the environment variable that contains the host.
	HostEnvVar = "OXIDE_HOST"
)

Variables

View Source
var AddressLotKindCollection = []AddressLotKind{
	AddressLotKindInfra,
	AddressLotKindPool,
}

AddressLotKindCollection is the collection of all AddressLotKind values.

AllowedSourceIpsAllowCollection is the collection of all AllowedSourceIpsAllow values.

AuthzScopeCollection is the collection of all AuthzScope values.

View Source
var BfdModeCollection = []BfdMode{
	BfdModeMultiHop,
	BfdModeSingleHop,
}

BfdModeCollection is the collection of all BfdMode values.

BfdStateCollection is the collection of all BfdState values.

BgpPeerStateCollection is the collection of all BgpPeerState values.

BinRangedoubleTypeCollection is the collection of all BinRangedoubleType values.

BinRangefloatTypeCollection is the collection of all BinRangefloatType values.

BinRangeint16TypeCollection is the collection of all BinRangeint16Type values.

BinRangeint32TypeCollection is the collection of all BinRangeint32Type values.

BinRangeint64TypeCollection is the collection of all BinRangeint64Type values.

BinRangeint8TypeCollection is the collection of all BinRangeint8Type values.

BinRangeuint16TypeCollection is the collection of all BinRangeuint16Type values.

BinRangeuint32TypeCollection is the collection of all BinRangeuint32Type values.

BinRangeuint64TypeCollection is the collection of all BinRangeuint64Type values.

BinRangeuint8TypeCollection is the collection of all BinRangeuint8Type values.

DatumTypeCollection is the collection of all DatumType values.

View Source
var DigestTypeCollection = []DigestType{
	DigestTypeSha256,
}

DigestTypeCollection is the collection of all DigestType values.

DiskMetricNameCollection is the collection of all DiskMetricName values.

DiskSourceTypeCollection is the collection of all DiskSourceType values.

DiskStateStateCollection is the collection of all DiskStateState values.

ExternalIpCreateTypeCollection is the collection of all ExternalIpCreateType values.

ExternalIpKindCollection is the collection of all ExternalIpKind values.

View Source
var FieldSourceCollection = []FieldSource{
	FieldSourceMetric,
	FieldSourceTarget,
}

FieldSourceCollection is the collection of all FieldSource values.

FieldTypeCollection is the collection of all FieldType values.

FieldValueTypeCollection is the collection of all FieldValueType values.

FleetRoleCollection is the collection of all FleetRole values.

View Source
var FloatingIpParentKindCollection = []FloatingIpParentKind{
	FloatingIpParentKindInstance,
}

FloatingIpParentKindCollection is the collection of all FloatingIpParentKind values.

View Source
var IdSortModeCollection = []IdSortMode{
	IdSortModeIdAscending,
}

IdSortModeCollection is the collection of all IdSortMode values.

View Source
var IdentityProviderTypeCollection = []IdentityProviderType{
	IdentityProviderTypeSaml,
}

IdentityProviderTypeCollection is the collection of all IdentityProviderType values.

IdentityTypeCollection is the collection of all IdentityType values.

IdpMetadataSourceTypeCollection is the collection of all IdpMetadataSourceType values.

ImageSourceTypeCollection is the collection of all ImageSourceType values.

ImportExportPolicyTypeCollection is the collection of all ImportExportPolicyType values.

InstanceAutoRestartPolicyCollection is the collection of all InstanceAutoRestartPolicy values.

InstanceDiskAttachmentTypeCollection is the collection of all InstanceDiskAttachmentType values.

InstanceNetworkInterfaceAttachmentTypeCollection is the collection of all InstanceNetworkInterfaceAttachmentType values.

InstanceStateCollection is the collection of all InstanceState values.

View Source
var LinkFecCollection = []LinkFec{
	LinkFecFirecode,
	LinkFecNone,
	LinkFecRs,
}

LinkFecCollection is the collection of all LinkFec values.

LinkSpeedCollection is the collection of all LinkSpeed values.

MetricTypeCollection is the collection of all MetricType values.

NameOrIdSortModeCollection is the collection of all NameOrIdSortMode values.

View Source
var NameSortModeCollection = []NameSortMode{
	NameSortModeNameAscending,
}

NameSortModeCollection is the collection of all NameSortMode values.

NetworkInterfaceKindTypeCollection is the collection of all NetworkInterfaceKindType values.

PaginationOrderCollection is the collection of all PaginationOrder values.

View Source
var PhysicalDiskKindCollection = []PhysicalDiskKind{
	PhysicalDiskKindM2,
	PhysicalDiskKindU2,
}

PhysicalDiskKindCollection is the collection of all PhysicalDiskKind values.

PhysicalDiskPolicyKindCollection is the collection of all PhysicalDiskPolicyKind values.

PhysicalDiskStateCollection is the collection of all PhysicalDiskState values.

View Source
var PingStatusCollection = []PingStatus{
	PingStatusOk,
}

PingStatusCollection is the collection of all PingStatus values.

ProbeExternalIpKindCollection is the collection of all ProbeExternalIpKind values.

ProjectRoleCollection is the collection of all ProjectRole values.

RouteDestinationTypeCollection is the collection of all RouteDestinationType values.

RouteTargetTypeCollection is the collection of all RouteTargetType values.

RouterRouteKindCollection is the collection of all RouterRouteKind values.

View Source
var ServiceUsingCertificateCollection = []ServiceUsingCertificate{
	ServiceUsingCertificateExternalApi,
}

ServiceUsingCertificateCollection is the collection of all ServiceUsingCertificate values.

SiloIdentityModeCollection is the collection of all SiloIdentityMode values.

SiloRoleCollection is the collection of all SiloRole values.

SledPolicyKindCollection is the collection of all SledPolicyKind values.

SledProvisionPolicyCollection is the collection of all SledProvisionPolicy values.

SledStateCollection is the collection of all SledState values.

SnapshotStateCollection is the collection of all SnapshotState values.

SupportBundleStateCollection is the collection of all SupportBundleState values.

SwitchInterfaceKind2Collection is the collection of all SwitchInterfaceKind2 values.

SwitchInterfaceKindTypeCollection is the collection of all SwitchInterfaceKindType values.

SwitchLocationCollection is the collection of all SwitchLocation values.

SwitchPortGeometry2Collection is the collection of all SwitchPortGeometry2 values.

SwitchPortGeometryCollection is the collection of all SwitchPortGeometry values.

SystemMetricNameCollection is the collection of all SystemMetricName values.

UnitsCollection is the collection of all Units values.

UserPasswordModeCollection is the collection of all UserPasswordMode values.

ValueArrayTypeCollection is the collection of all ValueArrayType values.

VpcFirewallRuleActionCollection is the collection of all VpcFirewallRuleAction values.

VpcFirewallRuleDirectionCollection is the collection of all VpcFirewallRuleDirection values.

VpcFirewallRuleHostFilterTypeCollection is the collection of all VpcFirewallRuleHostFilterType values.

VpcFirewallRuleProtocolCollection is the collection of all VpcFirewallRuleProtocol values.

VpcFirewallRuleStatusCollection is the collection of all VpcFirewallRuleStatus values.

VpcFirewallRuleTargetTypeCollection is the collection of all VpcFirewallRuleTargetType values.

View Source
var VpcRouterKindCollection = []VpcRouterKind{
	VpcRouterKindCustom,
	VpcRouterKindSystem,
}

VpcRouterKindCollection is the collection of all VpcRouterKind values.

Functions

func NewHTTPError added in v0.0.23

func NewHTTPError(res *http.Response) error

NewHTTPError returns an error of type *HTTPError if the response status code is 3xx or greater.

func NewPointer added in v0.2.0

func NewPointer[T any](v T) *T

NewPointer returns a pointer to a given value.

Types

type Address added in v0.0.23

type Address struct {
	// Address is the address and prefix length of this address.
	Address IpNet `json:"address,omitempty" yaml:"address,omitempty"`
	// AddressLot is the address lot this address is drawn from.
	AddressLot NameOrId `json:"address_lot,omitempty" yaml:"address_lot,omitempty"`
	// VlanId is optional VLAN ID for this address
	VlanId int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

Address is an address tied to an address lot.

Required fields: - Address - AddressLot

type AddressConfig added in v0.0.23

type AddressConfig struct {
	// Addresses is the set of addresses assigned to the port configuration.
	Addresses []Address `json:"addresses,omitempty" yaml:"addresses,omitempty"`
}

AddressConfig is a set of addresses associated with a port configuration.

Required fields: - Addresses

type AddressLot added in v0.0.23

type AddressLot struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Kind is desired use of `AddressLot`
	Kind AddressLotKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

AddressLot is represents an address lot object, containing the id of the lot that can be used in other API calls.

Required fields: - Description - Id - Kind - Name - TimeCreated - TimeModified

type AddressLotBlock added in v0.0.23

type AddressLotBlock struct {
	// FirstAddress is the first address of the block (inclusive).
	FirstAddress string `json:"first_address,omitempty" yaml:"first_address,omitempty"`
	// Id is the id of the address lot block.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// LastAddress is the last address of the block (inclusive).
	LastAddress string `json:"last_address,omitempty" yaml:"last_address,omitempty"`
}

AddressLotBlock is an address lot block is a part of an address lot and contains a range of addresses. The range is inclusive.

Required fields: - FirstAddress - Id - LastAddress

type AddressLotBlockCreate added in v0.0.23

type AddressLotBlockCreate struct {
	// FirstAddress is the first address in the lot (inclusive).
	FirstAddress string `json:"first_address,omitempty" yaml:"first_address,omitempty"`
	// LastAddress is the last address in the lot (inclusive).
	LastAddress string `json:"last_address,omitempty" yaml:"last_address,omitempty"`
}

AddressLotBlockCreate is parameters for creating an address lot block. Fist and last addresses are inclusive.

Required fields: - FirstAddress - LastAddress

type AddressLotBlockResultsPage added in v0.0.23

type AddressLotBlockResultsPage struct {
	// Items is list of items on this page of results
	Items []AddressLotBlock `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

AddressLotBlockResultsPage is a single page of results

Required fields: - Items

type AddressLotCreate added in v0.0.23

type AddressLotCreate struct {
	// Blocks is the blocks to add along with the new address lot.
	Blocks      []AddressLotBlockCreate `json:"blocks,omitempty" yaml:"blocks,omitempty"`
	Description string                  `json:"description,omitempty" yaml:"description,omitempty"`
	// Kind is the kind of address lot to create.
	Kind AddressLotKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

AddressLotCreate is parameters for creating an address lot.

Required fields: - Blocks - Description - Kind - Name

type AddressLotCreateResponse added in v0.0.23

type AddressLotCreateResponse struct {
	// Blocks is the address lot blocks that were created.
	Blocks []AddressLotBlock `json:"blocks,omitempty" yaml:"blocks,omitempty"`
	// Lot is the address lot that was created.
	Lot AddressLot `json:"lot,omitempty" yaml:"lot,omitempty"`
}

AddressLotCreateResponse is an address lot and associated blocks resulting from creating an address lot.

Required fields: - Blocks - Lot

type AddressLotKind added in v0.0.23

type AddressLotKind string

AddressLotKind is infrastructure address lots are used for network infrastructure like addresses assigned to rack switches.

const AddressLotKindInfra AddressLotKind = "infra"

AddressLotKindInfra represents the AddressLotKind `"infra"`.

const AddressLotKindPool AddressLotKind = "pool"

AddressLotKindPool represents the AddressLotKind `"pool"`.

type AddressLotResultsPage added in v0.0.23

type AddressLotResultsPage struct {
	// Items is list of items on this page of results
	Items []AddressLot `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

AddressLotResultsPage is a single page of results

Required fields: - Items

type AggregateBgpMessageHistory added in v0.2.0

type AggregateBgpMessageHistory struct {
	// SwitchHistories is bGP history organized by switch.
	SwitchHistories []SwitchBgpHistory `json:"switch_histories,omitempty" yaml:"switch_histories,omitempty"`
}

AggregateBgpMessageHistory is bGP message history for rack switches.

Required fields: - SwitchHistories

type AllowList added in v0.2.0

type AllowList struct {
	// AllowedIps is the allowlist of IPs or subnets.
	AllowedIps AllowedSourceIps `json:"allowed_ips,omitempty" yaml:"allowed_ips,omitempty"`
	// TimeCreated is time the list was created.
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is time the list was last modified.
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

AllowList is allowlist of IPs or subnets that can make requests to user-facing services.

Required fields: - AllowedIps - TimeCreated - TimeModified

type AllowListUpdate added in v0.2.0

type AllowListUpdate struct {
	// AllowedIps is the new list of allowed source IPs.
	AllowedIps AllowedSourceIps `json:"allowed_ips,omitempty" yaml:"allowed_ips,omitempty"`
}

AllowListUpdate is parameters for updating allowed source IPs

Required fields: - AllowedIps

type AllowedSourceIps added in v0.2.0

type AllowedSourceIps struct {
	// Allow is the type definition for a Allow.
	Allow AllowedSourceIpsAllow `json:"allow,omitempty" yaml:"allow,omitempty"`
	// Ips is the type definition for a Ips.
	Ips []IpNet `json:"ips,omitempty" yaml:"ips,omitempty"`
}

AllowedSourceIps is description of source IPs allowed to reach rack services.

type AllowedSourceIpsAllow added in v0.2.0

type AllowedSourceIpsAllow string

AllowedSourceIpsAllow is the type definition for a AllowedSourceIpsAllow.

const AllowedSourceIpsAllowAny AllowedSourceIpsAllow = "any"

AllowedSourceIpsAllowAny represents the AllowedSourceIpsAllow `"any"`.

const AllowedSourceIpsAllowList AllowedSourceIpsAllow = "list"

AllowedSourceIpsAllowList represents the AllowedSourceIpsAllow `"list"`.

type AllowedSourceIpsAny added in v0.2.0

type AllowedSourceIpsAny struct {
	Allow AllowedSourceIpsAllow `json:"allow,omitempty" yaml:"allow,omitempty"`
}

AllowedSourceIpsAny is allow traffic from any external IP address.

Required fields: - Allow

type AllowedSourceIpsList added in v0.2.0

type AllowedSourceIpsList struct {
	Allow AllowedSourceIpsAllow `json:"allow,omitempty" yaml:"allow,omitempty"`
	Ips   []IpNet               `json:"ips,omitempty" yaml:"ips,omitempty"`
}

AllowedSourceIpsList is restrict access to a specific set of source IP addresses or subnets.

All others are prevented from reaching rack services.

Required fields: - Allow - Ips

type AuthzScope added in v0.2.0

type AuthzScope string

AuthzScope is timeseries data is limited to fleet readers.

const AuthzScopeFleet AuthzScope = "fleet"

AuthzScopeFleet represents the AuthzScope `"fleet"`.

const AuthzScopeProject AuthzScope = "project"

AuthzScopeProject represents the AuthzScope `"project"`.

const AuthzScopeSilo AuthzScope = "silo"

AuthzScopeSilo represents the AuthzScope `"silo"`.

const AuthzScopeViewableToAll AuthzScope = "viewable_to_all"

AuthzScopeViewableToAll represents the AuthzScope `"viewable_to_all"`.

type Baseboard added in v0.0.23

type Baseboard struct {
	Part     string `json:"part,omitempty" yaml:"part,omitempty"`
	Revision int    `json:"revision,omitempty" yaml:"revision,omitempty"`
	Serial   string `json:"serial,omitempty" yaml:"serial,omitempty"`
}

Baseboard is properties that uniquely identify an Oxide hardware component

Required fields: - Part - Revision - Serial

type BfdMode added in v0.2.0

type BfdMode string

BfdMode is bFD connection mode.

const BfdModeMultiHop BfdMode = "multi_hop"

BfdModeMultiHop represents the BfdMode `"multi_hop"`.

const BfdModeSingleHop BfdMode = "single_hop"

BfdModeSingleHop represents the BfdMode `"single_hop"`.

type BfdSessionDisable added in v0.2.0

type BfdSessionDisable struct {
	// Remote is address of the remote peer to disable a BFD session for.
	Remote string `json:"remote,omitempty" yaml:"remote,omitempty"`
	// Switch is the switch to enable this session on. Must be `switch0` or `switch1`.
	Switch Name `json:"switch,omitempty" yaml:"switch,omitempty"`
}

BfdSessionDisable is information needed to disable a BFD session

Required fields: - Remote - Switch

type BfdSessionEnable added in v0.2.0

type BfdSessionEnable struct {
	// DetectionThreshold is the negotiated Control packet transmission interval, multiplied by this variable, will
	// be the Detection Time for this session (as seen by the remote system)
	DetectionThreshold int `json:"detection_threshold,omitempty" yaml:"detection_threshold,omitempty"`
	// Local is address the Oxide switch will listen on for BFD traffic. If `None` then the unspecified address (0.0.0.0
	// or ::) is used.
	Local string `json:"local,omitempty" yaml:"local,omitempty"`
	// Mode is select either single-hop (RFC 5881) or multi-hop (RFC 5883)
	Mode BfdMode `json:"mode,omitempty" yaml:"mode,omitempty"`
	// Remote is address of the remote peer to establish a BFD session with.
	Remote string `json:"remote,omitempty" yaml:"remote,omitempty"`
	// RequiredRx is the minimum interval, in microseconds, between received BFD Control packets that this system
	// requires
	RequiredRx int `json:"required_rx,omitempty" yaml:"required_rx,omitempty"`
	// Switch is the switch to enable this session on. Must be `switch0` or `switch1`.
	Switch Name `json:"switch,omitempty" yaml:"switch,omitempty"`
}

BfdSessionEnable is information about a bidirectional forwarding detection (BFD) session.

Required fields: - DetectionThreshold - Mode - Remote - RequiredRx - Switch

type BfdState added in v0.2.0

type BfdState string

BfdState is a stable down state. Non-responsive to incoming messages.

const BfdStateAdminDown BfdState = "admin_down"

BfdStateAdminDown represents the BfdState `"admin_down"`.

const BfdStateDown BfdState = "down"

BfdStateDown represents the BfdState `"down"`.

const BfdStateInit BfdState = "init"

BfdStateInit represents the BfdState `"init"`.

const BfdStateUp BfdState = "up"

BfdStateUp represents the BfdState `"up"`.

type BfdStatus added in v0.2.0

type BfdStatus struct {
	DetectionThreshold int    `json:"detection_threshold,omitempty" yaml:"detection_threshold,omitempty"`
	Local              string `json:"local,omitempty" yaml:"local,omitempty"`
	// Mode is bFD connection mode.
	Mode       BfdMode  `json:"mode,omitempty" yaml:"mode,omitempty"`
	Peer       string   `json:"peer,omitempty" yaml:"peer,omitempty"`
	RequiredRx int      `json:"required_rx,omitempty" yaml:"required_rx,omitempty"`
	State      BfdState `json:"state,omitempty" yaml:"state,omitempty"`
	// Switch is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Switch Name `json:"switch,omitempty" yaml:"switch,omitempty"`
}

BfdStatus is the type definition for a BfdStatus.

Required fields: - DetectionThreshold - Mode - Peer - RequiredRx - State - Switch

type BgpAnnounceSet added in v0.0.23

type BgpAnnounceSet struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

BgpAnnounceSet is represents a BGP announce set by id. The id can be used with other API calls to view and manage the announce set.

Required fields: - Description - Id - Name - TimeCreated - TimeModified

type BgpAnnounceSetCreate added in v0.0.23

type BgpAnnounceSetCreate struct {
	// Announcement is the announcements in this set.
	Announcement []BgpAnnouncementCreate `json:"announcement,omitempty" yaml:"announcement,omitempty"`
	Description  string                  `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

BgpAnnounceSetCreate is parameters for creating a named set of BGP announcements.

Required fields: - Announcement - Description - Name

type BgpAnnouncement added in v0.0.23

type BgpAnnouncement struct {
	// AddressLotBlockId is the address block the IP network being announced is drawn from.
	AddressLotBlockId string `json:"address_lot_block_id,omitempty" yaml:"address_lot_block_id,omitempty"`
	// AnnounceSetId is the id of the set this announcement is a part of.
	AnnounceSetId string `json:"announce_set_id,omitempty" yaml:"announce_set_id,omitempty"`
	// Network is the IP network being announced.
	Network IpNet `json:"network,omitempty" yaml:"network,omitempty"`
}

BgpAnnouncement is a BGP announcement tied to an address lot block.

Required fields: - AddressLotBlockId - AnnounceSetId - Network

type BgpAnnouncementCreate added in v0.0.23

type BgpAnnouncementCreate struct {
	// AddressLotBlock is address lot this announcement is drawn from.
	AddressLotBlock NameOrId `json:"address_lot_block,omitempty" yaml:"address_lot_block,omitempty"`
	// Network is the network being announced.
	Network IpNet `json:"network,omitempty" yaml:"network,omitempty"`
}

BgpAnnouncementCreate is a BGP announcement tied to a particular address lot block.

Required fields: - AddressLotBlock - Network

type BgpConfig added in v0.0.23

type BgpConfig struct {
	// Asn is the autonomous system number of this BGP configuration.
	Asn int `json:"asn,omitempty" yaml:"asn,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// Vrf is optional virtual routing and forwarding identifier for this BGP configuration.
	Vrf string `json:"vrf,omitempty" yaml:"vrf,omitempty"`
}

BgpConfig is a base BGP configuration.

Required fields: - Asn - Description - Id - Name - TimeCreated - TimeModified

type BgpConfigCreate added in v0.0.23

type BgpConfigCreate struct {
	// Asn is the autonomous system number of this BGP configuration.
	Asn              int      `json:"asn,omitempty" yaml:"asn,omitempty"`
	BgpAnnounceSetId NameOrId `json:"bgp_announce_set_id,omitempty" yaml:"bgp_announce_set_id,omitempty"`
	Description      string   `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Vrf is optional virtual routing and forwarding identifier for this BGP configuration.
	Vrf Name `json:"vrf,omitempty" yaml:"vrf,omitempty"`
}

BgpConfigCreate is parameters for creating a BGP configuration. This includes and autonomous system number (ASN) and a virtual routing and forwarding (VRF) identifier.

Required fields: - Asn - BgpAnnounceSetId - Description - Name

type BgpConfigResultsPage added in v0.0.23

type BgpConfigResultsPage struct {
	// Items is list of items on this page of results
	Items []BgpConfig `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

BgpConfigResultsPage is a single page of results

Required fields: - Items

type BgpExported added in v0.2.0

type BgpExported struct {
	// Exports is exported routes indexed by peer address.
	Exports map[string][]Ipv4Net `json:"exports,omitempty" yaml:"exports,omitempty"`
}

BgpExported is the current status of a BGP peer.

Required fields: - Exports

type BgpImportedRouteIpv4 added in v0.0.23

type BgpImportedRouteIpv4 struct {
	// Id is bGP identifier of the originating router.
	Id int `json:"id,omitempty" yaml:"id,omitempty"`
	// Nexthop is the nexthop the prefix is reachable through.
	Nexthop string `json:"nexthop,omitempty" yaml:"nexthop,omitempty"`
	// Prefix is the destination network prefix.
	Prefix Ipv4Net `json:"prefix,omitempty" yaml:"prefix,omitempty"`
	// Switch is switch the route is imported into.
	Switch SwitchLocation `json:"switch,omitempty" yaml:"switch,omitempty"`
}

BgpImportedRouteIpv4 is a route imported from a BGP peer.

Required fields: - Id - Nexthop - Prefix - Switch

type BgpMessageHistory added in v0.2.0

type BgpMessageHistory string

BgpMessageHistory is the type definition for a BgpMessageHistory.

type BgpPeer added in v0.0.23

type BgpPeer struct {
	// Addr is the address of the host to peer with.
	Addr string `json:"addr,omitempty" yaml:"addr,omitempty"`
	// AllowedExport is define export policy for a peer.
	AllowedExport ImportExportPolicy `json:"allowed_export,omitempty" yaml:"allowed_export,omitempty"`
	// AllowedImport is define import policy for a peer.
	AllowedImport ImportExportPolicy `json:"allowed_import,omitempty" yaml:"allowed_import,omitempty"`
	// BgpConfig is the global BGP configuration used for establishing a session with this peer.
	BgpConfig NameOrId `json:"bgp_config,omitempty" yaml:"bgp_config,omitempty"`
	// Communities is include the provided communities in updates sent to the peer.
	Communities []string `json:"communities,omitempty" yaml:"communities,omitempty"`
	// ConnectRetry is how long to to wait between TCP connection retries (seconds).
	ConnectRetry int `json:"connect_retry,omitempty" yaml:"connect_retry,omitempty"`
	// DelayOpen is how long to delay sending an open request after establishing a TCP session (seconds).
	DelayOpen int `json:"delay_open,omitempty" yaml:"delay_open,omitempty"`
	// EnforceFirstAs is enforce that the first AS in paths received from this peer is the peer's AS.
	EnforceFirstAs *bool `json:"enforce_first_as,omitempty" yaml:"enforce_first_as,omitempty"`
	// HoldTime is how long to hold peer connections between keepalives (seconds).
	HoldTime int `json:"hold_time,omitempty" yaml:"hold_time,omitempty"`
	// IdleHoldTime is how long to hold a peer in idle before attempting a new session (seconds).
	IdleHoldTime int `json:"idle_hold_time,omitempty" yaml:"idle_hold_time,omitempty"`
	// InterfaceName is the name of interface to peer on. This is relative to the port configuration this BGP
	// peer configuration is a part of. For example this value could be phy0 to refer to a primary physical interface.
	// Or it could be vlan47 to refer to a VLAN interface.
	InterfaceName string `json:"interface_name,omitempty" yaml:"interface_name,omitempty"`
	// Keepalive is how often to send keepalive requests (seconds).
	Keepalive int `json:"keepalive,omitempty" yaml:"keepalive,omitempty"`
	// LocalPref is apply a local preference to routes received from this peer.
	LocalPref int `json:"local_pref,omitempty" yaml:"local_pref,omitempty"`
	// Md5AuthKey is use the given key for TCP-MD5 authentication with the peer.
	Md5AuthKey string `json:"md5_auth_key,omitempty" yaml:"md5_auth_key,omitempty"`
	// MinTtl is require messages from a peer have a minimum IP time to live field.
	MinTtl int `json:"min_ttl,omitempty" yaml:"min_ttl,omitempty"`
	// MultiExitDiscriminator is apply the provided multi-exit discriminator (MED) updates sent to the peer.
	MultiExitDiscriminator int `json:"multi_exit_discriminator,omitempty" yaml:"multi_exit_discriminator,omitempty"`
	// RemoteAsn is require that a peer has a specified ASN.
	RemoteAsn int `json:"remote_asn,omitempty" yaml:"remote_asn,omitempty"`
	// VlanId is associate a VLAN ID with a peer.
	VlanId int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

BgpPeer is a BGP peer configuration for an interface. Includes the set of announcements that will be advertised to the peer identified by `addr`. The `bgp_config` parameter is a reference to global BGP parameters. The `interface_name` indicates what interface the peer should be contacted on.

Required fields: - Addr - AllowedExport - AllowedImport - BgpConfig - Communities - ConnectRetry - DelayOpen - EnforceFirstAs - HoldTime - IdleHoldTime - InterfaceName - Keepalive

type BgpPeerConfig added in v0.0.23

type BgpPeerConfig struct {
	Peers []BgpPeer `json:"peers,omitempty" yaml:"peers,omitempty"`
}

BgpPeerConfig is the type definition for a BgpPeerConfig.

Required fields: - Peers

type BgpPeerState added in v0.0.23

type BgpPeerState string

BgpPeerState is initial state. Refuse all incoming BGP connections. No resources allocated to peer.

const BgpPeerStateActive BgpPeerState = "active"

BgpPeerStateActive represents the BgpPeerState `"active"`.

const BgpPeerStateConnect BgpPeerState = "connect"

BgpPeerStateConnect represents the BgpPeerState `"connect"`.

const BgpPeerStateEstablished BgpPeerState = "established"

BgpPeerStateEstablished represents the BgpPeerState `"established"`.

const BgpPeerStateIdle BgpPeerState = "idle"

BgpPeerStateIdle represents the BgpPeerState `"idle"`.

const BgpPeerStateOpenConfirm BgpPeerState = "open_confirm"

BgpPeerStateOpenConfirm represents the BgpPeerState `"open_confirm"`.

const BgpPeerStateOpenSent BgpPeerState = "open_sent"

BgpPeerStateOpenSent represents the BgpPeerState `"open_sent"`.

const BgpPeerStateSessionSetup BgpPeerState = "session_setup"

BgpPeerStateSessionSetup represents the BgpPeerState `"session_setup"`.

type BgpPeerStatus added in v0.0.23

type BgpPeerStatus struct {
	// Addr is iP address of the peer.
	Addr string `json:"addr,omitempty" yaml:"addr,omitempty"`
	// LocalAsn is local autonomous system number.
	LocalAsn int `json:"local_asn,omitempty" yaml:"local_asn,omitempty"`
	// RemoteAsn is remote autonomous system number.
	RemoteAsn int `json:"remote_asn,omitempty" yaml:"remote_asn,omitempty"`
	// State is state of the peer.
	State BgpPeerState `json:"state,omitempty" yaml:"state,omitempty"`
	// StateDurationMillis is time of last state change.
	StateDurationMillis int `json:"state_duration_millis,omitempty" yaml:"state_duration_millis,omitempty"`
	// Switch is switch with the peer session.
	Switch SwitchLocation `json:"switch,omitempty" yaml:"switch,omitempty"`
}

BgpPeerStatus is the current status of a BGP peer.

Required fields: - Addr - LocalAsn - RemoteAsn - State - StateDurationMillis - Switch

type BinRangedouble

type BinRangedouble struct {
	// End is the type definition for a End.
	End float64 `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangedoubleType `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start float64 `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangedouble is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangedoubleRange

type BinRangedoubleRange struct {
	End   float64            `json:"end,omitempty" yaml:"end,omitempty"`
	Start float64            `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangedoubleType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangedoubleRange is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangedoubleRangeFrom

type BinRangedoubleRangeFrom struct {
	Start float64            `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangedoubleType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangedoubleRangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangedoubleRangeTo

type BinRangedoubleRangeTo struct {
	End  float64            `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangedoubleType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangedoubleRangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangedoubleType

type BinRangedoubleType string

BinRangedoubleType is the type definition for a BinRangedoubleType.

const BinRangedoubleTypeRange BinRangedoubleType = "range"

BinRangedoubleTypeRange represents the BinRangedoubleType `"range"`.

const BinRangedoubleTypeRangeFrom BinRangedoubleType = "range_from"

BinRangedoubleTypeRangeFrom represents the BinRangedoubleType `"range_from"`.

const BinRangedoubleTypeRangeTo BinRangedoubleType = "range_to"

BinRangedoubleTypeRangeTo represents the BinRangedoubleType `"range_to"`.

type BinRangefloat added in v0.0.23

type BinRangefloat struct {
	// End is the type definition for a End.
	End float64 `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangefloatType `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start float64 `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangefloat is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangefloatRange added in v0.0.23

type BinRangefloatRange struct {
	End   float64           `json:"end,omitempty" yaml:"end,omitempty"`
	Start float64           `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangefloatType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangefloatRange is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangefloatRangeFrom added in v0.0.23

type BinRangefloatRangeFrom struct {
	Start float64           `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangefloatType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangefloatRangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangefloatRangeTo added in v0.0.23

type BinRangefloatRangeTo struct {
	End  float64           `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangefloatType `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangefloatRangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangefloatType added in v0.0.23

type BinRangefloatType string

BinRangefloatType is the type definition for a BinRangefloatType.

const BinRangefloatTypeRange BinRangefloatType = "range"

BinRangefloatTypeRange represents the BinRangefloatType `"range"`.

const BinRangefloatTypeRangeFrom BinRangefloatType = "range_from"

BinRangefloatTypeRangeFrom represents the BinRangefloatType `"range_from"`.

const BinRangefloatTypeRangeTo BinRangefloatType = "range_to"

BinRangefloatTypeRangeTo represents the BinRangefloatType `"range_to"`.

type BinRangeint16 added in v0.0.23

type BinRangeint16 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeint16Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeint16 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeint16Range added in v0.0.23

type BinRangeint16Range struct {
	End   int               `json:"end,omitempty" yaml:"end,omitempty"`
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint16Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeint16RangeFrom added in v0.0.23

type BinRangeint16RangeFrom struct {
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint16RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeint16RangeTo added in v0.0.23

type BinRangeint16RangeTo struct {
	End  int               `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint16RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeint16Type added in v0.0.23

type BinRangeint16Type string

BinRangeint16Type is the type definition for a BinRangeint16Type.

const BinRangeint16TypeRange BinRangeint16Type = "range"

BinRangeint16TypeRange represents the BinRangeint16Type `"range"`.

const BinRangeint16TypeRangeFrom BinRangeint16Type = "range_from"

BinRangeint16TypeRangeFrom represents the BinRangeint16Type `"range_from"`.

const BinRangeint16TypeRangeTo BinRangeint16Type = "range_to"

BinRangeint16TypeRangeTo represents the BinRangeint16Type `"range_to"`.

type BinRangeint32 added in v0.0.23

type BinRangeint32 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeint32Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeint32 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeint32Range added in v0.0.23

type BinRangeint32Range struct {
	End   int               `json:"end,omitempty" yaml:"end,omitempty"`
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint32Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeint32RangeFrom added in v0.0.23

type BinRangeint32RangeFrom struct {
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint32RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeint32RangeTo added in v0.0.23

type BinRangeint32RangeTo struct {
	End  int               `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint32RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeint32Type added in v0.0.23

type BinRangeint32Type string

BinRangeint32Type is the type definition for a BinRangeint32Type.

const BinRangeint32TypeRange BinRangeint32Type = "range"

BinRangeint32TypeRange represents the BinRangeint32Type `"range"`.

const BinRangeint32TypeRangeFrom BinRangeint32Type = "range_from"

BinRangeint32TypeRangeFrom represents the BinRangeint32Type `"range_from"`.

const BinRangeint32TypeRangeTo BinRangeint32Type = "range_to"

BinRangeint32TypeRangeTo represents the BinRangeint32Type `"range_to"`.

type BinRangeint64

type BinRangeint64 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeint64Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeint64 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeint64Range

type BinRangeint64Range struct {
	End   int               `json:"end,omitempty" yaml:"end,omitempty"`
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint64Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeint64RangeFrom

type BinRangeint64RangeFrom struct {
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint64RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeint64RangeTo

type BinRangeint64RangeTo struct {
	End  int               `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint64RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeint64Type

type BinRangeint64Type string

BinRangeint64Type is the type definition for a BinRangeint64Type.

const BinRangeint64TypeRange BinRangeint64Type = "range"

BinRangeint64TypeRange represents the BinRangeint64Type `"range"`.

const BinRangeint64TypeRangeFrom BinRangeint64Type = "range_from"

BinRangeint64TypeRangeFrom represents the BinRangeint64Type `"range_from"`.

const BinRangeint64TypeRangeTo BinRangeint64Type = "range_to"

BinRangeint64TypeRangeTo represents the BinRangeint64Type `"range_to"`.

type BinRangeint8 added in v0.0.23

type BinRangeint8 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeint8Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeint8 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeint8Range added in v0.0.23

type BinRangeint8Range struct {
	End   int              `json:"end,omitempty" yaml:"end,omitempty"`
	Start int              `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint8Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeint8RangeFrom added in v0.0.23

type BinRangeint8RangeFrom struct {
	Start int              `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint8RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeint8RangeTo added in v0.0.23

type BinRangeint8RangeTo struct {
	End  int              `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeint8RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeint8Type added in v0.0.23

type BinRangeint8Type string

BinRangeint8Type is the type definition for a BinRangeint8Type.

const BinRangeint8TypeRange BinRangeint8Type = "range"

BinRangeint8TypeRange represents the BinRangeint8Type `"range"`.

const BinRangeint8TypeRangeFrom BinRangeint8Type = "range_from"

BinRangeint8TypeRangeFrom represents the BinRangeint8Type `"range_from"`.

const BinRangeint8TypeRangeTo BinRangeint8Type = "range_to"

BinRangeint8TypeRangeTo represents the BinRangeint8Type `"range_to"`.

type BinRangeuint16 added in v0.0.23

type BinRangeuint16 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeuint16Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeuint16 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeuint16Range added in v0.0.23

type BinRangeuint16Range struct {
	End   int                `json:"end,omitempty" yaml:"end,omitempty"`
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint16Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeuint16RangeFrom added in v0.0.23

type BinRangeuint16RangeFrom struct {
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint16RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeuint16RangeTo added in v0.0.23

type BinRangeuint16RangeTo struct {
	End  int                `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeuint16Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint16RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeuint16Type added in v0.0.23

type BinRangeuint16Type string

BinRangeuint16Type is the type definition for a BinRangeuint16Type.

const BinRangeuint16TypeRange BinRangeuint16Type = "range"

BinRangeuint16TypeRange represents the BinRangeuint16Type `"range"`.

const BinRangeuint16TypeRangeFrom BinRangeuint16Type = "range_from"

BinRangeuint16TypeRangeFrom represents the BinRangeuint16Type `"range_from"`.

const BinRangeuint16TypeRangeTo BinRangeuint16Type = "range_to"

BinRangeuint16TypeRangeTo represents the BinRangeuint16Type `"range_to"`.

type BinRangeuint32 added in v0.0.23

type BinRangeuint32 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeuint32Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeuint32 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeuint32Range added in v0.0.23

type BinRangeuint32Range struct {
	End   int                `json:"end,omitempty" yaml:"end,omitempty"`
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint32Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeuint32RangeFrom added in v0.0.23

type BinRangeuint32RangeFrom struct {
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint32RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeuint32RangeTo added in v0.0.23

type BinRangeuint32RangeTo struct {
	End  int                `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeuint32Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint32RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeuint32Type added in v0.0.23

type BinRangeuint32Type string

BinRangeuint32Type is the type definition for a BinRangeuint32Type.

const BinRangeuint32TypeRange BinRangeuint32Type = "range"

BinRangeuint32TypeRange represents the BinRangeuint32Type `"range"`.

const BinRangeuint32TypeRangeFrom BinRangeuint32Type = "range_from"

BinRangeuint32TypeRangeFrom represents the BinRangeuint32Type `"range_from"`.

const BinRangeuint32TypeRangeTo BinRangeuint32Type = "range_to"

BinRangeuint32TypeRangeTo represents the BinRangeuint32Type `"range_to"`.

type BinRangeuint64 added in v0.0.23

type BinRangeuint64 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeuint64Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeuint64 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeuint64Range added in v0.0.23

type BinRangeuint64Range struct {
	End   int                `json:"end,omitempty" yaml:"end,omitempty"`
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint64Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeuint64RangeFrom added in v0.0.23

type BinRangeuint64RangeFrom struct {
	Start int                `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint64RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeuint64RangeTo added in v0.0.23

type BinRangeuint64RangeTo struct {
	End  int                `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeuint64Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint64RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeuint64Type added in v0.0.23

type BinRangeuint64Type string

BinRangeuint64Type is the type definition for a BinRangeuint64Type.

const BinRangeuint64TypeRange BinRangeuint64Type = "range"

BinRangeuint64TypeRange represents the BinRangeuint64Type `"range"`.

const BinRangeuint64TypeRangeFrom BinRangeuint64Type = "range_from"

BinRangeuint64TypeRangeFrom represents the BinRangeuint64Type `"range_from"`.

const BinRangeuint64TypeRangeTo BinRangeuint64Type = "range_to"

BinRangeuint64TypeRangeTo represents the BinRangeuint64Type `"range_to"`.

type BinRangeuint8 added in v0.0.23

type BinRangeuint8 struct {
	// End is the type definition for a End.
	End int `json:"end,omitempty" yaml:"end,omitempty"`
	// Type is the type definition for a Type.
	Type BinRangeuint8Type `json:"type,omitempty" yaml:"type,omitempty"`
	// Start is the type definition for a Start.
	Start int `json:"start,omitempty" yaml:"start,omitempty"`
}

BinRangeuint8 is a type storing a range over `T`.

This type supports ranges similar to the `RangeTo`, `Range` and `RangeFrom` types in the standard library. Those cover `(..end)`, `(start..end)`, and `(start..)` respectively.

type BinRangeuint8Range added in v0.0.23

type BinRangeuint8Range struct {
	End   int               `json:"end,omitempty" yaml:"end,omitempty"`
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint8Range is a range bounded inclusively below and exclusively above, `start..end`.

Required fields: - End - Start - Type

type BinRangeuint8RangeFrom added in v0.0.23

type BinRangeuint8RangeFrom struct {
	Start int               `json:"start,omitempty" yaml:"start,omitempty"`
	Type  BinRangeuint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint8RangeFrom is a range bounded inclusively below and unbounded above, `start..`.

Required fields: - Start - Type

type BinRangeuint8RangeTo added in v0.0.23

type BinRangeuint8RangeTo struct {
	End  int               `json:"end,omitempty" yaml:"end,omitempty"`
	Type BinRangeuint8Type `json:"type,omitempty" yaml:"type,omitempty"`
}

BinRangeuint8RangeTo is a range unbounded below and exclusively above, `..end`.

Required fields: - End - Type

type BinRangeuint8Type added in v0.0.23

type BinRangeuint8Type string

BinRangeuint8Type is the type definition for a BinRangeuint8Type.

const BinRangeuint8TypeRange BinRangeuint8Type = "range"

BinRangeuint8TypeRange represents the BinRangeuint8Type `"range"`.

const BinRangeuint8TypeRangeFrom BinRangeuint8Type = "range_from"

BinRangeuint8TypeRangeFrom represents the BinRangeuint8Type `"range_from"`.

const BinRangeuint8TypeRangeTo BinRangeuint8Type = "range_to"

BinRangeuint8TypeRangeTo represents the BinRangeuint8Type `"range_to"`.

type Bindouble

type Bindouble struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangedouble `json:"range,omitempty" yaml:"range,omitempty"`
}

Bindouble is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binfloat added in v0.0.23

type Binfloat struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangefloat `json:"range,omitempty" yaml:"range,omitempty"`
}

Binfloat is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binint16 added in v0.0.23

type Binint16 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint16 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binint16 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binint32 added in v0.0.23

type Binint32 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint32 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binint32 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binint64

type Binint64 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint64 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binint64 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binint8 added in v0.0.23

type Binint8 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint8 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binint8 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binuint16 added in v0.0.23

type Binuint16 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint16 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binuint16 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binuint32 added in v0.0.23

type Binuint32 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint32 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binuint32 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binuint64 added in v0.0.23

type Binuint64 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint64 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binuint64 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type Binuint8 added in v0.0.23

type Binuint8 struct {
	// Count is the total count of samples in this bin.
	Count int `json:"count,omitempty" yaml:"count,omitempty"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint8 `json:"range,omitempty" yaml:"range,omitempty"`
}

Binuint8 is type storing bin edges and a count of samples within it.

Required fields: - Count - Range

type BlockSize

type BlockSize int

BlockSize is the type definition for a BlockSize.

type ByteCount

type ByteCount uint64

ByteCount is byte count to express memory or storage capacity.

type Certificate added in v0.0.23

type Certificate struct {
	// Cert is pEM-formatted string containing public certificate chain
	Cert string `json:"cert,omitempty" yaml:"cert,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Service is the service using this certificate
	Service ServiceUsingCertificate `json:"service,omitempty" yaml:"service,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Certificate is view of a Certificate

Required fields: - Cert - Description - Id - Name - Service - TimeCreated - TimeModified

type CertificateCreate added in v0.0.23

type CertificateCreate struct {
	// Cert is pEM-formatted string containing public certificate chain
	Cert        string `json:"cert,omitempty" yaml:"cert,omitempty"`
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Key is pEM-formatted string containing private key
	Key string `json:"key,omitempty" yaml:"key,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Service is the service using this certificate
	Service ServiceUsingCertificate `json:"service,omitempty" yaml:"service,omitempty"`
}

CertificateCreate is create-time parameters for a `Certificate`

Required fields: - Cert - Description - Key - Name - Service

type CertificateCreateParams added in v0.0.23

type CertificateCreateParams struct {
	Body *CertificateCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

CertificateCreateParams is the request parameters for CertificateCreate

Required fields: - Body

func (*CertificateCreateParams) Validate added in v0.0.23

func (p *CertificateCreateParams) Validate() error

Validate verifies all required fields for CertificateCreateParams are set

type CertificateDeleteParams added in v0.0.23

type CertificateDeleteParams struct {
	Certificate NameOrId `json:"certificate,omitempty" yaml:"certificate,omitempty"`
}

CertificateDeleteParams is the request parameters for CertificateDelete

Required fields: - Certificate

func (*CertificateDeleteParams) Validate added in v0.0.23

func (p *CertificateDeleteParams) Validate() error

Validate verifies all required fields for CertificateDeleteParams are set

type CertificateListParams added in v0.0.23

type CertificateListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

CertificateListParams is the request parameters for CertificateList

func (*CertificateListParams) Validate added in v0.0.23

func (p *CertificateListParams) Validate() error

Validate verifies all required fields for CertificateListParams are set

type CertificateResultsPage added in v0.0.23

type CertificateResultsPage struct {
	// Items is list of items on this page of results
	Items []Certificate `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

CertificateResultsPage is a single page of results

Required fields: - Items

type CertificateViewParams added in v0.0.23

type CertificateViewParams struct {
	Certificate NameOrId `json:"certificate,omitempty" yaml:"certificate,omitempty"`
}

CertificateViewParams is the request parameters for CertificateView

Required fields: - Certificate

func (*CertificateViewParams) Validate added in v0.0.23

func (p *CertificateViewParams) Validate() error

Validate verifies all required fields for CertificateViewParams are set

type Client

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

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(cfg *Config) (*Client, error)

NewClient creates a new client for the Oxide API. To authenticate with environment variables, set OXIDE_HOST and OXIDE_TOKEN accordingly. Pass in a non-nil *Config to set the various configuration options on a Client. When setting the host and token through the *Config, these will override any set environment variables. The Profile and UseDefaultProfile fields will pull authentication information from the credentials.toml file generated by the Oxide CLI. These are mutally exclusive with each other and the Host and Token fields.

func (*Client) CertificateCreate added in v0.0.23

func (c *Client) CertificateCreate(ctx context.Context, params CertificateCreateParams) (*Certificate, error)

CertificateCreate: Create new system-wide x.509 certificate This certificate is automatically used by the Oxide Control plane to serve external connections.

func (*Client) CertificateDelete added in v0.0.23

func (c *Client) CertificateDelete(ctx context.Context, params CertificateDeleteParams) error

CertificateDelete: Delete certificate Permanently delete a certificate. This operation cannot be undone.

func (*Client) CertificateList added in v0.0.23

func (c *Client) CertificateList(ctx context.Context, params CertificateListParams) (*CertificateResultsPage, error)

CertificateList: List certificates for external endpoints Returns a list of TLS certificates used for the external API (for the current Silo). These are sorted by creation date, with the most recent certificates appearing first.

To iterate over all pages, use the `CertificateListAllPages` method, instead.

func (*Client) CertificateListAllPages added in v0.0.23

func (c *Client) CertificateListAllPages(ctx context.Context, params CertificateListParams) ([]Certificate, error)

CertificateListAllPages: List certificates for external endpoints Returns a list of TLS certificates used for the external API (for the current Silo). These are sorted by creation date, with the most recent certificates appearing first.

This method is a wrapper around the `CertificateList` method. This method returns all the pages at once.

func (*Client) CertificateView added in v0.0.23

func (c *Client) CertificateView(ctx context.Context, params CertificateViewParams) (*Certificate, error)

CertificateView: Fetch certificate Returns the details of a specific certificate

func (*Client) CurrentUserGroups added in v0.0.23

func (c *Client) CurrentUserGroups(ctx context.Context, params CurrentUserGroupsParams) (*GroupResultsPage, error)

CurrentUserGroups: Fetch current user's groups

To iterate over all pages, use the `CurrentUserGroupsAllPages` method, instead.

func (*Client) CurrentUserGroupsAllPages added in v0.0.23

func (c *Client) CurrentUserGroupsAllPages(ctx context.Context, params CurrentUserGroupsParams) ([]Group, error)

CurrentUserGroupsAllPages: Fetch current user's groups

This method is a wrapper around the `CurrentUserGroups` method. This method returns all the pages at once.

func (*Client) CurrentUserSshKeyCreate added in v0.0.23

func (c *Client) CurrentUserSshKeyCreate(ctx context.Context, params CurrentUserSshKeyCreateParams) (*SshKey, error)

CurrentUserSshKeyCreate: Create SSH public key Create an SSH public key for the currently authenticated user.

func (*Client) CurrentUserSshKeyDelete added in v0.0.23

func (c *Client) CurrentUserSshKeyDelete(ctx context.Context, params CurrentUserSshKeyDeleteParams) error

CurrentUserSshKeyDelete: Delete SSH public key Delete an SSH public key associated with the currently authenticated user.

func (*Client) CurrentUserSshKeyList added in v0.0.23

func (c *Client) CurrentUserSshKeyList(ctx context.Context, params CurrentUserSshKeyListParams) (*SshKeyResultsPage, error)

CurrentUserSshKeyList: List SSH public keys Lists SSH public keys for the currently authenticated user.

To iterate over all pages, use the `CurrentUserSshKeyListAllPages` method, instead.

func (*Client) CurrentUserSshKeyListAllPages added in v0.0.23

func (c *Client) CurrentUserSshKeyListAllPages(ctx context.Context, params CurrentUserSshKeyListParams) ([]SshKey, error)

CurrentUserSshKeyListAllPages: List SSH public keys Lists SSH public keys for the currently authenticated user.

This method is a wrapper around the `CurrentUserSshKeyList` method. This method returns all the pages at once.

func (*Client) CurrentUserSshKeyView added in v0.0.23

func (c *Client) CurrentUserSshKeyView(ctx context.Context, params CurrentUserSshKeyViewParams) (*SshKey, error)

CurrentUserSshKeyView: Fetch SSH public key Fetch SSH public key associated with the currently authenticated user.

func (*Client) CurrentUserView added in v0.0.23

func (c *Client) CurrentUserView(ctx context.Context) (*CurrentUser, error)

CurrentUserView: Fetch user for current session

func (*Client) DiskBulkWriteImport added in v0.0.23

func (c *Client) DiskBulkWriteImport(ctx context.Context, params DiskBulkWriteImportParams) error

DiskBulkWriteImport: Import blocks into disk

func (*Client) DiskBulkWriteImportStart added in v0.0.23

func (c *Client) DiskBulkWriteImportStart(ctx context.Context, params DiskBulkWriteImportStartParams) error

DiskBulkWriteImportStart: Start importing blocks into disk Start the process of importing blocks into a disk

func (*Client) DiskBulkWriteImportStop added in v0.0.23

func (c *Client) DiskBulkWriteImportStop(ctx context.Context, params DiskBulkWriteImportStopParams) error

DiskBulkWriteImportStop: Stop importing blocks into disk Stop the process of importing blocks into a disk

func (*Client) DiskCreate

func (c *Client) DiskCreate(ctx context.Context, params DiskCreateParams) (*Disk, error)

DiskCreate: Create a disk

func (*Client) DiskDelete

func (c *Client) DiskDelete(ctx context.Context, params DiskDeleteParams) error

DiskDelete: Delete disk

func (*Client) DiskFinalizeImport added in v0.0.23

func (c *Client) DiskFinalizeImport(ctx context.Context, params DiskFinalizeImportParams) error

DiskFinalizeImport: Confirm disk block import completion

func (*Client) DiskList

func (c *Client) DiskList(ctx context.Context, params DiskListParams) (*DiskResultsPage, error)

DiskList: List disks

To iterate over all pages, use the `DiskListAllPages` method, instead.

func (*Client) DiskListAllPages

func (c *Client) DiskListAllPages(ctx context.Context, params DiskListParams) ([]Disk, error)

DiskListAllPages: List disks

This method is a wrapper around the `DiskList` method. This method returns all the pages at once.

func (*Client) DiskMetricsList

func (c *Client) DiskMetricsList(ctx context.Context, params DiskMetricsListParams) (*MeasurementResultsPage, error)

DiskMetricsList: Fetch disk metrics

To iterate over all pages, use the `DiskMetricsListAllPages` method, instead.

func (*Client) DiskMetricsListAllPages

func (c *Client) DiskMetricsListAllPages(ctx context.Context, params DiskMetricsListParams) ([]Measurement, error)

DiskMetricsListAllPages: Fetch disk metrics

This method is a wrapper around the `DiskMetricsList` method. This method returns all the pages at once.

func (*Client) DiskView

func (c *Client) DiskView(ctx context.Context, params DiskViewParams) (*Disk, error)

DiskView: Fetch disk

func (*Client) FloatingIpAttach added in v0.2.0

func (c *Client) FloatingIpAttach(ctx context.Context, params FloatingIpAttachParams) (*FloatingIp, error)

FloatingIpAttach: Attach floating IP Attach floating IP to an instance or other resource.

func (*Client) FloatingIpCreate added in v0.0.23

func (c *Client) FloatingIpCreate(ctx context.Context, params FloatingIpCreateParams) (*FloatingIp, error)

FloatingIpCreate: Create floating IP

func (*Client) FloatingIpDelete added in v0.0.23

func (c *Client) FloatingIpDelete(ctx context.Context, params FloatingIpDeleteParams) error

FloatingIpDelete: Delete floating IP

func (*Client) FloatingIpDetach added in v0.2.0

func (c *Client) FloatingIpDetach(ctx context.Context, params FloatingIpDetachParams) (*FloatingIp, error)

FloatingIpDetach: Detach floating IP

func (*Client) FloatingIpList added in v0.0.23

func (c *Client) FloatingIpList(ctx context.Context, params FloatingIpListParams) (*FloatingIpResultsPage, error)

FloatingIpList: List floating IPs

To iterate over all pages, use the `FloatingIpListAllPages` method, instead.

func (*Client) FloatingIpListAllPages added in v0.0.23

func (c *Client) FloatingIpListAllPages(ctx context.Context, params FloatingIpListParams) ([]FloatingIp, error)

FloatingIpListAllPages: List floating IPs

This method is a wrapper around the `FloatingIpList` method. This method returns all the pages at once.

func (*Client) FloatingIpUpdate added in v0.2.0

func (c *Client) FloatingIpUpdate(ctx context.Context, params FloatingIpUpdateParams) (*FloatingIp, error)

FloatingIpUpdate: Update floating IP

func (*Client) FloatingIpView added in v0.0.23

func (c *Client) FloatingIpView(ctx context.Context, params FloatingIpViewParams) (*FloatingIp, error)

FloatingIpView: Fetch floating IP

func (*Client) GroupList added in v0.0.23

func (c *Client) GroupList(ctx context.Context, params GroupListParams) (*GroupResultsPage, error)

GroupList: List groups

To iterate over all pages, use the `GroupListAllPages` method, instead.

func (*Client) GroupListAllPages added in v0.0.23

func (c *Client) GroupListAllPages(ctx context.Context, params GroupListParams) ([]Group, error)

GroupListAllPages: List groups

This method is a wrapper around the `GroupList` method. This method returns all the pages at once.

func (*Client) GroupView added in v0.0.23

func (c *Client) GroupView(ctx context.Context, params GroupViewParams) (*Group, error)

GroupView: Fetch group

func (*Client) ImageCreate

func (c *Client) ImageCreate(ctx context.Context, params ImageCreateParams) (*Image, error)

ImageCreate: Create image Create a new image in a project.

func (*Client) ImageDelete

func (c *Client) ImageDelete(ctx context.Context, params ImageDeleteParams) error

ImageDelete: Delete image Permanently delete an image from a project. This operation cannot be undone. Any instances in the project using the image will continue to run, however new instances can not be created with this image.

func (*Client) ImageDemote added in v0.0.23

func (c *Client) ImageDemote(ctx context.Context, params ImageDemoteParams) (*Image, error)

ImageDemote: Demote silo image Demote silo image to be visible only to a specified project

func (*Client) ImageList

func (c *Client) ImageList(ctx context.Context, params ImageListParams) (*ImageResultsPage, error)

ImageList: List images List images which are global or scoped to the specified project. The images are returned sorted by creation date, with the most recent images appearing first.

To iterate over all pages, use the `ImageListAllPages` method, instead.

func (*Client) ImageListAllPages

func (c *Client) ImageListAllPages(ctx context.Context, params ImageListParams) ([]Image, error)

ImageListAllPages: List images List images which are global or scoped to the specified project. The images are returned sorted by creation date, with the most recent images appearing first.

This method is a wrapper around the `ImageList` method. This method returns all the pages at once.

func (*Client) ImagePromote added in v0.0.23

func (c *Client) ImagePromote(ctx context.Context, params ImagePromoteParams) (*Image, error)

ImagePromote: Promote project image Promote project image to be visible to all projects in the silo

func (*Client) ImageView

func (c *Client) ImageView(ctx context.Context, params ImageViewParams) (*Image, error)

ImageView: Fetch image Fetch the details for a specific image in a project.

func (*Client) InstanceCreate

func (c *Client) InstanceCreate(ctx context.Context, params InstanceCreateParams) (*Instance, error)

InstanceCreate: Create instance

func (*Client) InstanceDelete

func (c *Client) InstanceDelete(ctx context.Context, params InstanceDeleteParams) error

InstanceDelete: Delete instance

func (*Client) InstanceDiskAttach

func (c *Client) InstanceDiskAttach(ctx context.Context, params InstanceDiskAttachParams) (*Disk, error)

InstanceDiskAttach: Attach disk to instance

func (*Client) InstanceDiskDetach

func (c *Client) InstanceDiskDetach(ctx context.Context, params InstanceDiskDetachParams) (*Disk, error)

InstanceDiskDetach: Detach disk from instance

func (*Client) InstanceDiskList

func (c *Client) InstanceDiskList(ctx context.Context, params InstanceDiskListParams) (*DiskResultsPage, error)

InstanceDiskList: List disks for instance

To iterate over all pages, use the `InstanceDiskListAllPages` method, instead.

func (*Client) InstanceDiskListAllPages

func (c *Client) InstanceDiskListAllPages(ctx context.Context, params InstanceDiskListParams) ([]Disk, error)

InstanceDiskListAllPages: List disks for instance

This method is a wrapper around the `InstanceDiskList` method. This method returns all the pages at once.

func (*Client) InstanceEphemeralIpAttach added in v0.2.0

func (c *Client) InstanceEphemeralIpAttach(ctx context.Context, params InstanceEphemeralIpAttachParams) (*ExternalIp, error)

InstanceEphemeralIpAttach: Allocate and attach ephemeral IP to instance

func (*Client) InstanceEphemeralIpDetach added in v0.2.0

func (c *Client) InstanceEphemeralIpDetach(ctx context.Context, params InstanceEphemeralIpDetachParams) error

InstanceEphemeralIpDetach: Detach and deallocate ephemeral IP from instance

func (*Client) InstanceExternalIpList

func (c *Client) InstanceExternalIpList(ctx context.Context, params InstanceExternalIpListParams) (*ExternalIpResultsPage, error)

InstanceExternalIpList: List external IP addresses

func (*Client) InstanceList

func (c *Client) InstanceList(ctx context.Context, params InstanceListParams) (*InstanceResultsPage, error)

InstanceList: List instances

To iterate over all pages, use the `InstanceListAllPages` method, instead.

func (*Client) InstanceListAllPages

func (c *Client) InstanceListAllPages(ctx context.Context, params InstanceListParams) ([]Instance, error)

InstanceListAllPages: List instances

This method is a wrapper around the `InstanceList` method. This method returns all the pages at once.

func (*Client) InstanceNetworkInterfaceCreate

func (c *Client) InstanceNetworkInterfaceCreate(ctx context.Context, params InstanceNetworkInterfaceCreateParams) (*InstanceNetworkInterface, error)

InstanceNetworkInterfaceCreate: Create network interface

func (*Client) InstanceNetworkInterfaceDelete

func (c *Client) InstanceNetworkInterfaceDelete(ctx context.Context, params InstanceNetworkInterfaceDeleteParams) error

InstanceNetworkInterfaceDelete: Delete network interface Note that the primary interface for an instance cannot be deleted if there are any secondary interfaces. A new primary interface must be designated first. The primary interface can be deleted if there are no secondary interfaces.

func (*Client) InstanceNetworkInterfaceList

func (c *Client) InstanceNetworkInterfaceList(ctx context.Context, params InstanceNetworkInterfaceListParams) (*InstanceNetworkInterfaceResultsPage, error)

InstanceNetworkInterfaceList: List network interfaces

To iterate over all pages, use the `InstanceNetworkInterfaceListAllPages` method, instead.

func (*Client) InstanceNetworkInterfaceListAllPages

func (c *Client) InstanceNetworkInterfaceListAllPages(ctx context.Context, params InstanceNetworkInterfaceListParams) ([]InstanceNetworkInterface, error)

InstanceNetworkInterfaceListAllPages: List network interfaces

This method is a wrapper around the `InstanceNetworkInterfaceList` method. This method returns all the pages at once.

func (*Client) InstanceNetworkInterfaceUpdate

func (c *Client) InstanceNetworkInterfaceUpdate(ctx context.Context, params InstanceNetworkInterfaceUpdateParams) (*InstanceNetworkInterface, error)

InstanceNetworkInterfaceUpdate: Update network interface

func (*Client) InstanceNetworkInterfaceView

func (c *Client) InstanceNetworkInterfaceView(ctx context.Context, params InstanceNetworkInterfaceViewParams) (*InstanceNetworkInterface, error)

InstanceNetworkInterfaceView: Fetch network interface

func (*Client) InstanceReboot

func (c *Client) InstanceReboot(ctx context.Context, params InstanceRebootParams) (*Instance, error)

InstanceReboot: Reboot an instance

func (*Client) InstanceSerialConsole

func (c *Client) InstanceSerialConsole(ctx context.Context, params InstanceSerialConsoleParams) (*InstanceSerialConsoleData, error)

InstanceSerialConsole: Fetch instance serial console

func (*Client) InstanceSerialConsoleStream added in v0.0.23

func (c *Client) InstanceSerialConsoleStream(ctx context.Context, params InstanceSerialConsoleStreamParams) error

InstanceSerialConsoleStream: Stream instance serial console

func (*Client) InstanceSshPublicKeyList added in v0.2.0

func (c *Client) InstanceSshPublicKeyList(ctx context.Context, params InstanceSshPublicKeyListParams) (*SshKeyResultsPage, error)

InstanceSshPublicKeyList: List SSH public keys for instance List SSH public keys injected via cloud-init during instance creation. Note that this list is a snapshot in time and will not reflect updates made after the instance is created.

To iterate over all pages, use the `InstanceSshPublicKeyListAllPages` method, instead.

func (*Client) InstanceSshPublicKeyListAllPages added in v0.2.0

func (c *Client) InstanceSshPublicKeyListAllPages(ctx context.Context, params InstanceSshPublicKeyListParams) ([]SshKey, error)

InstanceSshPublicKeyListAllPages: List SSH public keys for instance List SSH public keys injected via cloud-init during instance creation. Note that this list is a snapshot in time and will not reflect updates made after the instance is created.

This method is a wrapper around the `InstanceSshPublicKeyList` method. This method returns all the pages at once.

func (*Client) InstanceStart

func (c *Client) InstanceStart(ctx context.Context, params InstanceStartParams) (*Instance, error)

InstanceStart: Boot instance

func (*Client) InstanceStop

func (c *Client) InstanceStop(ctx context.Context, params InstanceStopParams) (*Instance, error)

InstanceStop: Stop instance

func (*Client) InstanceUpdate added in v0.2.0

func (c *Client) InstanceUpdate(ctx context.Context, params InstanceUpdateParams) (*Instance, error)

InstanceUpdate: Update instance

func (*Client) InstanceView

func (c *Client) InstanceView(ctx context.Context, params InstanceViewParams) (*Instance, error)

InstanceView: Fetch instance

func (*Client) InternetGatewayCreate added in v0.2.0

func (c *Client) InternetGatewayCreate(ctx context.Context, params InternetGatewayCreateParams) (*InternetGateway, error)

InternetGatewayCreate: Create VPC internet gateway

func (*Client) InternetGatewayDelete added in v0.2.0

func (c *Client) InternetGatewayDelete(ctx context.Context, params InternetGatewayDeleteParams) error

InternetGatewayDelete: Delete internet gateway

func (*Client) InternetGatewayIpAddressCreate added in v0.2.0

func (c *Client) InternetGatewayIpAddressCreate(ctx context.Context, params InternetGatewayIpAddressCreateParams) (*InternetGatewayIpAddress, error)

InternetGatewayIpAddressCreate: Attach IP address to internet gateway

func (*Client) InternetGatewayIpAddressDelete added in v0.2.0

func (c *Client) InternetGatewayIpAddressDelete(ctx context.Context, params InternetGatewayIpAddressDeleteParams) error

InternetGatewayIpAddressDelete: Detach IP address from internet gateway

func (*Client) InternetGatewayIpAddressList added in v0.2.0

func (c *Client) InternetGatewayIpAddressList(ctx context.Context, params InternetGatewayIpAddressListParams) (*InternetGatewayIpAddressResultsPage, error)

InternetGatewayIpAddressList: List IP addresses attached to internet gateway

To iterate over all pages, use the `InternetGatewayIpAddressListAllPages` method, instead.

func (*Client) InternetGatewayIpAddressListAllPages added in v0.2.0

func (c *Client) InternetGatewayIpAddressListAllPages(ctx context.Context, params InternetGatewayIpAddressListParams) ([]InternetGatewayIpAddress, error)

InternetGatewayIpAddressListAllPages: List IP addresses attached to internet gateway

This method is a wrapper around the `InternetGatewayIpAddressList` method. This method returns all the pages at once.

func (*Client) InternetGatewayIpPoolCreate added in v0.2.0

func (c *Client) InternetGatewayIpPoolCreate(ctx context.Context, params InternetGatewayIpPoolCreateParams) (*InternetGatewayIpPool, error)

InternetGatewayIpPoolCreate: Attach IP pool to internet gateway

func (*Client) InternetGatewayIpPoolDelete added in v0.2.0

func (c *Client) InternetGatewayIpPoolDelete(ctx context.Context, params InternetGatewayIpPoolDeleteParams) error

InternetGatewayIpPoolDelete: Detach IP pool from internet gateway

func (*Client) InternetGatewayIpPoolList added in v0.2.0

func (c *Client) InternetGatewayIpPoolList(ctx context.Context, params InternetGatewayIpPoolListParams) (*InternetGatewayIpPoolResultsPage, error)

InternetGatewayIpPoolList: List IP pools attached to internet gateway

To iterate over all pages, use the `InternetGatewayIpPoolListAllPages` method, instead.

func (*Client) InternetGatewayIpPoolListAllPages added in v0.2.0

func (c *Client) InternetGatewayIpPoolListAllPages(ctx context.Context, params InternetGatewayIpPoolListParams) ([]InternetGatewayIpPool, error)

InternetGatewayIpPoolListAllPages: List IP pools attached to internet gateway

This method is a wrapper around the `InternetGatewayIpPoolList` method. This method returns all the pages at once.

func (*Client) InternetGatewayList added in v0.2.0

func (c *Client) InternetGatewayList(ctx context.Context, params InternetGatewayListParams) (*InternetGatewayResultsPage, error)

InternetGatewayList: List internet gateways

To iterate over all pages, use the `InternetGatewayListAllPages` method, instead.

func (*Client) InternetGatewayListAllPages added in v0.2.0

func (c *Client) InternetGatewayListAllPages(ctx context.Context, params InternetGatewayListParams) ([]InternetGateway, error)

InternetGatewayListAllPages: List internet gateways

This method is a wrapper around the `InternetGatewayList` method. This method returns all the pages at once.

func (*Client) InternetGatewayView added in v0.2.0

func (c *Client) InternetGatewayView(ctx context.Context, params InternetGatewayViewParams) (*InternetGateway, error)

InternetGatewayView: Fetch internet gateway

func (*Client) IpPoolCreate

func (c *Client) IpPoolCreate(ctx context.Context, params IpPoolCreateParams) (*IpPool, error)

IpPoolCreate: Create IP pool

func (*Client) IpPoolDelete

func (c *Client) IpPoolDelete(ctx context.Context, params IpPoolDeleteParams) error

IpPoolDelete: Delete IP pool

func (*Client) IpPoolList

func (c *Client) IpPoolList(ctx context.Context, params IpPoolListParams) (*IpPoolResultsPage, error)

IpPoolList: List IP pools

To iterate over all pages, use the `IpPoolListAllPages` method, instead.

func (*Client) IpPoolListAllPages

func (c *Client) IpPoolListAllPages(ctx context.Context, params IpPoolListParams) ([]IpPool, error)

IpPoolListAllPages: List IP pools

This method is a wrapper around the `IpPoolList` method. This method returns all the pages at once.

func (*Client) IpPoolRangeAdd

func (c *Client) IpPoolRangeAdd(ctx context.Context, params IpPoolRangeAddParams) (*IpPoolRange, error)

IpPoolRangeAdd: Add range to IP pool IPv6 ranges are not allowed yet.

func (*Client) IpPoolRangeList

func (c *Client) IpPoolRangeList(ctx context.Context, params IpPoolRangeListParams) (*IpPoolRangeResultsPage, error)

IpPoolRangeList: List ranges for IP pool Ranges are ordered by their first address.

To iterate over all pages, use the `IpPoolRangeListAllPages` method, instead.

func (*Client) IpPoolRangeListAllPages

func (c *Client) IpPoolRangeListAllPages(ctx context.Context, params IpPoolRangeListParams) ([]IpPoolRange, error)

IpPoolRangeListAllPages: List ranges for IP pool Ranges are ordered by their first address.

This method is a wrapper around the `IpPoolRangeList` method. This method returns all the pages at once.

func (*Client) IpPoolRangeRemove

func (c *Client) IpPoolRangeRemove(ctx context.Context, params IpPoolRangeRemoveParams) error

IpPoolRangeRemove: Remove range from IP pool

func (*Client) IpPoolServiceRangeAdd

func (c *Client) IpPoolServiceRangeAdd(ctx context.Context, params IpPoolServiceRangeAddParams) (*IpPoolRange, error)

IpPoolServiceRangeAdd: Add IP range to Oxide service pool IPv6 ranges are not allowed yet.

func (*Client) IpPoolServiceRangeList

func (c *Client) IpPoolServiceRangeList(ctx context.Context, params IpPoolServiceRangeListParams) (*IpPoolRangeResultsPage, error)

IpPoolServiceRangeList: List IP ranges for the Oxide service pool Ranges are ordered by their first address.

To iterate over all pages, use the `IpPoolServiceRangeListAllPages` method, instead.

func (*Client) IpPoolServiceRangeListAllPages

func (c *Client) IpPoolServiceRangeListAllPages(ctx context.Context, params IpPoolServiceRangeListParams) ([]IpPoolRange, error)

IpPoolServiceRangeListAllPages: List IP ranges for the Oxide service pool Ranges are ordered by their first address.

This method is a wrapper around the `IpPoolServiceRangeList` method. This method returns all the pages at once.

func (*Client) IpPoolServiceRangeRemove

func (c *Client) IpPoolServiceRangeRemove(ctx context.Context, params IpPoolServiceRangeRemoveParams) error

IpPoolServiceRangeRemove: Remove IP range from Oxide service pool

func (*Client) IpPoolServiceView

func (c *Client) IpPoolServiceView(ctx context.Context) (*IpPool, error)

IpPoolServiceView: Fetch Oxide service IP pool

func (c *Client) IpPoolSiloLink(ctx context.Context, params IpPoolSiloLinkParams) (*IpPoolSiloLink, error)

IpPoolSiloLink: Link IP pool to silo Users in linked silos can allocate external IPs from this pool for their instances. A silo can have at most one default pool. IPs are allocated from the default pool when users ask for one without specifying a pool.

func (*Client) IpPoolSiloList added in v0.2.0

func (c *Client) IpPoolSiloList(ctx context.Context, params IpPoolSiloListParams) (*IpPoolSiloLinkResultsPage, error)

IpPoolSiloList: List IP pool's linked silos

To iterate over all pages, use the `IpPoolSiloListAllPages` method, instead.

func (*Client) IpPoolSiloListAllPages added in v0.2.0

func (c *Client) IpPoolSiloListAllPages(ctx context.Context, params IpPoolSiloListParams) ([]IpPoolSiloLink, error)

IpPoolSiloListAllPages: List IP pool's linked silos

This method is a wrapper around the `IpPoolSiloList` method. This method returns all the pages at once.

func (c *Client) IpPoolSiloUnlink(ctx context.Context, params IpPoolSiloUnlinkParams) error

IpPoolSiloUnlink: Unlink IP pool from silo Will fail if there are any outstanding IPs allocated in the silo.

func (*Client) IpPoolSiloUpdate added in v0.2.0

func (c *Client) IpPoolSiloUpdate(ctx context.Context, params IpPoolSiloUpdateParams) (*IpPoolSiloLink, error)

IpPoolSiloUpdate: Make IP pool default for silo When a user asks for an IP (e.g., at instance create time) without specifying a pool, the IP comes from the default pool if a default is configured. When a pool is made the default for a silo, any existing default will remain linked to the silo, but will no longer be the default.

func (*Client) IpPoolUpdate

func (c *Client) IpPoolUpdate(ctx context.Context, params IpPoolUpdateParams) (*IpPool, error)

IpPoolUpdate: Update IP pool

func (*Client) IpPoolUtilizationView added in v0.2.0

func (c *Client) IpPoolUtilizationView(ctx context.Context, params IpPoolUtilizationViewParams) (*IpPoolUtilization, error)

IpPoolUtilizationView: Fetch IP pool utilization

func (*Client) IpPoolView

func (c *Client) IpPoolView(ctx context.Context, params IpPoolViewParams) (*IpPool, error)

IpPoolView: Fetch IP pool

func (*Client) LocalIdpUserCreate added in v0.0.23

func (c *Client) LocalIdpUserCreate(ctx context.Context, params LocalIdpUserCreateParams) (*User, error)

LocalIdpUserCreate: Create user Users can only be created in Silos with `provision_type` == `Fixed`. Otherwise, Silo users are just-in-time (JIT) provisioned when a user first logs in using an external Identity Provider.

func (*Client) LocalIdpUserDelete added in v0.0.23

func (c *Client) LocalIdpUserDelete(ctx context.Context, params LocalIdpUserDeleteParams) error

LocalIdpUserDelete: Delete user

func (*Client) LocalIdpUserSetPassword added in v0.0.23

func (c *Client) LocalIdpUserSetPassword(ctx context.Context, params LocalIdpUserSetPasswordParams) error

LocalIdpUserSetPassword: Set or invalidate user's password Passwords can only be updated for users in Silos with identity mode `LocalOnly`.

func (*Client) LoginLocal added in v0.0.23

func (c *Client) LoginLocal(ctx context.Context, params LoginLocalParams) error

LoginLocal: Authenticate a user via username and password

func (*Client) LoginSaml added in v0.0.23

func (c *Client) LoginSaml(ctx context.Context, params LoginSamlParams) error

LoginSaml: Authenticate a user via SAML

func (*Client) NetworkingAddressLotBlockList added in v0.0.23

func (c *Client) NetworkingAddressLotBlockList(ctx context.Context, params NetworkingAddressLotBlockListParams) (*AddressLotBlockResultsPage, error)

NetworkingAddressLotBlockList: List blocks in address lot

To iterate over all pages, use the `NetworkingAddressLotBlockListAllPages` method, instead.

func (*Client) NetworkingAddressLotBlockListAllPages added in v0.0.23

func (c *Client) NetworkingAddressLotBlockListAllPages(ctx context.Context, params NetworkingAddressLotBlockListParams) ([]AddressLotBlock, error)

NetworkingAddressLotBlockListAllPages: List blocks in address lot

This method is a wrapper around the `NetworkingAddressLotBlockList` method. This method returns all the pages at once.

func (*Client) NetworkingAddressLotCreate added in v0.0.23

func (c *Client) NetworkingAddressLotCreate(ctx context.Context, params NetworkingAddressLotCreateParams) (*AddressLotCreateResponse, error)

NetworkingAddressLotCreate: Create address lot

func (*Client) NetworkingAddressLotDelete added in v0.0.23

func (c *Client) NetworkingAddressLotDelete(ctx context.Context, params NetworkingAddressLotDeleteParams) error

NetworkingAddressLotDelete: Delete address lot

func (*Client) NetworkingAddressLotList added in v0.0.23

func (c *Client) NetworkingAddressLotList(ctx context.Context, params NetworkingAddressLotListParams) (*AddressLotResultsPage, error)

NetworkingAddressLotList: List address lots

To iterate over all pages, use the `NetworkingAddressLotListAllPages` method, instead.

func (*Client) NetworkingAddressLotListAllPages added in v0.0.23

func (c *Client) NetworkingAddressLotListAllPages(ctx context.Context, params NetworkingAddressLotListParams) ([]AddressLot, error)

NetworkingAddressLotListAllPages: List address lots

This method is a wrapper around the `NetworkingAddressLotList` method. This method returns all the pages at once.

func (*Client) NetworkingAllowListUpdate added in v0.2.0

func (c *Client) NetworkingAllowListUpdate(ctx context.Context, params NetworkingAllowListUpdateParams) (*AllowList, error)

NetworkingAllowListUpdate: Update user-facing services IP allowlist

func (*Client) NetworkingAllowListView added in v0.2.0

func (c *Client) NetworkingAllowListView(ctx context.Context) (*AllowList, error)

NetworkingAllowListView: Get user-facing services IP allowlist

func (*Client) NetworkingBfdDisable added in v0.2.0

func (c *Client) NetworkingBfdDisable(ctx context.Context, params NetworkingBfdDisableParams) error

NetworkingBfdDisable: Disable a BFD session

func (*Client) NetworkingBfdEnable added in v0.2.0

func (c *Client) NetworkingBfdEnable(ctx context.Context, params NetworkingBfdEnableParams) error

NetworkingBfdEnable: Enable a BFD session

func (*Client) NetworkingBfdStatus added in v0.2.0

func (c *Client) NetworkingBfdStatus(ctx context.Context) (*[]BfdStatus, error)

NetworkingBfdStatus: Get BFD status

func (*Client) NetworkingBgpAnnounceSetDelete added in v0.0.23

func (c *Client) NetworkingBgpAnnounceSetDelete(ctx context.Context, params NetworkingBgpAnnounceSetDeleteParams) error

NetworkingBgpAnnounceSetDelete: Delete BGP announce set

func (*Client) NetworkingBgpAnnounceSetList added in v0.0.23

func (c *Client) NetworkingBgpAnnounceSetList(ctx context.Context, params NetworkingBgpAnnounceSetListParams) (*[]BgpAnnounceSet, error)

NetworkingBgpAnnounceSetList: List BGP announce sets

To iterate over all pages, use the `NetworkingBgpAnnounceSetListAllPages` method, instead.

func (*Client) NetworkingBgpAnnounceSetUpdate added in v0.2.0

func (c *Client) NetworkingBgpAnnounceSetUpdate(ctx context.Context, params NetworkingBgpAnnounceSetUpdateParams) (*BgpAnnounceSet, error)

NetworkingBgpAnnounceSetUpdate: Update BGP announce set If the announce set exists, this endpoint replaces the existing announce set with the one specified.

func (*Client) NetworkingBgpAnnouncementList added in v0.2.0

func (c *Client) NetworkingBgpAnnouncementList(ctx context.Context, params NetworkingBgpAnnouncementListParams) (*[]BgpAnnouncement, error)

NetworkingBgpAnnouncementList: Get originated routes for a specified BGP announce set

func (*Client) NetworkingBgpConfigCreate added in v0.0.23

func (c *Client) NetworkingBgpConfigCreate(ctx context.Context, params NetworkingBgpConfigCreateParams) (*BgpConfig, error)

NetworkingBgpConfigCreate: Create new BGP configuration

func (*Client) NetworkingBgpConfigDelete added in v0.0.23

func (c *Client) NetworkingBgpConfigDelete(ctx context.Context, params NetworkingBgpConfigDeleteParams) error

NetworkingBgpConfigDelete: Delete BGP configuration

func (*Client) NetworkingBgpConfigList added in v0.0.23

func (c *Client) NetworkingBgpConfigList(ctx context.Context, params NetworkingBgpConfigListParams) (*BgpConfigResultsPage, error)

NetworkingBgpConfigList: List BGP configurations

To iterate over all pages, use the `NetworkingBgpConfigListAllPages` method, instead.

func (*Client) NetworkingBgpConfigListAllPages added in v0.0.23

func (c *Client) NetworkingBgpConfigListAllPages(ctx context.Context, params NetworkingBgpConfigListParams) ([]BgpConfig, error)

NetworkingBgpConfigListAllPages: List BGP configurations

This method is a wrapper around the `NetworkingBgpConfigList` method. This method returns all the pages at once.

func (*Client) NetworkingBgpExported added in v0.2.0

func (c *Client) NetworkingBgpExported(ctx context.Context) (*BgpExported, error)

NetworkingBgpExported: Get BGP exported routes

func (*Client) NetworkingBgpImportedRoutesIpv4 added in v0.0.23

func (c *Client) NetworkingBgpImportedRoutesIpv4(ctx context.Context, params NetworkingBgpImportedRoutesIpv4Params) (*[]BgpImportedRouteIpv4, error)

NetworkingBgpImportedRoutesIpv4: Get imported IPv4 BGP routes

func (*Client) NetworkingBgpMessageHistory added in v0.2.0

func (c *Client) NetworkingBgpMessageHistory(ctx context.Context, params NetworkingBgpMessageHistoryParams) (*AggregateBgpMessageHistory, error)

NetworkingBgpMessageHistory: Get BGP router message history

func (*Client) NetworkingBgpStatus added in v0.0.23

func (c *Client) NetworkingBgpStatus(ctx context.Context) (*[]BgpPeerStatus, error)

NetworkingBgpStatus: Get BGP peer status

func (*Client) NetworkingLoopbackAddressCreate added in v0.0.23

func (c *Client) NetworkingLoopbackAddressCreate(ctx context.Context, params NetworkingLoopbackAddressCreateParams) (*LoopbackAddress, error)

NetworkingLoopbackAddressCreate: Create loopback address

func (*Client) NetworkingLoopbackAddressDelete added in v0.0.23

func (c *Client) NetworkingLoopbackAddressDelete(ctx context.Context, params NetworkingLoopbackAddressDeleteParams) error

NetworkingLoopbackAddressDelete: Delete loopback address

func (*Client) NetworkingLoopbackAddressList added in v0.0.23

func (c *Client) NetworkingLoopbackAddressList(ctx context.Context, params NetworkingLoopbackAddressListParams) (*LoopbackAddressResultsPage, error)

NetworkingLoopbackAddressList: List loopback addresses

To iterate over all pages, use the `NetworkingLoopbackAddressListAllPages` method, instead.

func (*Client) NetworkingLoopbackAddressListAllPages added in v0.0.23

func (c *Client) NetworkingLoopbackAddressListAllPages(ctx context.Context, params NetworkingLoopbackAddressListParams) ([]LoopbackAddress, error)

NetworkingLoopbackAddressListAllPages: List loopback addresses

This method is a wrapper around the `NetworkingLoopbackAddressList` method. This method returns all the pages at once.

func (*Client) NetworkingSwitchPortApplySettings added in v0.0.23

func (c *Client) NetworkingSwitchPortApplySettings(ctx context.Context, params NetworkingSwitchPortApplySettingsParams) error

NetworkingSwitchPortApplySettings: Apply switch port settings

func (*Client) NetworkingSwitchPortClearSettings added in v0.0.23

func (c *Client) NetworkingSwitchPortClearSettings(ctx context.Context, params NetworkingSwitchPortClearSettingsParams) error

NetworkingSwitchPortClearSettings: Clear switch port settings

func (*Client) NetworkingSwitchPortList added in v0.0.23

func (c *Client) NetworkingSwitchPortList(ctx context.Context, params NetworkingSwitchPortListParams) (*SwitchPortResultsPage, error)

NetworkingSwitchPortList: List switch ports

To iterate over all pages, use the `NetworkingSwitchPortListAllPages` method, instead.

func (*Client) NetworkingSwitchPortListAllPages added in v0.0.23

func (c *Client) NetworkingSwitchPortListAllPages(ctx context.Context, params NetworkingSwitchPortListParams) ([]SwitchPort, error)

NetworkingSwitchPortListAllPages: List switch ports

This method is a wrapper around the `NetworkingSwitchPortList` method. This method returns all the pages at once.

func (*Client) NetworkingSwitchPortLldpConfigUpdate added in v0.3.0

func (c *Client) NetworkingSwitchPortLldpConfigUpdate(ctx context.Context, params NetworkingSwitchPortLldpConfigUpdateParams) error

NetworkingSwitchPortLldpConfigUpdate: Update the LLDP configuration for a switch port

func (*Client) NetworkingSwitchPortLldpConfigView added in v0.3.0

func (c *Client) NetworkingSwitchPortLldpConfigView(ctx context.Context, params NetworkingSwitchPortLldpConfigViewParams) (*LldpLinkConfig, error)

NetworkingSwitchPortLldpConfigView: Fetch the LLDP configuration for a switch port

func (*Client) NetworkingSwitchPortLldpNeighbors added in v0.3.0

func (c *Client) NetworkingSwitchPortLldpNeighbors(ctx context.Context, params NetworkingSwitchPortLldpNeighborsParams) (*LldpNeighborResultsPage, error)

NetworkingSwitchPortLldpNeighbors: Fetch the LLDP neighbors seen on a switch port

To iterate over all pages, use the `NetworkingSwitchPortLldpNeighborsAllPages` method, instead.

func (*Client) NetworkingSwitchPortLldpNeighborsAllPages added in v0.3.0

func (c *Client) NetworkingSwitchPortLldpNeighborsAllPages(ctx context.Context, params NetworkingSwitchPortLldpNeighborsParams) ([]LldpNeighbor, error)

NetworkingSwitchPortLldpNeighborsAllPages: Fetch the LLDP neighbors seen on a switch port

This method is a wrapper around the `NetworkingSwitchPortLldpNeighbors` method. This method returns all the pages at once.

func (*Client) NetworkingSwitchPortSettingsCreate added in v0.0.23

func (c *Client) NetworkingSwitchPortSettingsCreate(ctx context.Context, params NetworkingSwitchPortSettingsCreateParams) (*SwitchPortSettingsView, error)

NetworkingSwitchPortSettingsCreate: Create switch port settings

func (*Client) NetworkingSwitchPortSettingsDelete added in v0.0.23

func (c *Client) NetworkingSwitchPortSettingsDelete(ctx context.Context, params NetworkingSwitchPortSettingsDeleteParams) error

NetworkingSwitchPortSettingsDelete: Delete switch port settings

func (*Client) NetworkingSwitchPortSettingsList added in v0.0.23

func (c *Client) NetworkingSwitchPortSettingsList(ctx context.Context, params NetworkingSwitchPortSettingsListParams) (*SwitchPortSettingsResultsPage, error)

NetworkingSwitchPortSettingsList: List switch port settings

To iterate over all pages, use the `NetworkingSwitchPortSettingsListAllPages` method, instead.

func (*Client) NetworkingSwitchPortSettingsListAllPages added in v0.0.23

func (c *Client) NetworkingSwitchPortSettingsListAllPages(ctx context.Context, params NetworkingSwitchPortSettingsListParams) ([]SwitchPortSettings, error)

NetworkingSwitchPortSettingsListAllPages: List switch port settings

This method is a wrapper around the `NetworkingSwitchPortSettingsList` method. This method returns all the pages at once.

func (*Client) NetworkingSwitchPortSettingsView added in v0.0.23

func (c *Client) NetworkingSwitchPortSettingsView(ctx context.Context, params NetworkingSwitchPortSettingsViewParams) (*SwitchPortSettingsView, error)

NetworkingSwitchPortSettingsView: Get information about switch port

func (*Client) NetworkingSwitchPortStatus added in v0.2.0

func (c *Client) NetworkingSwitchPortStatus(ctx context.Context, params NetworkingSwitchPortStatusParams) (*SwitchLinkState, error)

NetworkingSwitchPortStatus: Get switch port status

func (*Client) PhysicalDiskList added in v0.0.23

func (c *Client) PhysicalDiskList(ctx context.Context, params PhysicalDiskListParams) (*PhysicalDiskResultsPage, error)

PhysicalDiskList: List physical disks

To iterate over all pages, use the `PhysicalDiskListAllPages` method, instead.

func (*Client) PhysicalDiskListAllPages added in v0.0.23

func (c *Client) PhysicalDiskListAllPages(ctx context.Context, params PhysicalDiskListParams) ([]PhysicalDisk, error)

PhysicalDiskListAllPages: List physical disks

This method is a wrapper around the `PhysicalDiskList` method. This method returns all the pages at once.

func (*Client) PhysicalDiskView added in v0.2.0

func (c *Client) PhysicalDiskView(ctx context.Context, params PhysicalDiskViewParams) (*PhysicalDisk, error)

PhysicalDiskView: Get a physical disk

func (*Client) Ping added in v0.0.23

func (c *Client) Ping(ctx context.Context) (*Ping, error)

Ping: Ping API Always responds with Ok if it responds at all.

func (*Client) PolicyUpdate

func (c *Client) PolicyUpdate(ctx context.Context, params PolicyUpdateParams) (*SiloRolePolicy, error)

PolicyUpdate: Update current silo's IAM policy

func (*Client) PolicyView

func (c *Client) PolicyView(ctx context.Context) (*SiloRolePolicy, error)

PolicyView: Fetch current silo's IAM policy

func (*Client) ProjectCreate

func (c *Client) ProjectCreate(ctx context.Context, params ProjectCreateParams) (*Project, error)

ProjectCreate: Create project

func (*Client) ProjectDelete

func (c *Client) ProjectDelete(ctx context.Context, params ProjectDeleteParams) error

ProjectDelete: Delete project

func (*Client) ProjectIpPoolList added in v0.0.23

func (c *Client) ProjectIpPoolList(ctx context.Context, params ProjectIpPoolListParams) (*SiloIpPoolResultsPage, error)

ProjectIpPoolList: List IP pools

To iterate over all pages, use the `ProjectIpPoolListAllPages` method, instead.

func (*Client) ProjectIpPoolListAllPages added in v0.0.23

func (c *Client) ProjectIpPoolListAllPages(ctx context.Context, params ProjectIpPoolListParams) ([]SiloIpPool, error)

ProjectIpPoolListAllPages: List IP pools

This method is a wrapper around the `ProjectIpPoolList` method. This method returns all the pages at once.

func (*Client) ProjectIpPoolView added in v0.0.23

func (c *Client) ProjectIpPoolView(ctx context.Context, params ProjectIpPoolViewParams) (*SiloIpPool, error)

ProjectIpPoolView: Fetch IP pool

func (*Client) ProjectList

func (c *Client) ProjectList(ctx context.Context, params ProjectListParams) (*ProjectResultsPage, error)

ProjectList: List projects

To iterate over all pages, use the `ProjectListAllPages` method, instead.

func (*Client) ProjectListAllPages

func (c *Client) ProjectListAllPages(ctx context.Context, params ProjectListParams) ([]Project, error)

ProjectListAllPages: List projects

This method is a wrapper around the `ProjectList` method. This method returns all the pages at once.

func (*Client) ProjectPolicyUpdate

func (c *Client) ProjectPolicyUpdate(ctx context.Context, params ProjectPolicyUpdateParams) (*ProjectRolePolicy, error)

ProjectPolicyUpdate: Update project's IAM policy

func (*Client) ProjectPolicyView

func (c *Client) ProjectPolicyView(ctx context.Context, params ProjectPolicyViewParams) (*ProjectRolePolicy, error)

ProjectPolicyView: Fetch project's IAM policy

func (*Client) ProjectUpdate

func (c *Client) ProjectUpdate(ctx context.Context, params ProjectUpdateParams) (*Project, error)

ProjectUpdate: Update a project

func (*Client) ProjectView

func (c *Client) ProjectView(ctx context.Context, params ProjectViewParams) (*Project, error)

ProjectView: Fetch project

func (*Client) RackList

func (c *Client) RackList(ctx context.Context, params RackListParams) (*RackResultsPage, error)

RackList: List racks

To iterate over all pages, use the `RackListAllPages` method, instead.

func (*Client) RackListAllPages

func (c *Client) RackListAllPages(ctx context.Context, params RackListParams) ([]Rack, error)

RackListAllPages: List racks

This method is a wrapper around the `RackList` method. This method returns all the pages at once.

func (*Client) RackView

func (c *Client) RackView(ctx context.Context, params RackViewParams) (*Rack, error)

RackView: Fetch rack

func (*Client) RoleList

func (c *Client) RoleList(ctx context.Context, params RoleListParams) (*RoleResultsPage, error)

RoleList: List built-in roles

To iterate over all pages, use the `RoleListAllPages` method, instead.

func (*Client) RoleListAllPages

func (c *Client) RoleListAllPages(ctx context.Context, params RoleListParams) ([]Role, error)

RoleListAllPages: List built-in roles

This method is a wrapper around the `RoleList` method. This method returns all the pages at once.

func (*Client) RoleView

func (c *Client) RoleView(ctx context.Context, params RoleViewParams) (*Role, error)

RoleView: Fetch built-in role

func (*Client) SamlIdentityProviderCreate added in v0.0.23

func (c *Client) SamlIdentityProviderCreate(ctx context.Context, params SamlIdentityProviderCreateParams) (*SamlIdentityProvider, error)

SamlIdentityProviderCreate: Create SAML IdP

func (*Client) SamlIdentityProviderView added in v0.0.23

func (c *Client) SamlIdentityProviderView(ctx context.Context, params SamlIdentityProviderViewParams) (*SamlIdentityProvider, error)

SamlIdentityProviderView: Fetch SAML IdP

func (*Client) SiloCreate

func (c *Client) SiloCreate(ctx context.Context, params SiloCreateParams) (*Silo, error)

SiloCreate: Create a silo

func (*Client) SiloDelete

func (c *Client) SiloDelete(ctx context.Context, params SiloDeleteParams) error

SiloDelete: Delete a silo Delete a silo by name or ID.

func (*Client) SiloIdentityProviderList

func (c *Client) SiloIdentityProviderList(ctx context.Context, params SiloIdentityProviderListParams) (*IdentityProviderResultsPage, error)

SiloIdentityProviderList: List a silo's IdP's name

To iterate over all pages, use the `SiloIdentityProviderListAllPages` method, instead.

func (*Client) SiloIdentityProviderListAllPages

func (c *Client) SiloIdentityProviderListAllPages(ctx context.Context, params SiloIdentityProviderListParams) ([]IdentityProvider, error)

SiloIdentityProviderListAllPages: List a silo's IdP's name

This method is a wrapper around the `SiloIdentityProviderList` method. This method returns all the pages at once.

func (*Client) SiloIpPoolList added in v0.2.0

func (c *Client) SiloIpPoolList(ctx context.Context, params SiloIpPoolListParams) (*SiloIpPoolResultsPage, error)

SiloIpPoolList: List IP pools linked to silo Linked IP pools are available to users in the specified silo. A silo can have at most one default pool. IPs are allocated from the default pool when users ask for one without specifying a pool.

To iterate over all pages, use the `SiloIpPoolListAllPages` method, instead.

func (*Client) SiloIpPoolListAllPages added in v0.2.0

func (c *Client) SiloIpPoolListAllPages(ctx context.Context, params SiloIpPoolListParams) ([]SiloIpPool, error)

SiloIpPoolListAllPages: List IP pools linked to silo Linked IP pools are available to users in the specified silo. A silo can have at most one default pool. IPs are allocated from the default pool when users ask for one without specifying a pool.

This method is a wrapper around the `SiloIpPoolList` method. This method returns all the pages at once.

func (*Client) SiloList

func (c *Client) SiloList(ctx context.Context, params SiloListParams) (*SiloResultsPage, error)

SiloList: List silos Lists silos that are discoverable based on the current permissions.

To iterate over all pages, use the `SiloListAllPages` method, instead.

func (*Client) SiloListAllPages

func (c *Client) SiloListAllPages(ctx context.Context, params SiloListParams) ([]Silo, error)

SiloListAllPages: List silos Lists silos that are discoverable based on the current permissions.

This method is a wrapper around the `SiloList` method. This method returns all the pages at once.

func (*Client) SiloMetric added in v0.0.23

func (c *Client) SiloMetric(ctx context.Context, params SiloMetricParams) (*MeasurementResultsPage, error)

SiloMetric: View metrics View CPU, memory, or storage utilization metrics at the silo or project level.

To iterate over all pages, use the `SiloMetricAllPages` method, instead.

func (*Client) SiloMetricAllPages added in v0.0.23

func (c *Client) SiloMetricAllPages(ctx context.Context, params SiloMetricParams) ([]Measurement, error)

SiloMetricAllPages: View metrics View CPU, memory, or storage utilization metrics at the silo or project level.

This method is a wrapper around the `SiloMetric` method. This method returns all the pages at once.

func (*Client) SiloPolicyUpdate

func (c *Client) SiloPolicyUpdate(ctx context.Context, params SiloPolicyUpdateParams) (*SiloRolePolicy, error)

SiloPolicyUpdate: Update silo IAM policy

func (*Client) SiloPolicyView

func (c *Client) SiloPolicyView(ctx context.Context, params SiloPolicyViewParams) (*SiloRolePolicy, error)

SiloPolicyView: Fetch silo IAM policy

func (*Client) SiloQuotasUpdate added in v0.0.23

func (c *Client) SiloQuotasUpdate(ctx context.Context, params SiloQuotasUpdateParams) (*SiloQuotas, error)

SiloQuotasUpdate: Update resource quotas for silo If a quota value is not specified, it will remain unchanged.

func (*Client) SiloQuotasView added in v0.0.23

func (c *Client) SiloQuotasView(ctx context.Context, params SiloQuotasViewParams) (*SiloQuotas, error)

SiloQuotasView: Fetch resource quotas for silo

func (*Client) SiloUserList added in v0.0.23

func (c *Client) SiloUserList(ctx context.Context, params SiloUserListParams) (*UserResultsPage, error)

SiloUserList: List built-in (system) users in silo

To iterate over all pages, use the `SiloUserListAllPages` method, instead.

func (*Client) SiloUserListAllPages added in v0.0.23

func (c *Client) SiloUserListAllPages(ctx context.Context, params SiloUserListParams) ([]User, error)

SiloUserListAllPages: List built-in (system) users in silo

This method is a wrapper around the `SiloUserList` method. This method returns all the pages at once.

func (*Client) SiloUserView added in v0.0.23

func (c *Client) SiloUserView(ctx context.Context, params SiloUserViewParams) (*User, error)

SiloUserView: Fetch built-in (system) user

func (*Client) SiloUtilizationList added in v0.0.23

func (c *Client) SiloUtilizationList(ctx context.Context, params SiloUtilizationListParams) (*SiloUtilizationResultsPage, error)

SiloUtilizationList: List current utilization state for all silos

To iterate over all pages, use the `SiloUtilizationListAllPages` method, instead.

func (*Client) SiloUtilizationListAllPages added in v0.0.23

func (c *Client) SiloUtilizationListAllPages(ctx context.Context, params SiloUtilizationListParams) ([]SiloUtilization, error)

SiloUtilizationListAllPages: List current utilization state for all silos

This method is a wrapper around the `SiloUtilizationList` method. This method returns all the pages at once.

func (*Client) SiloUtilizationView added in v0.0.23

func (c *Client) SiloUtilizationView(ctx context.Context, params SiloUtilizationViewParams) (*SiloUtilization, error)

SiloUtilizationView: Fetch current utilization for given silo

func (*Client) SiloView

func (c *Client) SiloView(ctx context.Context, params SiloViewParams) (*Silo, error)

SiloView: Fetch silo Fetch silo by name or ID.

func (*Client) SledAdd added in v0.2.0

func (c *Client) SledAdd(ctx context.Context, params SledAddParams) (*SledId, error)

SledAdd: Add sled to initialized rack

func (*Client) SledInstanceList added in v0.0.23

func (c *Client) SledInstanceList(ctx context.Context, params SledInstanceListParams) (*SledInstanceResultsPage, error)

SledInstanceList: List instances running on given sled

To iterate over all pages, use the `SledInstanceListAllPages` method, instead.

func (*Client) SledInstanceListAllPages added in v0.0.23

func (c *Client) SledInstanceListAllPages(ctx context.Context, params SledInstanceListParams) ([]SledInstance, error)

SledInstanceListAllPages: List instances running on given sled

This method is a wrapper around the `SledInstanceList` method. This method returns all the pages at once.

func (*Client) SledList

func (c *Client) SledList(ctx context.Context, params SledListParams) (*SledResultsPage, error)

SledList: List sleds

To iterate over all pages, use the `SledListAllPages` method, instead.

func (*Client) SledListAllPages

func (c *Client) SledListAllPages(ctx context.Context, params SledListParams) ([]Sled, error)

SledListAllPages: List sleds

This method is a wrapper around the `SledList` method. This method returns all the pages at once.

func (*Client) SledListUninitialized added in v0.2.0

func (c *Client) SledListUninitialized(ctx context.Context, params SledListUninitializedParams) (*UninitializedSledResultsPage, error)

SledListUninitialized: List uninitialized sleds

To iterate over all pages, use the `SledListUninitializedAllPages` method, instead.

func (*Client) SledListUninitializedAllPages added in v0.2.0

func (c *Client) SledListUninitializedAllPages(ctx context.Context, params SledListUninitializedParams) ([]UninitializedSled, error)

SledListUninitializedAllPages: List uninitialized sleds

This method is a wrapper around the `SledListUninitialized` method. This method returns all the pages at once.

func (*Client) SledPhysicalDiskList added in v0.0.23

func (c *Client) SledPhysicalDiskList(ctx context.Context, params SledPhysicalDiskListParams) (*PhysicalDiskResultsPage, error)

SledPhysicalDiskList: List physical disks attached to sleds

To iterate over all pages, use the `SledPhysicalDiskListAllPages` method, instead.

func (*Client) SledPhysicalDiskListAllPages added in v0.0.23

func (c *Client) SledPhysicalDiskListAllPages(ctx context.Context, params SledPhysicalDiskListParams) ([]PhysicalDisk, error)

SledPhysicalDiskListAllPages: List physical disks attached to sleds

This method is a wrapper around the `SledPhysicalDiskList` method. This method returns all the pages at once.

func (*Client) SledSetProvisionPolicy added in v0.2.0

func (c *Client) SledSetProvisionPolicy(ctx context.Context, params SledSetProvisionPolicyParams) (*SledProvisionPolicyResponse, error)

SledSetProvisionPolicy: Set sled provision policy

func (*Client) SledView

func (c *Client) SledView(ctx context.Context, params SledViewParams) (*Sled, error)

SledView: Fetch sled

func (*Client) SnapshotCreate

func (c *Client) SnapshotCreate(ctx context.Context, params SnapshotCreateParams) (*Snapshot, error)

SnapshotCreate: Create snapshot Creates a point-in-time snapshot from a disk.

func (*Client) SnapshotDelete

func (c *Client) SnapshotDelete(ctx context.Context, params SnapshotDeleteParams) error

SnapshotDelete: Delete snapshot

func (*Client) SnapshotList

func (c *Client) SnapshotList(ctx context.Context, params SnapshotListParams) (*SnapshotResultsPage, error)

SnapshotList: List snapshots

To iterate over all pages, use the `SnapshotListAllPages` method, instead.

func (*Client) SnapshotListAllPages

func (c *Client) SnapshotListAllPages(ctx context.Context, params SnapshotListParams) ([]Snapshot, error)

SnapshotListAllPages: List snapshots

This method is a wrapper around the `SnapshotList` method. This method returns all the pages at once.

func (*Client) SnapshotView

func (c *Client) SnapshotView(ctx context.Context, params SnapshotViewParams) (*Snapshot, error)

SnapshotView: Fetch snapshot

func (*Client) SwitchList added in v0.0.23

func (c *Client) SwitchList(ctx context.Context, params SwitchListParams) (*SwitchResultsPage, error)

SwitchList: List switches

To iterate over all pages, use the `SwitchListAllPages` method, instead.

func (*Client) SwitchListAllPages added in v0.0.23

func (c *Client) SwitchListAllPages(ctx context.Context, params SwitchListParams) ([]Switch, error)

SwitchListAllPages: List switches

This method is a wrapper around the `SwitchList` method. This method returns all the pages at once.

func (*Client) SwitchView added in v0.0.23

func (c *Client) SwitchView(ctx context.Context, params SwitchViewParams) (*Switch, error)

SwitchView: Fetch switch

func (*Client) SystemMetric added in v0.0.23

func (c *Client) SystemMetric(ctx context.Context, params SystemMetricParams) (*MeasurementResultsPage, error)

SystemMetric: View metrics View CPU, memory, or storage utilization metrics at the fleet or silo level.

To iterate over all pages, use the `SystemMetricAllPages` method, instead.

func (*Client) SystemMetricAllPages added in v0.0.23

func (c *Client) SystemMetricAllPages(ctx context.Context, params SystemMetricParams) ([]Measurement, error)

SystemMetricAllPages: View metrics View CPU, memory, or storage utilization metrics at the fleet or silo level.

This method is a wrapper around the `SystemMetric` method. This method returns all the pages at once.

func (*Client) SystemPolicyUpdate

func (c *Client) SystemPolicyUpdate(ctx context.Context, params SystemPolicyUpdateParams) (*FleetRolePolicy, error)

SystemPolicyUpdate: Update top-level IAM policy

func (*Client) SystemPolicyView

func (c *Client) SystemPolicyView(ctx context.Context) (*FleetRolePolicy, error)

SystemPolicyView: Fetch top-level IAM policy

func (*Client) SystemQuotasList added in v0.0.23

func (c *Client) SystemQuotasList(ctx context.Context, params SystemQuotasListParams) (*SiloQuotasResultsPage, error)

SystemQuotasList: Lists resource quotas for all silos

To iterate over all pages, use the `SystemQuotasListAllPages` method, instead.

func (*Client) SystemQuotasListAllPages added in v0.0.23

func (c *Client) SystemQuotasListAllPages(ctx context.Context, params SystemQuotasListParams) ([]SiloQuotas, error)

SystemQuotasListAllPages: Lists resource quotas for all silos

This method is a wrapper around the `SystemQuotasList` method. This method returns all the pages at once.

func (*Client) SystemTimeseriesQuery added in v0.2.0

func (c *Client) SystemTimeseriesQuery(ctx context.Context, params SystemTimeseriesQueryParams) (*OxqlQueryResult, error)

SystemTimeseriesQuery: Run timeseries query Queries are written in OxQL.

func (*Client) SystemTimeseriesSchemaList added in v0.2.0

func (c *Client) SystemTimeseriesSchemaList(ctx context.Context, params SystemTimeseriesSchemaListParams) (*TimeseriesSchemaResultsPage, error)

SystemTimeseriesSchemaList: List timeseries schemas

To iterate over all pages, use the `SystemTimeseriesSchemaListAllPages` method, instead.

func (*Client) SystemTimeseriesSchemaListAllPages added in v0.2.0

func (c *Client) SystemTimeseriesSchemaListAllPages(ctx context.Context, params SystemTimeseriesSchemaListParams) ([]TimeseriesSchema, error)

SystemTimeseriesSchemaListAllPages: List timeseries schemas

This method is a wrapper around the `SystemTimeseriesSchemaList` method. This method returns all the pages at once.

func (*Client) UserBuiltinList added in v0.0.23

func (c *Client) UserBuiltinList(ctx context.Context, params UserBuiltinListParams) (*UserBuiltinResultsPage, error)

UserBuiltinList: List built-in users

To iterate over all pages, use the `UserBuiltinListAllPages` method, instead.

func (*Client) UserBuiltinListAllPages added in v0.0.23

func (c *Client) UserBuiltinListAllPages(ctx context.Context, params UserBuiltinListParams) ([]UserBuiltin, error)

UserBuiltinListAllPages: List built-in users

This method is a wrapper around the `UserBuiltinList` method. This method returns all the pages at once.

func (*Client) UserBuiltinView added in v0.0.23

func (c *Client) UserBuiltinView(ctx context.Context, params UserBuiltinViewParams) (*UserBuiltin, error)

UserBuiltinView: Fetch built-in user

func (*Client) UserList

func (c *Client) UserList(ctx context.Context, params UserListParams) (*UserResultsPage, error)

UserList: List users

To iterate over all pages, use the `UserListAllPages` method, instead.

func (*Client) UserListAllPages

func (c *Client) UserListAllPages(ctx context.Context, params UserListParams) ([]User, error)

UserListAllPages: List users

This method is a wrapper around the `UserList` method. This method returns all the pages at once.

func (*Client) UtilizationView added in v0.0.23

func (c *Client) UtilizationView(ctx context.Context) (*Utilization, error)

UtilizationView: Fetch resource utilization for user's current silo

func (*Client) VpcCreate

func (c *Client) VpcCreate(ctx context.Context, params VpcCreateParams) (*Vpc, error)

VpcCreate: Create VPC

func (*Client) VpcDelete

func (c *Client) VpcDelete(ctx context.Context, params VpcDeleteParams) error

VpcDelete: Delete VPC

func (*Client) VpcFirewallRulesUpdate

func (c *Client) VpcFirewallRulesUpdate(ctx context.Context, params VpcFirewallRulesUpdateParams) (*VpcFirewallRules, error)

VpcFirewallRulesUpdate: Replace firewall rules The maximum number of rules per VPC is 1024.

Targets are used to specify the set of instances to which a firewall rule applies. You can target instances directly by name, or specify a VPC, VPC subnet, IP, or IP subnet, which will apply the rule to traffic going to all matching instances. Targets are additive: the rule applies to instances matching ANY target. The maximum number of targets is 256.

Filters reduce the scope of a firewall rule. Without filters, the rule applies to all packets to the targets (or from the targets, if it's an outbound rule). With multiple filters, the rule applies only to packets matching ALL filters. The maximum number of each type of filter is 256.

func (*Client) VpcFirewallRulesView

func (c *Client) VpcFirewallRulesView(ctx context.Context, params VpcFirewallRulesViewParams) (*VpcFirewallRules, error)

VpcFirewallRulesView: List firewall rules

func (*Client) VpcList

func (c *Client) VpcList(ctx context.Context, params VpcListParams) (*VpcResultsPage, error)

VpcList: List VPCs

To iterate over all pages, use the `VpcListAllPages` method, instead.

func (*Client) VpcListAllPages

func (c *Client) VpcListAllPages(ctx context.Context, params VpcListParams) ([]Vpc, error)

VpcListAllPages: List VPCs

This method is a wrapper around the `VpcList` method. This method returns all the pages at once.

func (*Client) VpcRouterCreate

func (c *Client) VpcRouterCreate(ctx context.Context, params VpcRouterCreateParams) (*VpcRouter, error)

VpcRouterCreate: Create VPC router

func (*Client) VpcRouterDelete

func (c *Client) VpcRouterDelete(ctx context.Context, params VpcRouterDeleteParams) error

VpcRouterDelete: Delete router

func (*Client) VpcRouterList

func (c *Client) VpcRouterList(ctx context.Context, params VpcRouterListParams) (*VpcRouterResultsPage, error)

VpcRouterList: List routers

To iterate over all pages, use the `VpcRouterListAllPages` method, instead.

func (*Client) VpcRouterListAllPages

func (c *Client) VpcRouterListAllPages(ctx context.Context, params VpcRouterListParams) ([]VpcRouter, error)

VpcRouterListAllPages: List routers

This method is a wrapper around the `VpcRouterList` method. This method returns all the pages at once.

func (*Client) VpcRouterRouteCreate

func (c *Client) VpcRouterRouteCreate(ctx context.Context, params VpcRouterRouteCreateParams) (*RouterRoute, error)

VpcRouterRouteCreate: Create route

func (*Client) VpcRouterRouteDelete

func (c *Client) VpcRouterRouteDelete(ctx context.Context, params VpcRouterRouteDeleteParams) error

VpcRouterRouteDelete: Delete route

func (*Client) VpcRouterRouteList

func (c *Client) VpcRouterRouteList(ctx context.Context, params VpcRouterRouteListParams) (*RouterRouteResultsPage, error)

VpcRouterRouteList: List routes List the routes associated with a router in a particular VPC.

To iterate over all pages, use the `VpcRouterRouteListAllPages` method, instead.

func (*Client) VpcRouterRouteListAllPages

func (c *Client) VpcRouterRouteListAllPages(ctx context.Context, params VpcRouterRouteListParams) ([]RouterRoute, error)

VpcRouterRouteListAllPages: List routes List the routes associated with a router in a particular VPC.

This method is a wrapper around the `VpcRouterRouteList` method. This method returns all the pages at once.

func (*Client) VpcRouterRouteUpdate

func (c *Client) VpcRouterRouteUpdate(ctx context.Context, params VpcRouterRouteUpdateParams) (*RouterRoute, error)

VpcRouterRouteUpdate: Update route

func (*Client) VpcRouterRouteView

func (c *Client) VpcRouterRouteView(ctx context.Context, params VpcRouterRouteViewParams) (*RouterRoute, error)

VpcRouterRouteView: Fetch route

func (*Client) VpcRouterUpdate

func (c *Client) VpcRouterUpdate(ctx context.Context, params VpcRouterUpdateParams) (*VpcRouter, error)

VpcRouterUpdate: Update router

func (*Client) VpcRouterView

func (c *Client) VpcRouterView(ctx context.Context, params VpcRouterViewParams) (*VpcRouter, error)

VpcRouterView: Fetch router

func (*Client) VpcSubnetCreate

func (c *Client) VpcSubnetCreate(ctx context.Context, params VpcSubnetCreateParams) (*VpcSubnet, error)

VpcSubnetCreate: Create subnet

func (*Client) VpcSubnetDelete

func (c *Client) VpcSubnetDelete(ctx context.Context, params VpcSubnetDeleteParams) error

VpcSubnetDelete: Delete subnet

func (*Client) VpcSubnetList

func (c *Client) VpcSubnetList(ctx context.Context, params VpcSubnetListParams) (*VpcSubnetResultsPage, error)

VpcSubnetList: List subnets

To iterate over all pages, use the `VpcSubnetListAllPages` method, instead.

func (*Client) VpcSubnetListAllPages

func (c *Client) VpcSubnetListAllPages(ctx context.Context, params VpcSubnetListParams) ([]VpcSubnet, error)

VpcSubnetListAllPages: List subnets

This method is a wrapper around the `VpcSubnetList` method. This method returns all the pages at once.

func (*Client) VpcSubnetListNetworkInterfaces

func (c *Client) VpcSubnetListNetworkInterfaces(ctx context.Context, params VpcSubnetListNetworkInterfacesParams) (*InstanceNetworkInterfaceResultsPage, error)

VpcSubnetListNetworkInterfaces: List network interfaces

To iterate over all pages, use the `VpcSubnetListNetworkInterfacesAllPages` method, instead.

func (*Client) VpcSubnetListNetworkInterfacesAllPages

func (c *Client) VpcSubnetListNetworkInterfacesAllPages(ctx context.Context, params VpcSubnetListNetworkInterfacesParams) ([]InstanceNetworkInterface, error)

VpcSubnetListNetworkInterfacesAllPages: List network interfaces

This method is a wrapper around the `VpcSubnetListNetworkInterfaces` method. This method returns all the pages at once.

func (*Client) VpcSubnetUpdate

func (c *Client) VpcSubnetUpdate(ctx context.Context, params VpcSubnetUpdateParams) (*VpcSubnet, error)

VpcSubnetUpdate: Update subnet

func (*Client) VpcSubnetView

func (c *Client) VpcSubnetView(ctx context.Context, params VpcSubnetViewParams) (*VpcSubnet, error)

VpcSubnetView: Fetch subnet

func (*Client) VpcUpdate

func (c *Client) VpcUpdate(ctx context.Context, params VpcUpdateParams) (*Vpc, error)

VpcUpdate: Update a VPC

func (*Client) VpcView

func (c *Client) VpcView(ctx context.Context, params VpcViewParams) (*Vpc, error)

VpcView: Fetch VPC

type Config added in v0.2.0

type Config struct {
	// Base URL of the Oxide API including the scheme. For example,
	// https://api.oxide.computer.
	Host string

	// Oxide API authentication token.
	Token string

	// A custom HTTP client to use for the Client instead of the default.
	HTTPClient *http.Client

	// A custom user agent string to add to every request instead of the
	// default.
	UserAgent string

	// The directory to look for Oxide CLI configuration files. Defaults
	// to $HOME/.config/oxide if unset.
	ConfigDir string

	// The name of the Oxide CLI profile to use for authentication.
	// The Host and Token fields will override their respective values
	// provided by the profile.
	Profile string

	// Whether to use the default profile listed in the Oxide CLI
	// config.toml file for authentication. Will be overridden by
	// the Profile field.
	UseDefaultProfile bool
}

Config is the configuration that can be set on a Client.

type Cumulativedouble

type Cumulativedouble struct {
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Value     float64    `json:"value,omitempty" yaml:"value,omitempty"`
}

Cumulativedouble is a cumulative or counter data type.

Required fields: - StartTime - Value

type Cumulativefloat added in v0.0.23

type Cumulativefloat struct {
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Value     float64    `json:"value,omitempty" yaml:"value,omitempty"`
}

Cumulativefloat is a cumulative or counter data type.

Required fields: - StartTime - Value

type Cumulativeint64

type Cumulativeint64 struct {
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Value     int        `json:"value,omitempty" yaml:"value,omitempty"`
}

Cumulativeint64 is a cumulative or counter data type.

Required fields: - StartTime - Value

type Cumulativeuint64 added in v0.0.23

type Cumulativeuint64 struct {
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Value     int        `json:"value,omitempty" yaml:"value,omitempty"`
}

Cumulativeuint64 is a cumulative or counter data type.

Required fields: - StartTime - Value

type CurrentUser added in v0.0.23

type CurrentUser struct {
	// DisplayName is human-readable name that can identify the user
	DisplayName string `json:"display_name,omitempty" yaml:"display_name,omitempty"`
	Id          string `json:"id,omitempty" yaml:"id,omitempty"`
	// SiloId is uuid of the silo to which this user belongs
	SiloId string `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
	// SiloName is name of the silo to which this user belongs.
	SiloName Name `json:"silo_name,omitempty" yaml:"silo_name,omitempty"`
}

CurrentUser is info about the current user

Required fields: - DisplayName - Id - SiloId - SiloName

type CurrentUserGroupsParams added in v0.0.23

type CurrentUserGroupsParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

CurrentUserGroupsParams is the request parameters for CurrentUserGroups

func (*CurrentUserGroupsParams) Validate added in v0.0.23

func (p *CurrentUserGroupsParams) Validate() error

Validate verifies all required fields for CurrentUserGroupsParams are set

type CurrentUserSshKeyCreateParams added in v0.0.23

type CurrentUserSshKeyCreateParams struct {
	Body *SshKeyCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

CurrentUserSshKeyCreateParams is the request parameters for CurrentUserSshKeyCreate

Required fields: - Body

func (*CurrentUserSshKeyCreateParams) Validate added in v0.0.23

func (p *CurrentUserSshKeyCreateParams) Validate() error

Validate verifies all required fields for CurrentUserSshKeyCreateParams are set

type CurrentUserSshKeyDeleteParams added in v0.0.23

type CurrentUserSshKeyDeleteParams struct {
	SshKey NameOrId `json:"ssh_key,omitempty" yaml:"ssh_key,omitempty"`
}

CurrentUserSshKeyDeleteParams is the request parameters for CurrentUserSshKeyDelete

Required fields: - SshKey

func (*CurrentUserSshKeyDeleteParams) Validate added in v0.0.23

func (p *CurrentUserSshKeyDeleteParams) Validate() error

Validate verifies all required fields for CurrentUserSshKeyDeleteParams are set

type CurrentUserSshKeyListParams added in v0.0.23

type CurrentUserSshKeyListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

CurrentUserSshKeyListParams is the request parameters for CurrentUserSshKeyList

func (*CurrentUserSshKeyListParams) Validate added in v0.0.23

func (p *CurrentUserSshKeyListParams) Validate() error

Validate verifies all required fields for CurrentUserSshKeyListParams are set

type CurrentUserSshKeyViewParams added in v0.0.23

type CurrentUserSshKeyViewParams struct {
	SshKey NameOrId `json:"ssh_key,omitempty" yaml:"ssh_key,omitempty"`
}

CurrentUserSshKeyViewParams is the request parameters for CurrentUserSshKeyView

Required fields: - SshKey

func (*CurrentUserSshKeyViewParams) Validate added in v0.0.23

func (p *CurrentUserSshKeyViewParams) Validate() error

Validate verifies all required fields for CurrentUserSshKeyViewParams are set

type Datum

type Datum struct {
	// Datum is the type definition for a Datum.
	Datum any `json:"datum,omitempty" yaml:"datum,omitempty"`
	// Type is the type definition for a Type.
	Type DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

Datum is a `Datum` is a single sampled data point from a metric.

type DatumBool

type DatumBool struct {
	Datum *bool     `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumBool is the type definition for a DatumBool.

Required fields: - Datum - Type

type DatumBytes

type DatumBytes struct {
	Datum []string  `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumBytes is the type definition for a DatumBytes.

Required fields: - Datum - Type

type DatumCumulativeF32 added in v0.0.23

type DatumCumulativeF32 struct {
	// Datum is a cumulative or counter data type.
	Datum Cumulativefloat `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumCumulativeF32 is the type definition for a DatumCumulativeF32.

Required fields: - Datum - Type

type DatumCumulativeF64

type DatumCumulativeF64 struct {
	// Datum is a cumulative or counter data type.
	Datum Cumulativedouble `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType        `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumCumulativeF64 is the type definition for a DatumCumulativeF64.

Required fields: - Datum - Type

type DatumCumulativeI64

type DatumCumulativeI64 struct {
	// Datum is a cumulative or counter data type.
	Datum Cumulativeint64 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumCumulativeI64 is the type definition for a DatumCumulativeI64.

Required fields: - Datum - Type

type DatumCumulativeU64 added in v0.0.23

type DatumCumulativeU64 struct {
	// Datum is a cumulative or counter data type.
	Datum Cumulativeuint64 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType        `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumCumulativeU64 is the type definition for a DatumCumulativeU64.

Required fields: - Datum - Type

type DatumF32 added in v0.0.23

type DatumF32 struct {
	Datum float64   `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumF32 is the type definition for a DatumF32.

Required fields: - Datum - Type

type DatumF64

type DatumF64 struct {
	Datum float64   `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumF64 is the type definition for a DatumF64.

Required fields: - Datum - Type

type DatumHistogramF32 added in v0.0.23

type DatumHistogramF32 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramfloat `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramF32 is the type definition for a DatumHistogramF32.

Required fields: - Datum - Type

type DatumHistogramF64

type DatumHistogramF64 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramdouble `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramF64 is the type definition for a DatumHistogramF64.

Required fields: - Datum - Type

type DatumHistogramI16 added in v0.0.23

type DatumHistogramI16 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramint16 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramI16 is the type definition for a DatumHistogramI16.

Required fields: - Datum - Type

type DatumHistogramI32 added in v0.0.23

type DatumHistogramI32 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramint32 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramI32 is the type definition for a DatumHistogramI32.

Required fields: - Datum - Type

type DatumHistogramI64

type DatumHistogramI64 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramint64 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramI64 is the type definition for a DatumHistogramI64.

Required fields: - Datum - Type

type DatumHistogramI8 added in v0.0.23

type DatumHistogramI8 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramint8 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType     `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramI8 is the type definition for a DatumHistogramI8.

Required fields: - Datum - Type

type DatumHistogramU16 added in v0.0.23

type DatumHistogramU16 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramuint16 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramU16 is the type definition for a DatumHistogramU16.

Required fields: - Datum - Type

type DatumHistogramU32 added in v0.0.23

type DatumHistogramU32 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramuint32 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramU32 is the type definition for a DatumHistogramU32.

Required fields: - Datum - Type

type DatumHistogramU64 added in v0.0.23

type DatumHistogramU64 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramuint64 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramU64 is the type definition for a DatumHistogramU64.

Required fields: - Datum - Type

type DatumHistogramU8 added in v0.0.23

type DatumHistogramU8 struct {
	// Datum is histogram metric
	//
	// A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via
	// their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to
	// the left, right, or both so that the bins extend to the entire range of the support.
	//
	// Note that any gaps, unsorted bins, or non-finite values will result in an error.
	Datum Histogramuint8 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramU8 is the type definition for a DatumHistogramU8.

Required fields: - Datum - Type

type DatumI16 added in v0.0.23

type DatumI16 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumI16 is the type definition for a DatumI16.

Required fields: - Datum - Type

type DatumI32 added in v0.0.23

type DatumI32 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumI32 is the type definition for a DatumI32.

Required fields: - Datum - Type

type DatumI64

type DatumI64 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumI64 is the type definition for a DatumI64.

Required fields: - Datum - Type

type DatumI8 added in v0.0.23

type DatumI8 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumI8 is the type definition for a DatumI8.

Required fields: - Datum - Type

type DatumMissing added in v0.0.23

type DatumMissing struct {
	Datum MissingDatum `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType    `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumMissing is the type definition for a DatumMissing.

Required fields: - Datum - Type

type DatumString

type DatumString struct {
	Datum string    `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumString is the type definition for a DatumString.

Required fields: - Datum - Type

type DatumType

type DatumType string

DatumType is the type definition for a DatumType.

const DatumTypeBool DatumType = "bool"

DatumTypeBool represents the DatumType `"bool"`.

const DatumTypeBytes DatumType = "bytes"

DatumTypeBytes represents the DatumType `"bytes"`.

const DatumTypeCumulativeF32 DatumType = "cumulative_f32"

DatumTypeCumulativeF32 represents the DatumType `"cumulative_f32"`.

const DatumTypeCumulativeF64 DatumType = "cumulative_f64"

DatumTypeCumulativeF64 represents the DatumType `"cumulative_f64"`.

const DatumTypeCumulativeI64 DatumType = "cumulative_i64"

DatumTypeCumulativeI64 represents the DatumType `"cumulative_i64"`.

const DatumTypeCumulativeU64 DatumType = "cumulative_u64"

DatumTypeCumulativeU64 represents the DatumType `"cumulative_u64"`.

const DatumTypeF32 DatumType = "f32"

DatumTypeF32 represents the DatumType `"f32"`.

const DatumTypeF64 DatumType = "f64"

DatumTypeF64 represents the DatumType `"f64"`.

const DatumTypeHistogramF32 DatumType = "histogram_f32"

DatumTypeHistogramF32 represents the DatumType `"histogram_f32"`.

const DatumTypeHistogramF64 DatumType = "histogram_f64"

DatumTypeHistogramF64 represents the DatumType `"histogram_f64"`.

const DatumTypeHistogramI16 DatumType = "histogram_i16"

DatumTypeHistogramI16 represents the DatumType `"histogram_i16"`.

const DatumTypeHistogramI32 DatumType = "histogram_i32"

DatumTypeHistogramI32 represents the DatumType `"histogram_i32"`.

const DatumTypeHistogramI64 DatumType = "histogram_i64"

DatumTypeHistogramI64 represents the DatumType `"histogram_i64"`.

const DatumTypeHistogramI8 DatumType = "histogram_i8"

DatumTypeHistogramI8 represents the DatumType `"histogram_i8"`.

const DatumTypeHistogramU16 DatumType = "histogram_u16"

DatumTypeHistogramU16 represents the DatumType `"histogram_u16"`.

const DatumTypeHistogramU32 DatumType = "histogram_u32"

DatumTypeHistogramU32 represents the DatumType `"histogram_u32"`.

const DatumTypeHistogramU64 DatumType = "histogram_u64"

DatumTypeHistogramU64 represents the DatumType `"histogram_u64"`.

const DatumTypeHistogramU8 DatumType = "histogram_u8"

DatumTypeHistogramU8 represents the DatumType `"histogram_u8"`.

const DatumTypeI16 DatumType = "i16"

DatumTypeI16 represents the DatumType `"i16"`.

const DatumTypeI32 DatumType = "i32"

DatumTypeI32 represents the DatumType `"i32"`.

const DatumTypeI64 DatumType = "i64"

DatumTypeI64 represents the DatumType `"i64"`.

const DatumTypeI8 DatumType = "i8"

DatumTypeI8 represents the DatumType `"i8"`.

const DatumTypeMissing DatumType = "missing"

DatumTypeMissing represents the DatumType `"missing"`.

const DatumTypeString DatumType = "string"

DatumTypeString represents the DatumType `"string"`.

const DatumTypeU16 DatumType = "u16"

DatumTypeU16 represents the DatumType `"u16"`.

const DatumTypeU32 DatumType = "u32"

DatumTypeU32 represents the DatumType `"u32"`.

const DatumTypeU64 DatumType = "u64"

DatumTypeU64 represents the DatumType `"u64"`.

const DatumTypeU8 DatumType = "u8"

DatumTypeU8 represents the DatumType `"u8"`.

type DatumU16 added in v0.0.23

type DatumU16 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumU16 is the type definition for a DatumU16.

Required fields: - Datum - Type

type DatumU32 added in v0.0.23

type DatumU32 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumU32 is the type definition for a DatumU32.

Required fields: - Datum - Type

type DatumU64 added in v0.0.23

type DatumU64 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumU64 is the type definition for a DatumU64.

Required fields: - Datum - Type

type DatumU8 added in v0.0.23

type DatumU8 struct {
	Datum int       `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumU8 is the type definition for a DatumU8.

Required fields: - Datum - Type

type DerEncodedKeyPair

type DerEncodedKeyPair struct {
	// PrivateKey is request signing RSA private key in PKCS#1 format (base64 encoded der file)
	PrivateKey string `json:"private_key,omitempty" yaml:"private_key,omitempty"`
	// PublicCert is request signing public certificate (base64 encoded der file)
	PublicCert string `json:"public_cert,omitempty" yaml:"public_cert,omitempty"`
}

DerEncodedKeyPair is the type definition for a DerEncodedKeyPair.

Required fields: - PrivateKey - PublicCert

type DeviceAccessTokenParams added in v0.0.23

type DeviceAccessTokenParams struct {
	Body io.Reader `json:"body,omitempty" yaml:"body,omitempty"`
}

DeviceAccessTokenParams is the request parameters for DeviceAccessToken

Required fields: - Body

func (*DeviceAccessTokenParams) Validate added in v0.0.23

func (p *DeviceAccessTokenParams) Validate() error

Validate verifies all required fields for DeviceAccessTokenParams are set

type DeviceAccessTokenRequest

type DeviceAccessTokenRequest struct {
	ClientId   string `json:"client_id,omitempty" yaml:"client_id,omitempty"`
	DeviceCode string `json:"device_code,omitempty" yaml:"device_code,omitempty"`
	GrantType  string `json:"grant_type,omitempty" yaml:"grant_type,omitempty"`
}

DeviceAccessTokenRequest is the type definition for a DeviceAccessTokenRequest.

Required fields: - ClientId - DeviceCode - GrantType

type DeviceAuthConfirmParams added in v0.0.23

type DeviceAuthConfirmParams struct {
	Body *DeviceAuthVerify `json:"body,omitempty" yaml:"body,omitempty"`
}

DeviceAuthConfirmParams is the request parameters for DeviceAuthConfirm

Required fields: - Body

func (*DeviceAuthConfirmParams) Validate added in v0.0.23

func (p *DeviceAuthConfirmParams) Validate() error

Validate verifies all required fields for DeviceAuthConfirmParams are set

type DeviceAuthRequest

type DeviceAuthRequest struct {
	ClientId string `json:"client_id,omitempty" yaml:"client_id,omitempty"`
}

DeviceAuthRequest is the type definition for a DeviceAuthRequest.

Required fields: - ClientId

type DeviceAuthRequestParams added in v0.0.23

type DeviceAuthRequestParams struct {
	Body io.Reader `json:"body,omitempty" yaml:"body,omitempty"`
}

DeviceAuthRequestParams is the request parameters for DeviceAuthRequest

Required fields: - Body

func (*DeviceAuthRequestParams) Validate added in v0.0.23

func (p *DeviceAuthRequestParams) Validate() error

Validate verifies all required fields for DeviceAuthRequestParams are set

type DeviceAuthVerify

type DeviceAuthVerify struct {
	UserCode string `json:"user_code,omitempty" yaml:"user_code,omitempty"`
}

DeviceAuthVerify is the type definition for a DeviceAuthVerify.

Required fields: - UserCode

type Digest

type Digest struct {
	// Type is the type definition for a Type.
	Type DigestType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is the type definition for a Value.
	Value string `json:"value,omitempty" yaml:"value,omitempty"`
}

Digest is the type definition for a Digest.

type DigestSha256

type DigestSha256 struct {
	Type  DigestType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string     `json:"value,omitempty" yaml:"value,omitempty"`
}

DigestSha256 is the type definition for a DigestSha256.

Required fields: - Type - Value

type DigestType

type DigestType string

DigestType is the type definition for a DigestType.

const DigestTypeSha256 DigestType = "sha256"

DigestTypeSha256 represents the DigestType `"sha256"`.

type Disk

type Disk struct {
	// BlockSize is byte count to express memory or storage capacity.
	BlockSize ByteCount `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	DevicePath  string `json:"device_path,omitempty" yaml:"device_path,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// ImageId is iD of image from which disk was created, if any
	ImageId string `json:"image_id,omitempty" yaml:"image_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty"`
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is byte count to express memory or storage capacity.
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// SnapshotId is iD of snapshot from which disk was created, if any
	SnapshotId string `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty"`
	// State is state of a Disk
	State DiskState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Disk is view of a Disk

Required fields: - BlockSize - Description - DevicePath - Id - Name - ProjectId - Size - State - TimeCreated - TimeModified

type DiskBulkWriteImportParams added in v0.0.23

type DiskBulkWriteImportParams struct {
	Disk    NameOrId               `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId               `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *ImportBlocksBulkWrite `json:"body,omitempty" yaml:"body,omitempty"`
}

DiskBulkWriteImportParams is the request parameters for DiskBulkWriteImport

Required fields: - Disk - Body

func (*DiskBulkWriteImportParams) Validate added in v0.0.23

func (p *DiskBulkWriteImportParams) Validate() error

Validate verifies all required fields for DiskBulkWriteImportParams are set

type DiskBulkWriteImportStartParams added in v0.0.23

type DiskBulkWriteImportStartParams struct {
	Disk    NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

DiskBulkWriteImportStartParams is the request parameters for DiskBulkWriteImportStart

Required fields: - Disk

func (*DiskBulkWriteImportStartParams) Validate added in v0.0.23

func (p *DiskBulkWriteImportStartParams) Validate() error

Validate verifies all required fields for DiskBulkWriteImportStartParams are set

type DiskBulkWriteImportStopParams added in v0.0.23

type DiskBulkWriteImportStopParams struct {
	Disk    NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

DiskBulkWriteImportStopParams is the request parameters for DiskBulkWriteImportStop

Required fields: - Disk

func (*DiskBulkWriteImportStopParams) Validate added in v0.0.23

func (p *DiskBulkWriteImportStopParams) Validate() error

Validate verifies all required fields for DiskBulkWriteImportStopParams are set

type DiskCreate

type DiskCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DiskSource is the initial source for this disk
	DiskSource DiskSource `json:"disk_source,omitempty" yaml:"disk_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Size is the total size of the Disk (in bytes)
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
}

DiskCreate is create-time parameters for a `Disk`

Required fields: - Description - DiskSource - Name - Size

type DiskCreateParams added in v0.0.23

type DiskCreateParams struct {
	Project NameOrId    `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *DiskCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

DiskCreateParams is the request parameters for DiskCreate

Required fields: - Project - Body

func (*DiskCreateParams) Validate added in v0.0.23

func (p *DiskCreateParams) Validate() error

Validate verifies all required fields for DiskCreateParams are set

type DiskDeleteParams added in v0.0.23

type DiskDeleteParams struct {
	Disk    NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

DiskDeleteParams is the request parameters for DiskDelete

Required fields: - Disk

func (*DiskDeleteParams) Validate added in v0.0.23

func (p *DiskDeleteParams) Validate() error

Validate verifies all required fields for DiskDeleteParams are set

type DiskFinalizeImportParams added in v0.0.23

type DiskFinalizeImportParams struct {
	Disk    NameOrId      `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId      `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *FinalizeDisk `json:"body,omitempty" yaml:"body,omitempty"`
}

DiskFinalizeImportParams is the request parameters for DiskFinalizeImport

Required fields: - Disk - Body

func (*DiskFinalizeImportParams) Validate added in v0.0.23

func (p *DiskFinalizeImportParams) Validate() error

Validate verifies all required fields for DiskFinalizeImportParams are set

type DiskListParams added in v0.0.23

type DiskListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

DiskListParams is the request parameters for DiskList

Required fields: - Project

func (*DiskListParams) Validate added in v0.0.23

func (p *DiskListParams) Validate() error

Validate verifies all required fields for DiskListParams are set

type DiskMetricName

type DiskMetricName string

DiskMetricName is the type definition for a DiskMetricName.

const DiskMetricNameActivated DiskMetricName = "activated"

DiskMetricNameActivated represents the DiskMetricName `"activated"`.

const DiskMetricNameFlush DiskMetricName = "flush"

DiskMetricNameFlush represents the DiskMetricName `"flush"`.

const DiskMetricNameRead DiskMetricName = "read"

DiskMetricNameRead represents the DiskMetricName `"read"`.

const DiskMetricNameReadBytes DiskMetricName = "read_bytes"

DiskMetricNameReadBytes represents the DiskMetricName `"read_bytes"`.

const DiskMetricNameWrite DiskMetricName = "write"

DiskMetricNameWrite represents the DiskMetricName `"write"`.

const DiskMetricNameWriteBytes DiskMetricName = "write_bytes"

DiskMetricNameWriteBytes represents the DiskMetricName `"write_bytes"`.

type DiskMetricsListParams added in v0.0.23

type DiskMetricsListParams struct {
	Disk      NameOrId        `json:"disk,omitempty" yaml:"disk,omitempty"`
	Metric    DiskMetricName  `json:"metric,omitempty" yaml:"metric,omitempty"`
	EndTime   *time.Time      `json:"end_time,omitempty" yaml:"end_time,omitempty"`
	Limit     int             `json:"limit,omitempty" yaml:"limit,omitempty"`
	Order     PaginationOrder `json:"order,omitempty" yaml:"order,omitempty"`
	PageToken string          `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	StartTime *time.Time      `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Project   NameOrId        `json:"project,omitempty" yaml:"project,omitempty"`
}

DiskMetricsListParams is the request parameters for DiskMetricsList

Required fields: - EndTime - StartTime - Disk - Metric

func (*DiskMetricsListParams) Validate added in v0.0.23

func (p *DiskMetricsListParams) Validate() error

Validate verifies all required fields for DiskMetricsListParams are set

type DiskPath added in v0.0.23

type DiskPath struct {
	// Disk is name or ID of the disk
	Disk NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
}

DiskPath is the type definition for a DiskPath.

Required fields: - Disk

type DiskResultsPage

type DiskResultsPage struct {
	// Items is list of items on this page of results
	Items []Disk `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

DiskResultsPage is a single page of results

Required fields: - Items

type DiskSource

type DiskSource struct {
	// BlockSize is size of blocks for this Disk. valid values are: 512, 2048, or 4096
	BlockSize BlockSize `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Type is the type definition for a Type.
	Type DiskSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	// SnapshotId is the type definition for a SnapshotId.
	SnapshotId string `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty"`
	// ImageId is the type definition for a ImageId.
	ImageId string `json:"image_id,omitempty" yaml:"image_id,omitempty"`
}

DiskSource is different sources for a disk

type DiskSourceBlank

type DiskSourceBlank struct {
	// BlockSize is size of blocks for this Disk. valid values are: 512, 2048, or 4096
	BlockSize BlockSize      `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	Type      DiskSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

DiskSourceBlank is create a blank disk

Required fields: - BlockSize - Type

type DiskSourceImage

type DiskSourceImage struct {
	ImageId string         `json:"image_id,omitempty" yaml:"image_id,omitempty"`
	Type    DiskSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

DiskSourceImage is create a disk from an image

Required fields: - ImageId - Type

type DiskSourceImportingBlocks added in v0.0.23

type DiskSourceImportingBlocks struct {
	BlockSize BlockSize      `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	Type      DiskSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

DiskSourceImportingBlocks is create a blank disk that will accept bulk writes or pull blocks from an external source.

Required fields: - BlockSize - Type

type DiskSourceSnapshot

type DiskSourceSnapshot struct {
	SnapshotId string         `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty"`
	Type       DiskSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

DiskSourceSnapshot is create a disk from a disk snapshot

Required fields: - SnapshotId - Type

type DiskSourceType

type DiskSourceType string

DiskSourceType is the type definition for a DiskSourceType.

const DiskSourceTypeBlank DiskSourceType = "blank"

DiskSourceTypeBlank represents the DiskSourceType `"blank"`.

const DiskSourceTypeImage DiskSourceType = "image"

DiskSourceTypeImage represents the DiskSourceType `"image"`.

const DiskSourceTypeImportingBlocks DiskSourceType = "importing_blocks"

DiskSourceTypeImportingBlocks represents the DiskSourceType `"importing_blocks"`.

const DiskSourceTypeSnapshot DiskSourceType = "snapshot"

DiskSourceTypeSnapshot represents the DiskSourceType `"snapshot"`.

type DiskState

type DiskState struct {
	// State is the type definition for a State.
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
	// Instance is the type definition for a Instance.
	Instance string `json:"instance,omitempty" yaml:"instance,omitempty"`
}

DiskState is state of a Disk

type DiskStateAttached

type DiskStateAttached struct {
	Instance string         `json:"instance,omitempty" yaml:"instance,omitempty"`
	State    DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateAttached is disk is attached to the given Instance

Required fields: - Instance - State

type DiskStateAttaching

type DiskStateAttaching struct {
	Instance string         `json:"instance,omitempty" yaml:"instance,omitempty"`
	State    DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateAttaching is disk is being attached to the given Instance

Required fields: - Instance - State

type DiskStateCreating

type DiskStateCreating struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateCreating is disk is being initialized

Required fields: - State

type DiskStateDestroyed

type DiskStateDestroyed struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateDestroyed is disk has been destroyed

Required fields: - State

type DiskStateDetached

type DiskStateDetached struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateDetached is disk is ready but detached from any Instance

Required fields: - State

type DiskStateDetaching

type DiskStateDetaching struct {
	Instance string         `json:"instance,omitempty" yaml:"instance,omitempty"`
	State    DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateDetaching is disk is being detached from the given Instance

Required fields: - Instance - State

type DiskStateFaulted

type DiskStateFaulted struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateFaulted is disk is unavailable

Required fields: - State

type DiskStateFinalizing added in v0.0.23

type DiskStateFinalizing struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateFinalizing is disk is being finalized to state Detached

Required fields: - State

type DiskStateImportReady added in v0.0.23

type DiskStateImportReady struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateImportReady is disk is ready to receive blocks from an external source

Required fields: - State

type DiskStateImportingFromBulkWrites added in v0.0.23

type DiskStateImportingFromBulkWrites struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateImportingFromBulkWrites is disk is importing blocks from bulk writes

Required fields: - State

type DiskStateImportingFromUrl added in v0.0.23

type DiskStateImportingFromUrl struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateImportingFromUrl is disk is importing blocks from a URL

Required fields: - State

type DiskStateMaintenance added in v0.0.23

type DiskStateMaintenance struct {
	State DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateMaintenance is disk is undergoing maintenance

Required fields: - State

type DiskStateState

type DiskStateState string

DiskStateState is the type definition for a DiskStateState.

const DiskStateStateAttached DiskStateState = "attached"

DiskStateStateAttached represents the DiskStateState `"attached"`.

const DiskStateStateAttaching DiskStateState = "attaching"

DiskStateStateAttaching represents the DiskStateState `"attaching"`.

const DiskStateStateCreating DiskStateState = "creating"

DiskStateStateCreating represents the DiskStateState `"creating"`.

const DiskStateStateDestroyed DiskStateState = "destroyed"

DiskStateStateDestroyed represents the DiskStateState `"destroyed"`.

const DiskStateStateDetached DiskStateState = "detached"

DiskStateStateDetached represents the DiskStateState `"detached"`.

const DiskStateStateDetaching DiskStateState = "detaching"

DiskStateStateDetaching represents the DiskStateState `"detaching"`.

const DiskStateStateFaulted DiskStateState = "faulted"

DiskStateStateFaulted represents the DiskStateState `"faulted"`.

const DiskStateStateFinalizing DiskStateState = "finalizing"

DiskStateStateFinalizing represents the DiskStateState `"finalizing"`.

const DiskStateStateImportReady DiskStateState = "import_ready"

DiskStateStateImportReady represents the DiskStateState `"import_ready"`.

const DiskStateStateImportingFromBulkWrites DiskStateState = "importing_from_bulk_writes"

DiskStateStateImportingFromBulkWrites represents the DiskStateState `"importing_from_bulk_writes"`.

const DiskStateStateImportingFromUrl DiskStateState = "importing_from_url"

DiskStateStateImportingFromUrl represents the DiskStateState `"importing_from_url"`.

const DiskStateStateMaintenance DiskStateState = "maintenance"

DiskStateStateMaintenance represents the DiskStateState `"maintenance"`.

type DiskViewParams added in v0.0.23

type DiskViewParams struct {
	Disk    NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

DiskViewParams is the request parameters for DiskView

Required fields: - Disk

func (*DiskViewParams) Validate added in v0.0.23

func (p *DiskViewParams) Validate() error

Validate verifies all required fields for DiskViewParams are set

type Distributiondouble added in v0.2.0

type Distributiondouble struct {
	Bins         []string `json:"bins,omitempty" yaml:"bins,omitempty"`
	Counts       []string `json:"counts,omitempty" yaml:"counts,omitempty"`
	Max          float64  `json:"max,omitempty" yaml:"max,omitempty"`
	Min          float64  `json:"min,omitempty" yaml:"min,omitempty"`
	P50          Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	P90          Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	P99          Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	SquaredMean  float64  `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	SumOfSamples float64  `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Distributiondouble is a distribution is a sequence of bins and counts in those bins, and some statistical information tracked to compute the mean, standard deviation, and quantile estimates.

Min, max, and the p-* quantiles are treated as optional due to the possibility of distribution operations, like subtraction.

Required fields: - Bins - Counts - SquaredMean - SumOfSamples

type Distributionint64 added in v0.2.0

type Distributionint64 struct {
	Bins         []string `json:"bins,omitempty" yaml:"bins,omitempty"`
	Counts       []string `json:"counts,omitempty" yaml:"counts,omitempty"`
	Max          int      `json:"max,omitempty" yaml:"max,omitempty"`
	Min          int      `json:"min,omitempty" yaml:"min,omitempty"`
	P50          Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	P90          Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	P99          Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	SquaredMean  float64  `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	SumOfSamples int      `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Distributionint64 is a distribution is a sequence of bins and counts in those bins, and some statistical information tracked to compute the mean, standard deviation, and quantile estimates.

Min, max, and the p-* quantiles are treated as optional due to the possibility of distribution operations, like subtraction.

Required fields: - Bins - Counts - SquaredMean - SumOfSamples

type EphemeralIpCreate added in v0.2.0

type EphemeralIpCreate struct {
	// Pool is name or ID of the IP pool used to allocate an address
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

EphemeralIpCreate is parameters for creating an ephemeral IP address for an instance.

type Error

type Error struct {
	ErrorCode string `json:"error_code,omitempty" yaml:"error_code,omitempty"`
	Message   string `json:"message,omitempty" yaml:"message,omitempty"`
	RequestId string `json:"request_id,omitempty" yaml:"request_id,omitempty"`
}

Error is error information from a response.

Required fields: - Message - RequestId

type ErrorResponse

type ErrorResponse Error

ErrorResponse is the response given when error

type ExternalIp

type ExternalIp struct {
	// Ip is the type definition for a Ip.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Kind is the type definition for a Kind.
	Kind ExternalIpKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InstanceId is the ID of the instance that this Floating IP is attached to, if it is presently in use.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is the project this resource exists within.
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

ExternalIp is the type definition for a ExternalIp.

type ExternalIpCreate

type ExternalIpCreate struct {
	// Pool is the type definition for a Pool.
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	// Type is the type definition for a Type.
	Type ExternalIpCreateType `json:"type,omitempty" yaml:"type,omitempty"`
	// FloatingIp is the type definition for a FloatingIp.
	FloatingIp NameOrId `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
}

ExternalIpCreate is parameters for creating an external IP address for instances.

type ExternalIpCreateEphemeral

type ExternalIpCreateEphemeral struct {
	Pool NameOrId             `json:"pool,omitempty" yaml:"pool,omitempty"`
	Type ExternalIpCreateType `json:"type,omitempty" yaml:"type,omitempty"`
}

ExternalIpCreateEphemeral is an IP address providing both inbound and outbound access. The address is automatically-assigned from the provided IP Pool, or the current silo's default pool if not specified.

Required fields: - Type

type ExternalIpCreateFloating added in v0.0.23

type ExternalIpCreateFloating struct {
	FloatingIp NameOrId             `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Type       ExternalIpCreateType `json:"type,omitempty" yaml:"type,omitempty"`
}

ExternalIpCreateFloating is an IP address providing both inbound and outbound access. The address is an existing floating IP object assigned to the current project.

The floating IP must not be in use by another instance or service.

Required fields: - FloatingIp - Type

type ExternalIpCreateType

type ExternalIpCreateType string

ExternalIpCreateType is the type definition for a ExternalIpCreateType.

const ExternalIpCreateTypeEphemeral ExternalIpCreateType = "ephemeral"

ExternalIpCreateTypeEphemeral represents the ExternalIpCreateType `"ephemeral"`.

const ExternalIpCreateTypeFloating ExternalIpCreateType = "floating"

ExternalIpCreateTypeFloating represents the ExternalIpCreateType `"floating"`.

type ExternalIpEphemeral added in v0.2.0

type ExternalIpEphemeral struct {
	Ip   string         `json:"ip,omitempty" yaml:"ip,omitempty"`
	Kind ExternalIpKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

ExternalIpEphemeral is the type definition for a ExternalIpEphemeral.

Required fields: - Ip - Kind

type ExternalIpFloating added in v0.2.0

type ExternalIpFloating struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InstanceId is the ID of the instance that this Floating IP is attached to, if it is presently in use.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Ip is the IP address held by this resource.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string         `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	Kind     ExternalIpKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is the project this resource exists within.
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

ExternalIpFloating is a Floating IP is a well-known IP address which can be attached and detached from instances.

Required fields: - Description - Id - Ip - IpPoolId - Kind - Name - ProjectId - TimeCreated - TimeModified

type ExternalIpKind added in v0.2.0

type ExternalIpKind string

ExternalIpKind is the type definition for a ExternalIpKind.

const ExternalIpKindEphemeral ExternalIpKind = "ephemeral"

ExternalIpKindEphemeral represents the ExternalIpKind `"ephemeral"`.

const ExternalIpKindFloating ExternalIpKind = "floating"

ExternalIpKindFloating represents the ExternalIpKind `"floating"`.

type ExternalIpResultsPage

type ExternalIpResultsPage struct {
	// Items is list of items on this page of results
	Items []ExternalIp `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

ExternalIpResultsPage is a single page of results

Required fields: - Items

type FieldSchema

type FieldSchema struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// FieldType is the `FieldType` identifies the data type of a target or metric field.
	FieldType FieldType `json:"field_type,omitempty" yaml:"field_type,omitempty"`
	Name      string    `json:"name,omitempty" yaml:"name,omitempty"`
	// Source is the source from which a field is derived, the target or metric.
	Source FieldSource `json:"source,omitempty" yaml:"source,omitempty"`
}

FieldSchema is the name and type information for a field of a timeseries schema.

Required fields: - Description - FieldType - Name - Source

type FieldSource

type FieldSource string

FieldSource is the source from which a field is derived, the target or metric.

const FieldSourceMetric FieldSource = "metric"

FieldSourceMetric represents the FieldSource `"metric"`.

const FieldSourceTarget FieldSource = "target"

FieldSourceTarget represents the FieldSource `"target"`.

type FieldType

type FieldType string

FieldType is the `FieldType` identifies the data type of a target or metric field.

const FieldTypeBool FieldType = "bool"

FieldTypeBool represents the FieldType `"bool"`.

const FieldTypeI16 FieldType = "i16"

FieldTypeI16 represents the FieldType `"i16"`.

const FieldTypeI32 FieldType = "i32"

FieldTypeI32 represents the FieldType `"i32"`.

const FieldTypeI64 FieldType = "i64"

FieldTypeI64 represents the FieldType `"i64"`.

const FieldTypeI8 FieldType = "i8"

FieldTypeI8 represents the FieldType `"i8"`.

const FieldTypeIpAddr FieldType = "ip_addr"

FieldTypeIpAddr represents the FieldType `"ip_addr"`.

const FieldTypeString FieldType = "string"

FieldTypeString represents the FieldType `"string"`.

const FieldTypeU16 FieldType = "u16"

FieldTypeU16 represents the FieldType `"u16"`.

const FieldTypeU32 FieldType = "u32"

FieldTypeU32 represents the FieldType `"u32"`.

const FieldTypeU64 FieldType = "u64"

FieldTypeU64 represents the FieldType `"u64"`.

const FieldTypeU8 FieldType = "u8"

FieldTypeU8 represents the FieldType `"u8"`.

const FieldTypeUuid FieldType = "uuid"

FieldTypeUuid represents the FieldType `"uuid"`.

type FieldValue added in v0.2.0

type FieldValue struct {
	// Type is the type definition for a Type.
	Type FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is the type definition for a Value.
	Value any `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValue is the `FieldValue` contains the value of a target or metric field.

type FieldValueBool added in v0.2.0

type FieldValueBool struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value *bool          `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueBool is the type definition for a FieldValueBool.

Required fields: - Type - Value

type FieldValueI16 added in v0.2.0

type FieldValueI16 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueI16 is the type definition for a FieldValueI16.

Required fields: - Type - Value

type FieldValueI32 added in v0.2.0

type FieldValueI32 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueI32 is the type definition for a FieldValueI32.

Required fields: - Type - Value

type FieldValueI64 added in v0.2.0

type FieldValueI64 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueI64 is the type definition for a FieldValueI64.

Required fields: - Type - Value

type FieldValueI8 added in v0.2.0

type FieldValueI8 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueI8 is the type definition for a FieldValueI8.

Required fields: - Type - Value

type FieldValueIpAddr added in v0.2.0

type FieldValueIpAddr struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string         `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueIpAddr is the type definition for a FieldValueIpAddr.

Required fields: - Type - Value

type FieldValueString added in v0.2.0

type FieldValueString struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string         `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueString is the type definition for a FieldValueString.

Required fields: - Type - Value

type FieldValueType added in v0.2.0

type FieldValueType string

FieldValueType is the type definition for a FieldValueType.

const FieldValueTypeBool FieldValueType = "bool"

FieldValueTypeBool represents the FieldValueType `"bool"`.

const FieldValueTypeI16 FieldValueType = "i16"

FieldValueTypeI16 represents the FieldValueType `"i16"`.

const FieldValueTypeI32 FieldValueType = "i32"

FieldValueTypeI32 represents the FieldValueType `"i32"`.

const FieldValueTypeI64 FieldValueType = "i64"

FieldValueTypeI64 represents the FieldValueType `"i64"`.

const FieldValueTypeI8 FieldValueType = "i8"

FieldValueTypeI8 represents the FieldValueType `"i8"`.

const FieldValueTypeIpAddr FieldValueType = "ip_addr"

FieldValueTypeIpAddr represents the FieldValueType `"ip_addr"`.

const FieldValueTypeString FieldValueType = "string"

FieldValueTypeString represents the FieldValueType `"string"`.

const FieldValueTypeU16 FieldValueType = "u16"

FieldValueTypeU16 represents the FieldValueType `"u16"`.

const FieldValueTypeU32 FieldValueType = "u32"

FieldValueTypeU32 represents the FieldValueType `"u32"`.

const FieldValueTypeU64 FieldValueType = "u64"

FieldValueTypeU64 represents the FieldValueType `"u64"`.

const FieldValueTypeU8 FieldValueType = "u8"

FieldValueTypeU8 represents the FieldValueType `"u8"`.

const FieldValueTypeUuid FieldValueType = "uuid"

FieldValueTypeUuid represents the FieldValueType `"uuid"`.

type FieldValueU16 added in v0.2.0

type FieldValueU16 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueU16 is the type definition for a FieldValueU16.

Required fields: - Type - Value

type FieldValueU32 added in v0.2.0

type FieldValueU32 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueU32 is the type definition for a FieldValueU32.

Required fields: - Type - Value

type FieldValueU64 added in v0.2.0

type FieldValueU64 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueU64 is the type definition for a FieldValueU64.

Required fields: - Type - Value

type FieldValueU8 added in v0.2.0

type FieldValueU8 struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value int            `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueU8 is the type definition for a FieldValueU8.

Required fields: - Type - Value

type FieldValueUuid added in v0.2.0

type FieldValueUuid struct {
	Type  FieldValueType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string         `json:"value,omitempty" yaml:"value,omitempty"`
}

FieldValueUuid is the type definition for a FieldValueUuid.

Required fields: - Type - Value

type FinalizeDisk added in v0.0.23

type FinalizeDisk struct {
	// SnapshotName is if specified a snapshot of the disk will be created with the given name during finalization. If
	// not specified, a snapshot for the disk will _not_ be created. A snapshot can be manually created once the
	// disk transitions into the `Detached` state.
	SnapshotName Name `json:"snapshot_name,omitempty" yaml:"snapshot_name,omitempty"`
}

FinalizeDisk is parameters for finalizing a disk

type FleetRole

type FleetRole string

FleetRole is the type definition for a FleetRole.

const FleetRoleAdmin FleetRole = "admin"

FleetRoleAdmin represents the FleetRole `"admin"`.

const FleetRoleCollaborator FleetRole = "collaborator"

FleetRoleCollaborator represents the FleetRole `"collaborator"`.

const FleetRoleViewer FleetRole = "viewer"

FleetRoleViewer represents the FleetRole `"viewer"`.

type FleetRolePolicy

type FleetRolePolicy struct {
	// RoleAssignments is roles directly assigned on this resource
	RoleAssignments []FleetRoleRoleAssignment `json:"role_assignments,omitempty" yaml:"role_assignments,omitempty"`
}

FleetRolePolicy is policy for a particular resource

Note that the Policy only describes access granted explicitly for this resource. The policies of parent resources can also cause a user to have access to this resource.

Required fields: - RoleAssignments

type FleetRoleRoleAssignment

type FleetRoleRoleAssignment struct {
	IdentityId string `json:"identity_id,omitempty" yaml:"identity_id,omitempty"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type,omitempty" yaml:"identity_type,omitempty"`
	RoleName     FleetRole    `json:"role_name,omitempty" yaml:"role_name,omitempty"`
}

FleetRoleRoleAssignment is describes the assignment of a particular role on a particular resource to a particular identity (user, group, etc.)

The resource is not part of this structure. Rather, `RoleAssignment`s are put into a `Policy` and that Policy is applied to a particular resource.

Required fields: - IdentityId - IdentityType - RoleName

type FloatingIp added in v0.0.23

type FloatingIp struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InstanceId is the ID of the instance that this Floating IP is attached to, if it is presently in use.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Ip is the IP address held by this resource.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is the project this resource exists within.
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

FloatingIp is a Floating IP is a well-known IP address which can be attached and detached from instances.

Required fields: - Description - Id - Ip - IpPoolId - Name - ProjectId - TimeCreated - TimeModified

type FloatingIpAttach added in v0.2.0

type FloatingIpAttach struct {
	// Kind is the type of `parent`'s resource
	Kind FloatingIpParentKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Parent is name or ID of the resource that this IP address should be attached to
	Parent NameOrId `json:"parent,omitempty" yaml:"parent,omitempty"`
}

FloatingIpAttach is parameters for attaching a floating IP address to another resource

Required fields: - Kind - Parent

type FloatingIpAttachParams added in v0.2.0

type FloatingIpAttachParams struct {
	FloatingIp NameOrId          `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Project    NameOrId          `json:"project,omitempty" yaml:"project,omitempty"`
	Body       *FloatingIpAttach `json:"body,omitempty" yaml:"body,omitempty"`
}

FloatingIpAttachParams is the request parameters for FloatingIpAttach

Required fields: - FloatingIp - Body

func (*FloatingIpAttachParams) Validate added in v0.2.0

func (p *FloatingIpAttachParams) Validate() error

Validate verifies all required fields for FloatingIpAttachParams are set

type FloatingIpCreate added in v0.0.23

type FloatingIpCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Ip is an IP address to reserve for use as a floating IP. This field is optional: when not set, an address
	// will be automatically chosen from `pool`. If set, then the IP must be available in the resolved `pool`.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Pool is the parent IP pool that a floating IP is pulled from. If unset, the default pool is selected.
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

FloatingIpCreate is parameters for creating a new floating IP address for instances.

Required fields: - Description - Name

type FloatingIpCreateParams added in v0.0.23

type FloatingIpCreateParams struct {
	Project NameOrId          `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *FloatingIpCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

FloatingIpCreateParams is the request parameters for FloatingIpCreate

Required fields: - Project - Body

func (*FloatingIpCreateParams) Validate added in v0.0.23

func (p *FloatingIpCreateParams) Validate() error

Validate verifies all required fields for FloatingIpCreateParams are set

type FloatingIpDeleteParams added in v0.0.23

type FloatingIpDeleteParams struct {
	FloatingIp NameOrId `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Project    NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

FloatingIpDeleteParams is the request parameters for FloatingIpDelete

Required fields: - FloatingIp

func (*FloatingIpDeleteParams) Validate added in v0.0.23

func (p *FloatingIpDeleteParams) Validate() error

Validate verifies all required fields for FloatingIpDeleteParams are set

type FloatingIpDetachParams added in v0.2.0

type FloatingIpDetachParams struct {
	FloatingIp NameOrId `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Project    NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

FloatingIpDetachParams is the request parameters for FloatingIpDetach

Required fields: - FloatingIp

func (*FloatingIpDetachParams) Validate added in v0.2.0

func (p *FloatingIpDetachParams) Validate() error

Validate verifies all required fields for FloatingIpDetachParams are set

type FloatingIpListParams added in v0.0.23

type FloatingIpListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

FloatingIpListParams is the request parameters for FloatingIpList

Required fields: - Project

func (*FloatingIpListParams) Validate added in v0.0.23

func (p *FloatingIpListParams) Validate() error

Validate verifies all required fields for FloatingIpListParams are set

type FloatingIpParentKind added in v0.2.0

type FloatingIpParentKind string

FloatingIpParentKind is the type of resource that a floating IP is attached to

const FloatingIpParentKindInstance FloatingIpParentKind = "instance"

FloatingIpParentKindInstance represents the FloatingIpParentKind `"instance"`.

type FloatingIpResultsPage added in v0.0.23

type FloatingIpResultsPage struct {
	// Items is list of items on this page of results
	Items []FloatingIp `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

FloatingIpResultsPage is a single page of results

Required fields: - Items

type FloatingIpUpdate added in v0.2.0

type FloatingIpUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
}

FloatingIpUpdate is updateable identity-related parameters

type FloatingIpUpdateParams added in v0.2.0

type FloatingIpUpdateParams struct {
	FloatingIp NameOrId          `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Project    NameOrId          `json:"project,omitempty" yaml:"project,omitempty"`
	Body       *FloatingIpUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

FloatingIpUpdateParams is the request parameters for FloatingIpUpdate

Required fields: - FloatingIp - Body

func (*FloatingIpUpdateParams) Validate added in v0.2.0

func (p *FloatingIpUpdateParams) Validate() error

Validate verifies all required fields for FloatingIpUpdateParams are set

type FloatingIpViewParams added in v0.0.23

type FloatingIpViewParams struct {
	FloatingIp NameOrId `json:"floating_ip,omitempty" yaml:"floating_ip,omitempty"`
	Project    NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

FloatingIpViewParams is the request parameters for FloatingIpView

Required fields: - FloatingIp

func (*FloatingIpViewParams) Validate added in v0.0.23

func (p *FloatingIpViewParams) Validate() error

Validate verifies all required fields for FloatingIpViewParams are set

type Group added in v0.0.23

type Group struct {
	// DisplayName is human-readable name that can identify the group
	DisplayName string `json:"display_name,omitempty" yaml:"display_name,omitempty"`
	Id          string `json:"id,omitempty" yaml:"id,omitempty"`
	// SiloId is uuid of the silo to which this group belongs
	SiloId string `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
}

Group is view of a Group

Required fields: - DisplayName - Id - SiloId

type GroupListParams added in v0.0.23

type GroupListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

GroupListParams is the request parameters for GroupList

func (*GroupListParams) Validate added in v0.0.23

func (p *GroupListParams) Validate() error

Validate verifies all required fields for GroupListParams are set

type GroupResultsPage added in v0.0.23

type GroupResultsPage struct {
	// Items is list of items on this page of results
	Items []Group `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

GroupResultsPage is a single page of results

Required fields: - Items

type GroupViewParams added in v0.0.23

type GroupViewParams struct {
	GroupId string `json:"group_id,omitempty" yaml:"group_id,omitempty"`
}

GroupViewParams is the request parameters for GroupView

Required fields: - GroupId

func (*GroupViewParams) Validate added in v0.0.23

func (p *GroupViewParams) Validate() error

Validate verifies all required fields for GroupViewParams are set

type HTTPError

type HTTPError struct {
	// ErrorResponse is the API's Error response type.
	ErrorResponse *ErrorResponse

	// HTTPResponse is the raw HTTP response returned by the server.
	HTTPResponse *http.Response

	// RawBody is the raw response body returned by the server.
	RawBody string
}

HTTPError is an error returned by a failed API call.

func (HTTPError) Error

func (err HTTPError) Error() string

Error converts the HTTPError type to a readable string.

type Histogramdouble

type Histogramdouble struct {
	// Bins is the bins of the histogram.
	Bins []Bindouble `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max float64 `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min float64 `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples float64 `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramdouble is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramfloat added in v0.0.23

type Histogramfloat struct {
	// Bins is the bins of the histogram.
	Bins []Binfloat `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max float64 `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min float64 `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples float64 `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramfloat is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramint16 added in v0.0.23

type Histogramint16 struct {
	// Bins is the bins of the histogram.
	Bins []Binint16 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramint16 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramint32 added in v0.0.23

type Histogramint32 struct {
	// Bins is the bins of the histogram.
	Bins []Binint32 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramint32 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramint64

type Histogramint64 struct {
	// Bins is the bins of the histogram.
	Bins []Binint64 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramint64 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramint8 added in v0.0.23

type Histogramint8 struct {
	// Bins is the bins of the histogram.
	Bins []Binint8 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramint8 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramuint16 added in v0.0.23

type Histogramuint16 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint16 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramuint16 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramuint32 added in v0.0.23

type Histogramuint32 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint32 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramuint32 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramuint64 added in v0.0.23

type Histogramuint64 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint64 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramuint64 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Histogramuint8 added in v0.0.23

type Histogramuint8 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint8 `json:"bins,omitempty" yaml:"bins,omitempty"`
	// Max is the maximum value of all samples in the histogram.
	Max int `json:"max,omitempty" yaml:"max,omitempty"`
	// Min is the minimum value of all samples in the histogram.
	Min int `json:"min,omitempty" yaml:"min,omitempty"`
	// NSamples is the total number of samples in the histogram.
	NSamples int `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50,omitempty" yaml:"p50,omitempty"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90,omitempty" yaml:"p90,omitempty"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99,omitempty" yaml:"p99,omitempty"`
	// SquaredMean is m2 for Welford's algorithm for variance calculation.
	//
	// Read about [Welford's algorithm](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) for
	// more information on the algorithm.
	SquaredMean float64 `json:"squared_mean,omitempty" yaml:"squared_mean,omitempty"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples int `json:"sum_of_samples,omitempty" yaml:"sum_of_samples,omitempty"`
}

Histogramuint8 is histogram metric

A histogram maintains the count of any number of samples, over a set of bins. Bins are specified on construction via their _left_ edges, inclusive. There can't be any "gaps" in the bins, and an additional bin may be added to the left, right, or both so that the bins extend to the entire range of the support.

Note that any gaps, unsorted bins, or non-finite values will result in an error.

Required fields: - Bins - Max - Min - NSamples - P50 - P90 - P99 - SquaredMean - StartTime - SumOfSamples

type Hostname added in v0.2.0

type Hostname string

Hostname is a hostname identifies a host on a network, and is usually a dot-delimited sequence of labels, where each label contains only letters, digits, or the hyphen. See RFCs 1035 and 952 for more details.

type IdSortMode

type IdSortMode string

IdSortMode is sort in increasing order of "id"

const IdSortModeIdAscending IdSortMode = "id_ascending"

IdSortModeIdAscending represents the IdSortMode `"id_ascending"`.

type IdentityProvider

type IdentityProvider struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProviderType is identity provider type
	ProviderType IdentityProviderType `json:"provider_type,omitempty" yaml:"provider_type,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

IdentityProvider is view of an Identity Provider

Required fields: - Description - Id - Name - ProviderType - TimeCreated - TimeModified

type IdentityProviderResultsPage

type IdentityProviderResultsPage struct {
	// Items is list of items on this page of results
	Items []IdentityProvider `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

IdentityProviderResultsPage is a single page of results

Required fields: - Items

type IdentityProviderType

type IdentityProviderType string

IdentityProviderType is sAML identity provider

const IdentityProviderTypeSaml IdentityProviderType = "saml"

IdentityProviderTypeSaml represents the IdentityProviderType `"saml"`.

type IdentityType

type IdentityType string

IdentityType is describes what kind of identity is described by an id

const IdentityTypeSiloGroup IdentityType = "silo_group"

IdentityTypeSiloGroup represents the IdentityType `"silo_group"`.

const IdentityTypeSiloUser IdentityType = "silo_user"

IdentityTypeSiloUser represents the IdentityType `"silo_user"`.

type IdpMetadataSource

type IdpMetadataSource struct {
	// Type is the type definition for a Type.
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	// Url is the type definition for a Url.
	Url string `json:"url,omitempty" yaml:"url,omitempty"`
	// Data is the type definition for a Data.
	Data string `json:"data,omitempty" yaml:"data,omitempty"`
}

IdpMetadataSource is the type definition for a IdpMetadataSource.

type IdpMetadataSourceBase64EncodedXml

type IdpMetadataSourceBase64EncodedXml struct {
	Data string                `json:"data,omitempty" yaml:"data,omitempty"`
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

IdpMetadataSourceBase64EncodedXml is the type definition for a IdpMetadataSourceBase64EncodedXml.

Required fields: - Data - Type

type IdpMetadataSourceType

type IdpMetadataSourceType string

IdpMetadataSourceType is the type definition for a IdpMetadataSourceType.

const IdpMetadataSourceTypeBase64EncodedXml IdpMetadataSourceType = "base64_encoded_xml"

IdpMetadataSourceTypeBase64EncodedXml represents the IdpMetadataSourceType `"base64_encoded_xml"`.

const IdpMetadataSourceTypeUrl IdpMetadataSourceType = "url"

IdpMetadataSourceTypeUrl represents the IdpMetadataSourceType `"url"`.

type IdpMetadataSourceUrl

type IdpMetadataSourceUrl struct {
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	Url  string                `json:"url,omitempty" yaml:"url,omitempty"`
}

IdpMetadataSourceUrl is the type definition for a IdpMetadataSourceUrl.

Required fields: - Type - Url

type Image

type Image struct {
	// BlockSize is size of blocks in bytes
	BlockSize ByteCount `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Digest is hash of the image contents, if applicable
	Digest Digest `json:"digest,omitempty" yaml:"digest,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Os is the family of the operating system like Debian, Ubuntu, etc.
	Os string `json:"os,omitempty" yaml:"os,omitempty"`
	// ProjectId is iD of the parent project if the image is a project image
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is total size in bytes
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// Version is version of the operating system
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

Image is view of an image

If `project_id` is present then the image is only visible inside that project. If it's not present then the image is visible to all projects in the silo.

Required fields: - BlockSize - Description - Id - Name - Os - Size - TimeCreated - TimeModified - Version

type ImageCreate

type ImageCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Os is the family of the operating system (e.g. Debian, Ubuntu, etc.)
	Os string `json:"os,omitempty" yaml:"os,omitempty"`
	// Source is the source of the image's contents.
	Source ImageSource `json:"source,omitempty" yaml:"source,omitempty"`
	// Version is the version of the operating system (e.g. 18.04, 20.04, etc.)
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

ImageCreate is create-time parameters for an `Image`

Required fields: - Description - Name - Os - Source - Version

type ImageCreateParams added in v0.0.23

type ImageCreateParams struct {
	Project NameOrId     `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *ImageCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

ImageCreateParams is the request parameters for ImageCreate

Required fields: - Body

func (*ImageCreateParams) Validate added in v0.0.23

func (p *ImageCreateParams) Validate() error

Validate verifies all required fields for ImageCreateParams are set

type ImageDeleteParams added in v0.0.23

type ImageDeleteParams struct {
	Image   NameOrId `json:"image,omitempty" yaml:"image,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ImageDeleteParams is the request parameters for ImageDelete

Required fields: - Image

func (*ImageDeleteParams) Validate added in v0.0.23

func (p *ImageDeleteParams) Validate() error

Validate verifies all required fields for ImageDeleteParams are set

type ImageDemoteParams added in v0.0.23

type ImageDemoteParams struct {
	Image   NameOrId `json:"image,omitempty" yaml:"image,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ImageDemoteParams is the request parameters for ImageDemote

Required fields: - Image - Project

func (*ImageDemoteParams) Validate added in v0.0.23

func (p *ImageDemoteParams) Validate() error

Validate verifies all required fields for ImageDemoteParams are set

type ImageListParams added in v0.0.23

type ImageListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

ImageListParams is the request parameters for ImageList

func (*ImageListParams) Validate added in v0.0.23

func (p *ImageListParams) Validate() error

Validate verifies all required fields for ImageListParams are set

type ImagePromoteParams added in v0.0.23

type ImagePromoteParams struct {
	Image   NameOrId `json:"image,omitempty" yaml:"image,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ImagePromoteParams is the request parameters for ImagePromote

Required fields: - Image

func (*ImagePromoteParams) Validate added in v0.0.23

func (p *ImagePromoteParams) Validate() error

Validate verifies all required fields for ImagePromoteParams are set

type ImageResultsPage

type ImageResultsPage struct {
	// Items is list of items on this page of results
	Items []Image `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

ImageResultsPage is a single page of results

Required fields: - Items

type ImageSource

type ImageSource struct {
	// Id is the type definition for a Id.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Type is the type definition for a Type.
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImageSource is the source of the underlying image.

type ImageSourceSnapshot

type ImageSourceSnapshot struct {
	Id   string          `json:"id,omitempty" yaml:"id,omitempty"`
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImageSourceSnapshot is the type definition for a ImageSourceSnapshot.

Required fields: - Id - Type

type ImageSourceType

type ImageSourceType string

ImageSourceType is the type definition for a ImageSourceType.

const ImageSourceTypeSnapshot ImageSourceType = "snapshot"

ImageSourceTypeSnapshot represents the ImageSourceType `"snapshot"`.

const ImageSourceTypeYouCanBootAnythingAsLongAsItsAlpine ImageSourceType = "you_can_boot_anything_as_long_as_its_alpine"

ImageSourceTypeYouCanBootAnythingAsLongAsItsAlpine represents the ImageSourceType `"you_can_boot_anything_as_long_as_its_alpine"`.

type ImageSourceYouCanBootAnythingAsLongAsItsAlpine

type ImageSourceYouCanBootAnythingAsLongAsItsAlpine struct {
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImageSourceYouCanBootAnythingAsLongAsItsAlpine is boot the Alpine ISO that ships with the Propolis zone. Intended for development purposes only.

Required fields: - Type

type ImageViewParams added in v0.0.23

type ImageViewParams struct {
	Image   NameOrId `json:"image,omitempty" yaml:"image,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ImageViewParams is the request parameters for ImageView

Required fields: - Image

func (*ImageViewParams) Validate added in v0.0.23

func (p *ImageViewParams) Validate() error

Validate verifies all required fields for ImageViewParams are set

type ImportBlocksBulkWrite added in v0.0.23

type ImportBlocksBulkWrite struct {
	Base64EncodedData string `json:"base64_encoded_data,omitempty" yaml:"base64_encoded_data,omitempty"`
	Offset            int    `json:"offset,omitempty" yaml:"offset,omitempty"`
}

ImportBlocksBulkWrite is parameters for importing blocks with a bulk write

Required fields: - Base64EncodedData - Offset

type ImportExportPolicy added in v0.2.0

type ImportExportPolicy struct {
	// Type is the type definition for a Type.
	Type ImportExportPolicyType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is the type definition for a Value.
	Value []IpNet `json:"value,omitempty" yaml:"value,omitempty"`
}

ImportExportPolicy is define policy relating to the import and export of prefixes from a BGP peer.

type ImportExportPolicyAllow added in v0.2.0

type ImportExportPolicyAllow struct {
	Type  ImportExportPolicyType `json:"type,omitempty" yaml:"type,omitempty"`
	Value []IpNet                `json:"value,omitempty" yaml:"value,omitempty"`
}

ImportExportPolicyAllow is the type definition for a ImportExportPolicyAllow.

Required fields: - Type - Value

type ImportExportPolicyNoFiltering added in v0.2.0

type ImportExportPolicyNoFiltering struct {
	Type ImportExportPolicyType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImportExportPolicyNoFiltering is do not perform any filtering.

Required fields: - Type

type ImportExportPolicyType added in v0.2.0

type ImportExportPolicyType string

ImportExportPolicyType is the type definition for a ImportExportPolicyType.

const ImportExportPolicyTypeAllow ImportExportPolicyType = "allow"

ImportExportPolicyTypeAllow represents the ImportExportPolicyType `"allow"`.

const ImportExportPolicyTypeNoFiltering ImportExportPolicyType = "no_filtering"

ImportExportPolicyTypeNoFiltering represents the ImportExportPolicyType `"no_filtering"`.

type Instance

type Instance struct {
	// AutoRestartCooldownExpiration is the time at which the auto-restart cooldown period for this instance completes,
	// permitting it to be automatically restarted again. If the instance enters the `Failed` state, it will not
	// be restarted until after this time.
	//
	// If this is not present, then either the instance has never been automatically restarted, or the cooldown period
	// has already expired, allowing the instance to be restarted immediately if it fails.
	AutoRestartCooldownExpiration *time.Time `json:"auto_restart_cooldown_expiration,omitempty" yaml:"auto_restart_cooldown_expiration,omitempty"`
	// AutoRestartEnabled is `true` if this instance's auto-restart policy will permit the control plane to
	// automatically restart it if it enters the `Failed` state.
	AutoRestartEnabled *bool `json:"auto_restart_enabled,omitempty" yaml:"auto_restart_enabled,omitempty"`
	// AutoRestartPolicy is the auto-restart policy configured for this instance, or `null` if no explicit policy
	// has been configured.
	//
	// This policy determines whether the instance should be automatically restarted by the control plane on failure.
	// If this is `null`, the control plane will use the default policy when determining whether or not to automatically restart
	// this instance, which may or may not allow it to be restarted. The value of the `auto_restart_enabled` field
	// indicates whether the instance will be auto-restarted, based on its current policy or the default if it
	// has no configured policy.
	AutoRestartPolicy InstanceAutoRestartPolicy `json:"auto_restart_policy,omitempty" yaml:"auto_restart_policy,omitempty"`
	// BootDiskId is the ID of the disk used to boot this Instance, if a specific one is assigned.
	BootDiskId string `json:"boot_disk_id,omitempty" yaml:"boot_disk_id,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Hostname is rFC1035-compliant hostname for the Instance.
	Hostname string `json:"hostname,omitempty" yaml:"hostname,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Memory is memory allocated for this Instance
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Ncpus is number of CPUs allocated for this Instance
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
	// ProjectId is id for the project containing this Instance
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// RunState is running state of an Instance (primarily: booted or stopped)
	//
	// This typically reflects whether it's starting, running, stopping, or stopped, but also includes states related
	// to the Instance's lifecycle
	RunState InstanceState `json:"run_state,omitempty" yaml:"run_state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeLastAutoRestarted is the timestamp of the most recent time this instance was automatically restarted by
	// the control plane.
	//
	// If this is not present, then this instance has not been automatically restarted.
	TimeLastAutoRestarted *time.Time `json:"time_last_auto_restarted,omitempty" yaml:"time_last_auto_restarted,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified        *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	TimeRunStateUpdated *time.Time `json:"time_run_state_updated,omitempty" yaml:"time_run_state_updated,omitempty"`
}

Instance is view of an Instance

Required fields: - AutoRestartEnabled - Description - Hostname - Id - Memory - Name - Ncpus - ProjectId - RunState - TimeCreated - TimeModified - TimeRunStateUpdated

type InstanceAutoRestartPolicy added in v0.2.0

type InstanceAutoRestartPolicy string

InstanceAutoRestartPolicy is the instance should not be automatically restarted by the control plane if it fails.

const InstanceAutoRestartPolicyBestEffort InstanceAutoRestartPolicy = "best_effort"

InstanceAutoRestartPolicyBestEffort represents the InstanceAutoRestartPolicy `"best_effort"`.

const InstanceAutoRestartPolicyNever InstanceAutoRestartPolicy = "never"

InstanceAutoRestartPolicyNever represents the InstanceAutoRestartPolicy `"never"`.

type InstanceCpuCount

type InstanceCpuCount uint16

InstanceCpuCount is the number of CPUs in an Instance

type InstanceCreate

type InstanceCreate struct {
	// AutoRestartPolicy is the auto-restart policy for this instance.
	//
	// This policy determines whether the instance should be automatically restarted by the control plane on failure.
	// If this is `null`, no auto-restart policy will be explicitly configured for this instance, and the control plane
	// will select the default policy when determining whether the instance can be automatically restarted.
	//
	// Currently, the global default auto-restart policy is "best-effort", so instances with `null` auto-restart policies
	// will be automatically restarted. However, in the future, the default policy may be configurable through other
	// mechanisms, such as on a per-project basis. In that case, any configured default policy will be used if
	// this is `null`.
	AutoRestartPolicy InstanceAutoRestartPolicy `json:"auto_restart_policy,omitempty" yaml:"auto_restart_policy,omitempty"`
	// BootDisk is the disk this instance should boot into. This disk can either be attached if it already exists,
	// or created, if it should be a new disk.
	//
	// It is strongly recommended to either provide a boot disk at instance creation, or update the instance after
	// creation to set a boot disk.
	//
	// An instance without an explicit boot disk can be booted: the options are as managed by UEFI, and as controlled by
	// the guest OS, but with some risk.  If this instance later has a disk attached or detached, it is possible that
	// boot options can end up reordered, with the intended boot disk moved after the EFI shell in boot priority. This
	// may result in an instance that only boots to the EFI shell until the desired disk is set as an explicit boot
	// disk and the instance rebooted.
	BootDisk    *InstanceDiskAttachment `json:"boot_disk,omitempty" yaml:"boot_disk,omitempty"`
	Description string                  `json:"description,omitempty" yaml:"description,omitempty"`
	// Disks is the disks to be created or attached for this instance.
	Disks []InstanceDiskAttachment `json:"disks,omitempty" yaml:"disks,omitempty"`
	// ExternalIps is the external IP addresses provided to this instance.
	//
	// By default, all instances have outbound connectivity, but no inbound connectivity. These external addresses can
	// be used to provide a fixed, known IP address for making inbound connections to the instance.
	ExternalIps []ExternalIpCreate `json:"external_ips,omitempty" yaml:"external_ips,omitempty"`
	// Hostname is the hostname to be assigned to the instance
	Hostname Hostname `json:"hostname,omitempty" yaml:"hostname,omitempty"`
	// Memory is the amount of RAM (in bytes) to be allocated to the instance
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Ncpus is the number of vCPUs to be allocated to the instance
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
	// NetworkInterfaces is the network interfaces to be created for this instance.
	NetworkInterfaces InstanceNetworkInterfaceAttachment `json:"network_interfaces,omitempty" yaml:"network_interfaces,omitempty"`
	// SshPublicKeys is an allowlist of SSH public keys to be transferred to the instance via cloud-init during
	// instance creation.
	//
	// If not provided, all SSH public keys from the user's profile will be sent. If an empty list is provided, no
	// public keys will be transmitted to the instance.
	SshPublicKeys []NameOrId `json:"ssh_public_keys" yaml:"ssh_public_keys"`
	// Start is should this instance be started upon creation; true by default.
	Start *bool `json:"start,omitempty" yaml:"start,omitempty"`
	// UserData is user data for instance initialization systems (such as cloud-init). Must be a Base64-encoded string,
	// as specified in RFC 4648 § 4 (+ and / characters with padding). Maximum 32 KiB unencoded data.
	UserData string `json:"user_data,omitempty" yaml:"user_data,omitempty"`
}

InstanceCreate is create-time parameters for an `Instance`

Required fields: - Description - Hostname - Memory - Name - Ncpus

type InstanceCreateParams added in v0.0.23

type InstanceCreateParams struct {
	Project NameOrId        `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *InstanceCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceCreateParams is the request parameters for InstanceCreate

Required fields: - Project - Body

func (*InstanceCreateParams) Validate added in v0.0.23

func (p *InstanceCreateParams) Validate() error

Validate verifies all required fields for InstanceCreateParams are set

type InstanceDeleteParams added in v0.0.23

type InstanceDeleteParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceDeleteParams is the request parameters for InstanceDelete

Required fields: - Instance

func (*InstanceDeleteParams) Validate added in v0.0.23

func (p *InstanceDeleteParams) Validate() error

Validate verifies all required fields for InstanceDeleteParams are set

type InstanceDiskAttachParams added in v0.0.23

type InstanceDiskAttachParams struct {
	Instance NameOrId  `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project  NameOrId  `json:"project,omitempty" yaml:"project,omitempty"`
	Body     *DiskPath `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceDiskAttachParams is the request parameters for InstanceDiskAttach

Required fields: - Instance - Body

func (*InstanceDiskAttachParams) Validate added in v0.0.23

func (p *InstanceDiskAttachParams) Validate() error

Validate verifies all required fields for InstanceDiskAttachParams are set

type InstanceDiskAttachment

type InstanceDiskAttachment struct {
	// Description is the type definition for a Description.
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DiskSource is the initial source for this disk
	DiskSource DiskSource `json:"disk_source,omitempty" yaml:"disk_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Size is the total size of the Disk (in bytes)
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// Type is the type definition for a Type.
	Type InstanceDiskAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceDiskAttachment is describe the instance's disks at creation time

type InstanceDiskAttachmentAttach

type InstanceDiskAttachmentAttach struct {
	// Name is a disk name to attach
	Name Name                       `json:"name,omitempty" yaml:"name,omitempty"`
	Type InstanceDiskAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceDiskAttachmentAttach is during instance creation, attach this disk

Required fields: - Name - Type

type InstanceDiskAttachmentCreate

type InstanceDiskAttachmentCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DiskSource is the initial source for this disk
	DiskSource DiskSource `json:"disk_source,omitempty" yaml:"disk_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Size is the total size of the Disk (in bytes)
	Size ByteCount                  `json:"size,omitempty" yaml:"size,omitempty"`
	Type InstanceDiskAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceDiskAttachmentCreate is during instance creation, create and attach disks

Required fields: - Description - DiskSource - Name - Size - Type

type InstanceDiskAttachmentType

type InstanceDiskAttachmentType string

InstanceDiskAttachmentType is the type definition for a InstanceDiskAttachmentType.

const InstanceDiskAttachmentTypeAttach InstanceDiskAttachmentType = "attach"

InstanceDiskAttachmentTypeAttach represents the InstanceDiskAttachmentType `"attach"`.

const InstanceDiskAttachmentTypeCreate InstanceDiskAttachmentType = "create"

InstanceDiskAttachmentTypeCreate represents the InstanceDiskAttachmentType `"create"`.

type InstanceDiskDetachParams added in v0.0.23

type InstanceDiskDetachParams struct {
	Instance NameOrId  `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project  NameOrId  `json:"project,omitempty" yaml:"project,omitempty"`
	Body     *DiskPath `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceDiskDetachParams is the request parameters for InstanceDiskDetach

Required fields: - Instance - Body

func (*InstanceDiskDetachParams) Validate added in v0.0.23

func (p *InstanceDiskDetachParams) Validate() error

Validate verifies all required fields for InstanceDiskDetachParams are set

type InstanceDiskListParams added in v0.0.23

type InstanceDiskListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Instance  NameOrId         `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceDiskListParams is the request parameters for InstanceDiskList

Required fields: - Instance

func (*InstanceDiskListParams) Validate added in v0.0.23

func (p *InstanceDiskListParams) Validate() error

Validate verifies all required fields for InstanceDiskListParams are set

type InstanceEphemeralIpAttachParams added in v0.2.0

type InstanceEphemeralIpAttachParams struct {
	Instance NameOrId           `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project  NameOrId           `json:"project,omitempty" yaml:"project,omitempty"`
	Body     *EphemeralIpCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceEphemeralIpAttachParams is the request parameters for InstanceEphemeralIpAttach

Required fields: - Instance - Body

func (*InstanceEphemeralIpAttachParams) Validate added in v0.2.0

func (p *InstanceEphemeralIpAttachParams) Validate() error

Validate verifies all required fields for InstanceEphemeralIpAttachParams are set

type InstanceEphemeralIpDetachParams added in v0.2.0

type InstanceEphemeralIpDetachParams struct {
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

InstanceEphemeralIpDetachParams is the request parameters for InstanceEphemeralIpDetach

Required fields: - Instance

func (*InstanceEphemeralIpDetachParams) Validate added in v0.2.0

func (p *InstanceEphemeralIpDetachParams) Validate() error

Validate verifies all required fields for InstanceEphemeralIpDetachParams are set

type InstanceExternalIpListParams added in v0.0.23

type InstanceExternalIpListParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceExternalIpListParams is the request parameters for InstanceExternalIpList

Required fields: - Instance

func (*InstanceExternalIpListParams) Validate added in v0.0.23

func (p *InstanceExternalIpListParams) Validate() error

Validate verifies all required fields for InstanceExternalIpListParams are set

type InstanceListParams added in v0.0.23

type InstanceListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

InstanceListParams is the request parameters for InstanceList

Required fields: - Project

func (*InstanceListParams) Validate added in v0.0.23

func (p *InstanceListParams) Validate() error

Validate verifies all required fields for InstanceListParams are set

type InstanceNetworkInterface added in v0.0.23

type InstanceNetworkInterface struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InstanceId is the Instance to which the interface belongs.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Ip is the IP address assigned to this interface.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Mac is the MAC address assigned to this interface.
	Mac MacAddr `json:"mac,omitempty" yaml:"mac,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Primary is true if this interface is the primary for the instance to which it's attached.
	Primary *bool `json:"primary,omitempty" yaml:"primary,omitempty"`
	// SubnetId is the subnet to which the interface belongs.
	SubnetId string `json:"subnet_id,omitempty" yaml:"subnet_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// TransitIps is a set of additional networks that this interface may send and receive traffic on.
	TransitIps []IpNet `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
	// VpcId is the VPC to which the interface belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

InstanceNetworkInterface is an `InstanceNetworkInterface` represents a virtual network interface device attached to an instance.

Required fields: - Description - Id - InstanceId - Ip - Mac - Name - Primary - SubnetId - TimeCreated - TimeModified - VpcId

type InstanceNetworkInterfaceAttachment

type InstanceNetworkInterfaceAttachment struct {
	// Params is the type definition for a Params.
	Params []InstanceNetworkInterfaceCreate `json:"params,omitempty" yaml:"params,omitempty"`
	// Type is the type definition for a Type.
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachment is describes an attachment of an `InstanceNetworkInterface` to an `Instance`, at the time the instance is created.

type InstanceNetworkInterfaceAttachmentCreate

type InstanceNetworkInterfaceAttachmentCreate struct {
	Params []InstanceNetworkInterfaceCreate       `json:"params,omitempty" yaml:"params,omitempty"`
	Type   InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentCreate is create one or more `InstanceNetworkInterface`s for the `Instance`.

If more than one interface is provided, then the first will be designated the primary interface for the instance.

Required fields: - Params - Type

type InstanceNetworkInterfaceAttachmentDefault

type InstanceNetworkInterfaceAttachmentDefault struct {
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentDefault is the default networking configuration for an instance is to create a single primary interface with an automatically-assigned IP address. The IP will be pulled from the Project's default VPC / VPC Subnet.

Required fields: - Type

type InstanceNetworkInterfaceAttachmentNone

type InstanceNetworkInterfaceAttachmentNone struct {
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentNone is no network interfaces at all will be created for the instance.

Required fields: - Type

type InstanceNetworkInterfaceAttachmentType

type InstanceNetworkInterfaceAttachmentType string

InstanceNetworkInterfaceAttachmentType is the type definition for a InstanceNetworkInterfaceAttachmentType.

const InstanceNetworkInterfaceAttachmentTypeCreate InstanceNetworkInterfaceAttachmentType = "create"

InstanceNetworkInterfaceAttachmentTypeCreate represents the InstanceNetworkInterfaceAttachmentType `"create"`.

const InstanceNetworkInterfaceAttachmentTypeDefault InstanceNetworkInterfaceAttachmentType = "default"

InstanceNetworkInterfaceAttachmentTypeDefault represents the InstanceNetworkInterfaceAttachmentType `"default"`.

const InstanceNetworkInterfaceAttachmentTypeNone InstanceNetworkInterfaceAttachmentType = "none"

InstanceNetworkInterfaceAttachmentTypeNone represents the InstanceNetworkInterfaceAttachmentType `"none"`.

type InstanceNetworkInterfaceCreate added in v0.0.23

type InstanceNetworkInterfaceCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Ip is the IP address for the interface. One will be auto-assigned if not provided.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// SubnetName is the VPC Subnet in which to create the interface.
	SubnetName Name `json:"subnet_name,omitempty" yaml:"subnet_name,omitempty"`
	// VpcName is the VPC in which to create the interface.
	VpcName Name `json:"vpc_name,omitempty" yaml:"vpc_name,omitempty"`
}

InstanceNetworkInterfaceCreate is create-time parameters for an `InstanceNetworkInterface`

Required fields: - Description - Name - SubnetName - VpcName

type InstanceNetworkInterfaceCreateParams added in v0.0.23

type InstanceNetworkInterfaceCreateParams struct {
	Instance NameOrId                        `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project  NameOrId                        `json:"project,omitempty" yaml:"project,omitempty"`
	Body     *InstanceNetworkInterfaceCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceNetworkInterfaceCreateParams is the request parameters for InstanceNetworkInterfaceCreate

Required fields: - Instance - Body

func (*InstanceNetworkInterfaceCreateParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceNetworkInterfaceCreateParams are set

type InstanceNetworkInterfaceDeleteParams added in v0.0.23

type InstanceNetworkInterfaceDeleteParams struct {
	Interface NameOrId `json:"interface,omitempty" yaml:"interface,omitempty"`
	Instance  NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project   NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

InstanceNetworkInterfaceDeleteParams is the request parameters for InstanceNetworkInterfaceDelete

Required fields: - Interface

func (*InstanceNetworkInterfaceDeleteParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceNetworkInterfaceDeleteParams are set

type InstanceNetworkInterfaceListParams added in v0.0.23

type InstanceNetworkInterfaceListParams struct {
	Instance  NameOrId         `json:"instance,omitempty" yaml:"instance,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

InstanceNetworkInterfaceListParams is the request parameters for InstanceNetworkInterfaceList

Required fields: - Instance

func (*InstanceNetworkInterfaceListParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceNetworkInterfaceListParams are set

type InstanceNetworkInterfaceResultsPage added in v0.0.23

type InstanceNetworkInterfaceResultsPage struct {
	// Items is list of items on this page of results
	Items []InstanceNetworkInterface `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

InstanceNetworkInterfaceResultsPage is a single page of results

Required fields: - Items

type InstanceNetworkInterfaceUpdate added in v0.0.23

type InstanceNetworkInterfaceUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
	// Primary is make a secondary interface the instance's primary interface.
	//
	// If applied to a secondary interface, that interface will become the primary on the next reboot of the instance.
	// Note that this may have implications for routing between instances, as the new primary interface will be
	// on a distinct subnet from the previous primary interface.
	//
	// Note that this can only be used to select a new primary interface for an instance. Requests to change the
	// primary interface into a secondary will return an error.
	Primary *bool `json:"primary,omitempty" yaml:"primary,omitempty"`
	// TransitIps is a set of additional networks that this interface may send and receive traffic on.
	TransitIps []IpNet `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
}

InstanceNetworkInterfaceUpdate is parameters for updating an `InstanceNetworkInterface`

Note that modifying IP addresses for an interface is not yet supported, a new interface must be created instead.

type InstanceNetworkInterfaceUpdateParams added in v0.0.23

type InstanceNetworkInterfaceUpdateParams struct {
	Interface NameOrId                        `json:"interface,omitempty" yaml:"interface,omitempty"`
	Instance  NameOrId                        `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project   NameOrId                        `json:"project,omitempty" yaml:"project,omitempty"`
	Body      *InstanceNetworkInterfaceUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceNetworkInterfaceUpdateParams is the request parameters for InstanceNetworkInterfaceUpdate

Required fields: - Interface - Body

func (*InstanceNetworkInterfaceUpdateParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceNetworkInterfaceUpdateParams are set

type InstanceNetworkInterfaceViewParams added in v0.0.23

type InstanceNetworkInterfaceViewParams struct {
	Interface NameOrId `json:"interface,omitempty" yaml:"interface,omitempty"`
	Instance  NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
	Project   NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

InstanceNetworkInterfaceViewParams is the request parameters for InstanceNetworkInterfaceView

Required fields: - Interface

func (*InstanceNetworkInterfaceViewParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceNetworkInterfaceViewParams are set

type InstanceRebootParams added in v0.0.23

type InstanceRebootParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceRebootParams is the request parameters for InstanceReboot

Required fields: - Instance

func (*InstanceRebootParams) Validate added in v0.0.23

func (p *InstanceRebootParams) Validate() error

Validate verifies all required fields for InstanceRebootParams are set

type InstanceResultsPage

type InstanceResultsPage struct {
	// Items is list of items on this page of results
	Items []Instance `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

InstanceResultsPage is a single page of results

Required fields: - Items

type InstanceSerialConsoleData

type InstanceSerialConsoleData struct {
	// Data is the bytes starting from the requested offset up to either the end of the buffer or the request's `max_bytes`.
	// Provided as a u8 array rather than a string, as it may not be UTF-8.
	Data []string `json:"data,omitempty" yaml:"data,omitempty"`
	// LastByteOffset is the absolute offset since boot (suitable for use as `byte_offset` in a subsequent request)
	// of the last byte returned in `data`.
	LastByteOffset int `json:"last_byte_offset,omitempty" yaml:"last_byte_offset,omitempty"`
}

InstanceSerialConsoleData is contents of an Instance's serial console buffer.

Required fields: - Data - LastByteOffset

type InstanceSerialConsoleParams added in v0.0.23

type InstanceSerialConsoleParams struct {
	Instance   NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
	FromStart  int      `json:"from_start,omitempty" yaml:"from_start,omitempty"`
	MaxBytes   int      `json:"max_bytes,omitempty" yaml:"max_bytes,omitempty"`
	MostRecent int      `json:"most_recent,omitempty" yaml:"most_recent,omitempty"`
	Project    NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

InstanceSerialConsoleParams is the request parameters for InstanceSerialConsole

Required fields: - Instance

func (*InstanceSerialConsoleParams) Validate added in v0.0.23

func (p *InstanceSerialConsoleParams) Validate() error

Validate verifies all required fields for InstanceSerialConsoleParams are set

type InstanceSerialConsoleStreamParams added in v0.0.23

type InstanceSerialConsoleStreamParams struct {
	Instance   NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
	MostRecent int      `json:"most_recent,omitempty" yaml:"most_recent,omitempty"`
	Project    NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

InstanceSerialConsoleStreamParams is the request parameters for InstanceSerialConsoleStream

Required fields: - Instance

func (*InstanceSerialConsoleStreamParams) Validate added in v0.0.23

Validate verifies all required fields for InstanceSerialConsoleStreamParams are set

type InstanceSshPublicKeyListParams added in v0.2.0

type InstanceSshPublicKeyListParams struct {
	Instance  NameOrId         `json:"instance,omitempty" yaml:"instance,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

InstanceSshPublicKeyListParams is the request parameters for InstanceSshPublicKeyList

Required fields: - Instance

func (*InstanceSshPublicKeyListParams) Validate added in v0.2.0

func (p *InstanceSshPublicKeyListParams) Validate() error

Validate verifies all required fields for InstanceSshPublicKeyListParams are set

type InstanceStartParams added in v0.0.23

type InstanceStartParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceStartParams is the request parameters for InstanceStart

Required fields: - Instance

func (*InstanceStartParams) Validate added in v0.0.23

func (p *InstanceStartParams) Validate() error

Validate verifies all required fields for InstanceStartParams are set

type InstanceState

type InstanceState string

InstanceState is the instance is being created.

const InstanceStateCreating InstanceState = "creating"

InstanceStateCreating represents the InstanceState `"creating"`.

const InstanceStateDestroyed InstanceState = "destroyed"

InstanceStateDestroyed represents the InstanceState `"destroyed"`.

const InstanceStateFailed InstanceState = "failed"

InstanceStateFailed represents the InstanceState `"failed"`.

const InstanceStateMigrating InstanceState = "migrating"

InstanceStateMigrating represents the InstanceState `"migrating"`.

const InstanceStateRebooting InstanceState = "rebooting"

InstanceStateRebooting represents the InstanceState `"rebooting"`.

const InstanceStateRepairing InstanceState = "repairing"

InstanceStateRepairing represents the InstanceState `"repairing"`.

const InstanceStateRunning InstanceState = "running"

InstanceStateRunning represents the InstanceState `"running"`.

const InstanceStateStarting InstanceState = "starting"

InstanceStateStarting represents the InstanceState `"starting"`.

const InstanceStateStopped InstanceState = "stopped"

InstanceStateStopped represents the InstanceState `"stopped"`.

const InstanceStateStopping InstanceState = "stopping"

InstanceStateStopping represents the InstanceState `"stopping"`.

type InstanceStopParams added in v0.0.23

type InstanceStopParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceStopParams is the request parameters for InstanceStop

Required fields: - Instance

func (*InstanceStopParams) Validate added in v0.0.23

func (p *InstanceStopParams) Validate() error

Validate verifies all required fields for InstanceStopParams are set

type InstanceUpdate added in v0.2.0

type InstanceUpdate struct {
	// AutoRestartPolicy is sets the auto-restart policy for this instance.
	//
	// This policy determines whether the instance should be automatically restarted by the control plane on failure.
	// If this is `null`, any explicitly configured auto-restart policy will be unset, and the control plane will
	// select the default policy when determining whether the instance can be automatically restarted.
	//
	// Currently, the global default auto-restart policy is "best-effort", so instances with `null` auto-restart policies
	// will be automatically restarted. However, in the future, the default policy may be configurable through other
	// mechanisms, such as on a per-project basis. In that case, any configured default policy will be used if
	// this is `null`.
	AutoRestartPolicy InstanceAutoRestartPolicy `json:"auto_restart_policy,omitempty" yaml:"auto_restart_policy,omitempty"`
	// BootDisk is name or ID of the disk the instance should be instructed to boot from.
	//
	// If not provided, unset the instance's boot disk.
	BootDisk NameOrId `json:"boot_disk,omitempty" yaml:"boot_disk,omitempty"`
	// Memory is the amount of memory to assign to this instance.
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Ncpus is the number of CPUs to assign to this instance.
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
}

InstanceUpdate is parameters of an `Instance` that can be reconfigured after creation.

Required fields: - Memory - Ncpus

type InstanceUpdateParams added in v0.2.0

type InstanceUpdateParams struct {
	Project  NameOrId        `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId        `json:"instance,omitempty" yaml:"instance,omitempty"`
	Body     *InstanceUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

InstanceUpdateParams is the request parameters for InstanceUpdate

Required fields: - Instance - Body

func (*InstanceUpdateParams) Validate added in v0.2.0

func (p *InstanceUpdateParams) Validate() error

Validate verifies all required fields for InstanceUpdateParams are set

type InstanceViewParams added in v0.0.23

type InstanceViewParams struct {
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceViewParams is the request parameters for InstanceView

Required fields: - Instance

func (*InstanceViewParams) Validate added in v0.0.23

func (p *InstanceViewParams) Validate() error

Validate verifies all required fields for InstanceViewParams are set

type InternetGateway added in v0.2.0

type InternetGateway struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which the gateway belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

InternetGateway is an internet gateway provides a path between VPC networks and external networks.

Required fields: - Description - Id - Name - TimeCreated - TimeModified - VpcId

type InternetGatewayCreate added in v0.2.0

type InternetGatewayCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

InternetGatewayCreate is create-time parameters for an `InternetGateway`

Required fields: - Description - Name

type InternetGatewayCreateParams added in v0.2.0

type InternetGatewayCreateParams struct {
	Project NameOrId               `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId               `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *InternetGatewayCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InternetGatewayCreateParams is the request parameters for InternetGatewayCreate

Required fields: - Vpc - Body

func (*InternetGatewayCreateParams) Validate added in v0.2.0

func (p *InternetGatewayCreateParams) Validate() error

Validate verifies all required fields for InternetGatewayCreateParams are set

type InternetGatewayDeleteParams added in v0.2.0

type InternetGatewayDeleteParams struct {
	Gateway NameOrId `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Cascade *bool    `json:"cascade,omitempty" yaml:"cascade,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayDeleteParams is the request parameters for InternetGatewayDelete

Required fields: - Gateway

func (*InternetGatewayDeleteParams) Validate added in v0.2.0

func (p *InternetGatewayDeleteParams) Validate() error

Validate verifies all required fields for InternetGatewayDeleteParams are set

type InternetGatewayIpAddress added in v0.2.0

type InternetGatewayIpAddress struct {
	// Address is the associated IP address,
	Address string `json:"address,omitempty" yaml:"address,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InternetGatewayId is the associated internet gateway.
	InternetGatewayId string `json:"internet_gateway_id,omitempty" yaml:"internet_gateway_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

InternetGatewayIpAddress is an IP address that is attached to an internet gateway

Required fields: - Address - Description - Id - InternetGatewayId - Name - TimeCreated - TimeModified

type InternetGatewayIpAddressCreate added in v0.2.0

type InternetGatewayIpAddressCreate struct {
	Address     string `json:"address,omitempty" yaml:"address,omitempty"`
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

InternetGatewayIpAddressCreate is create-time identity-related parameters

Required fields: - Address - Description - Name

type InternetGatewayIpAddressCreateParams added in v0.2.0

type InternetGatewayIpAddressCreateParams struct {
	Gateway NameOrId                        `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Project NameOrId                        `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId                        `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *InternetGatewayIpAddressCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InternetGatewayIpAddressCreateParams is the request parameters for InternetGatewayIpAddressCreate

Required fields: - Gateway - Body

func (*InternetGatewayIpAddressCreateParams) Validate added in v0.2.0

Validate verifies all required fields for InternetGatewayIpAddressCreateParams are set

type InternetGatewayIpAddressDeleteParams added in v0.2.0

type InternetGatewayIpAddressDeleteParams struct {
	Address NameOrId `json:"address,omitempty" yaml:"address,omitempty"`
	Cascade *bool    `json:"cascade,omitempty" yaml:"cascade,omitempty"`
	Gateway NameOrId `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayIpAddressDeleteParams is the request parameters for InternetGatewayIpAddressDelete

Required fields: - Address

func (*InternetGatewayIpAddressDeleteParams) Validate added in v0.2.0

Validate verifies all required fields for InternetGatewayIpAddressDeleteParams are set

type InternetGatewayIpAddressListParams added in v0.2.0

type InternetGatewayIpAddressListParams struct {
	Gateway   NameOrId         `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayIpAddressListParams is the request parameters for InternetGatewayIpAddressList

Required fields: - Gateway

func (*InternetGatewayIpAddressListParams) Validate added in v0.2.0

Validate verifies all required fields for InternetGatewayIpAddressListParams are set

type InternetGatewayIpAddressResultsPage added in v0.2.0

type InternetGatewayIpAddressResultsPage struct {
	// Items is list of items on this page of results
	Items []InternetGatewayIpAddress `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

InternetGatewayIpAddressResultsPage is a single page of results

Required fields: - Items

type InternetGatewayIpPool added in v0.2.0

type InternetGatewayIpPool struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InternetGatewayId is the associated internet gateway.
	InternetGatewayId string `json:"internet_gateway_id,omitempty" yaml:"internet_gateway_id,omitempty"`
	// IpPoolId is the associated IP pool.
	IpPoolId string `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

InternetGatewayIpPool is an IP pool that is attached to an internet gateway

Required fields: - Description - Id - InternetGatewayId - IpPoolId - Name - TimeCreated - TimeModified

type InternetGatewayIpPoolCreate added in v0.2.0

type InternetGatewayIpPoolCreate struct {
	Description string   `json:"description,omitempty" yaml:"description,omitempty"`
	IpPool      NameOrId `json:"ip_pool,omitempty" yaml:"ip_pool,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

InternetGatewayIpPoolCreate is create-time identity-related parameters

Required fields: - Description - IpPool - Name

type InternetGatewayIpPoolCreateParams added in v0.2.0

type InternetGatewayIpPoolCreateParams struct {
	Gateway NameOrId                     `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Project NameOrId                     `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId                     `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *InternetGatewayIpPoolCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

InternetGatewayIpPoolCreateParams is the request parameters for InternetGatewayIpPoolCreate

Required fields: - Gateway - Body

func (*InternetGatewayIpPoolCreateParams) Validate added in v0.2.0

Validate verifies all required fields for InternetGatewayIpPoolCreateParams are set

type InternetGatewayIpPoolDeleteParams added in v0.2.0

type InternetGatewayIpPoolDeleteParams struct {
	Pool    NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Cascade *bool    `json:"cascade,omitempty" yaml:"cascade,omitempty"`
	Gateway NameOrId `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayIpPoolDeleteParams is the request parameters for InternetGatewayIpPoolDelete

Required fields: - Pool

func (*InternetGatewayIpPoolDeleteParams) Validate added in v0.2.0

Validate verifies all required fields for InternetGatewayIpPoolDeleteParams are set

type InternetGatewayIpPoolListParams added in v0.2.0

type InternetGatewayIpPoolListParams struct {
	Gateway   NameOrId         `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayIpPoolListParams is the request parameters for InternetGatewayIpPoolList

Required fields: - Gateway

func (*InternetGatewayIpPoolListParams) Validate added in v0.2.0

func (p *InternetGatewayIpPoolListParams) Validate() error

Validate verifies all required fields for InternetGatewayIpPoolListParams are set

type InternetGatewayIpPoolResultsPage added in v0.2.0

type InternetGatewayIpPoolResultsPage struct {
	// Items is list of items on this page of results
	Items []InternetGatewayIpPool `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

InternetGatewayIpPoolResultsPage is a single page of results

Required fields: - Items

type InternetGatewayListParams added in v0.2.0

type InternetGatewayListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayListParams is the request parameters for InternetGatewayList

Required fields: - Vpc

func (*InternetGatewayListParams) Validate added in v0.2.0

func (p *InternetGatewayListParams) Validate() error

Validate verifies all required fields for InternetGatewayListParams are set

type InternetGatewayResultsPage added in v0.2.0

type InternetGatewayResultsPage struct {
	// Items is list of items on this page of results
	Items []InternetGateway `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

InternetGatewayResultsPage is a single page of results

Required fields: - Items

type InternetGatewayViewParams added in v0.2.0

type InternetGatewayViewParams struct {
	Gateway NameOrId `json:"gateway,omitempty" yaml:"gateway,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

InternetGatewayViewParams is the request parameters for InternetGatewayView

Required fields: - Gateway

func (*InternetGatewayViewParams) Validate added in v0.2.0

func (p *InternetGatewayViewParams) Validate() error

Validate verifies all required fields for InternetGatewayViewParams are set

type IpNet

type IpNet interface{}

IpNet is the type definition for a IpNet.

type IpPool

type IpPool struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

IpPool is a collection of IP ranges. If a pool is linked to a silo, IP addresses from the pool can be allocated within that silo

Required fields: - Description - Id - Name - TimeCreated - TimeModified

type IpPoolCreate

type IpPoolCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

IpPoolCreate is create-time parameters for an `IpPool`

Required fields: - Description - Name

type IpPoolCreateParams added in v0.0.23

type IpPoolCreateParams struct {
	Body *IpPoolCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolCreateParams is the request parameters for IpPoolCreate

Required fields: - Body

func (*IpPoolCreateParams) Validate added in v0.0.23

func (p *IpPoolCreateParams) Validate() error

Validate verifies all required fields for IpPoolCreateParams are set

type IpPoolDeleteParams added in v0.0.23

type IpPoolDeleteParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

IpPoolDeleteParams is the request parameters for IpPoolDelete

Required fields: - Pool

func (*IpPoolDeleteParams) Validate added in v0.0.23

func (p *IpPoolDeleteParams) Validate() error

Validate verifies all required fields for IpPoolDeleteParams are set

type IpPoolLinkSilo added in v0.2.0

type IpPoolLinkSilo struct {
	// IsDefault is when a pool is the default for a silo, floating IPs and instance ephemeral IPs will come from
	// that pool when no other pool is specified. There can be at most one default for a given silo.
	IsDefault *bool    `json:"is_default,omitempty" yaml:"is_default,omitempty"`
	Silo      NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

IpPoolLinkSilo is the type definition for a IpPoolLinkSilo.

Required fields: - IsDefault - Silo

type IpPoolListParams added in v0.0.23

type IpPoolListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

IpPoolListParams is the request parameters for IpPoolList

func (*IpPoolListParams) Validate added in v0.0.23

func (p *IpPoolListParams) Validate() error

Validate verifies all required fields for IpPoolListParams are set

type IpPoolRange

type IpPoolRange struct {
	Id          string     `json:"id,omitempty" yaml:"id,omitempty"`
	IpPoolId    string     `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	Range       IpRange    `json:"range,omitempty" yaml:"range,omitempty"`
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
}

IpPoolRange is the type definition for a IpPoolRange.

Required fields: - Id - IpPoolId - Range - TimeCreated

type IpPoolRangeAddParams added in v0.0.23

type IpPoolRangeAddParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolRangeAddParams is the request parameters for IpPoolRangeAdd

Required fields: - Pool - Body

func (*IpPoolRangeAddParams) Validate added in v0.0.23

func (p *IpPoolRangeAddParams) Validate() error

Validate verifies all required fields for IpPoolRangeAddParams are set

type IpPoolRangeListParams added in v0.0.23

type IpPoolRangeListParams struct {
	Pool      NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Limit     int      `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string   `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

IpPoolRangeListParams is the request parameters for IpPoolRangeList

Required fields: - Pool

func (*IpPoolRangeListParams) Validate added in v0.0.23

func (p *IpPoolRangeListParams) Validate() error

Validate verifies all required fields for IpPoolRangeListParams are set

type IpPoolRangeRemoveParams added in v0.0.23

type IpPoolRangeRemoveParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolRangeRemoveParams is the request parameters for IpPoolRangeRemove

Required fields: - Pool - Body

func (*IpPoolRangeRemoveParams) Validate added in v0.0.23

func (p *IpPoolRangeRemoveParams) Validate() error

Validate verifies all required fields for IpPoolRangeRemoveParams are set

type IpPoolRangeResultsPage

type IpPoolRangeResultsPage struct {
	// Items is list of items on this page of results
	Items []IpPoolRange `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

IpPoolRangeResultsPage is a single page of results

Required fields: - Items

type IpPoolResultsPage

type IpPoolResultsPage struct {
	// Items is list of items on this page of results
	Items []IpPool `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

IpPoolResultsPage is a single page of results

Required fields: - Items

type IpPoolServiceRangeAddParams added in v0.0.23

type IpPoolServiceRangeAddParams struct {
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolServiceRangeAddParams is the request parameters for IpPoolServiceRangeAdd

Required fields: - Body

func (*IpPoolServiceRangeAddParams) Validate added in v0.0.23

func (p *IpPoolServiceRangeAddParams) Validate() error

Validate verifies all required fields for IpPoolServiceRangeAddParams are set

type IpPoolServiceRangeListParams added in v0.0.23

type IpPoolServiceRangeListParams struct {
	Limit     int    `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

IpPoolServiceRangeListParams is the request parameters for IpPoolServiceRangeList

func (*IpPoolServiceRangeListParams) Validate added in v0.0.23

func (p *IpPoolServiceRangeListParams) Validate() error

Validate verifies all required fields for IpPoolServiceRangeListParams are set

type IpPoolServiceRangeRemoveParams added in v0.0.23

type IpPoolServiceRangeRemoveParams struct {
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolServiceRangeRemoveParams is the request parameters for IpPoolServiceRangeRemove

Required fields: - Body

func (*IpPoolServiceRangeRemoveParams) Validate added in v0.0.23

func (p *IpPoolServiceRangeRemoveParams) Validate() error

Validate verifies all required fields for IpPoolServiceRangeRemoveParams are set

type IpPoolSiloLink struct {
	IpPoolId string `json:"ip_pool_id,omitempty" yaml:"ip_pool_id,omitempty"`
	// IsDefault is when a pool is the default for a silo, floating IPs and instance ephemeral IPs will come from
	// that pool when no other pool is specified. There can be at most one default for a given silo.
	IsDefault *bool  `json:"is_default,omitempty" yaml:"is_default,omitempty"`
	SiloId    string `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
}

IpPoolSiloLink is a link between an IP pool and a silo that allows one to allocate IPs from the pool within the silo

Required fields: - IpPoolId - IsDefault - SiloId

type IpPoolSiloLinkParams added in v0.2.0

type IpPoolSiloLinkParams struct {
	Pool NameOrId        `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpPoolLinkSilo `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolSiloLinkParams is the request parameters for IpPoolSiloLink

Required fields: - Pool - Body

func (*IpPoolSiloLinkParams) Validate added in v0.2.0

func (p *IpPoolSiloLinkParams) Validate() error

Validate verifies all required fields for IpPoolSiloLinkParams are set

type IpPoolSiloLinkResultsPage added in v0.2.0

type IpPoolSiloLinkResultsPage struct {
	// Items is list of items on this page of results
	Items []IpPoolSiloLink `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

IpPoolSiloLinkResultsPage is a single page of results

Required fields: - Items

type IpPoolSiloListParams added in v0.2.0

type IpPoolSiloListParams struct {
	Pool      NameOrId   `json:"pool,omitempty" yaml:"pool,omitempty"`
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

IpPoolSiloListParams is the request parameters for IpPoolSiloList

Required fields: - Pool

func (*IpPoolSiloListParams) Validate added in v0.2.0

func (p *IpPoolSiloListParams) Validate() error

Validate verifies all required fields for IpPoolSiloListParams are set

type IpPoolSiloUnlinkParams added in v0.2.0

type IpPoolSiloUnlinkParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

IpPoolSiloUnlinkParams is the request parameters for IpPoolSiloUnlink

Required fields: - Pool - Silo

func (*IpPoolSiloUnlinkParams) Validate added in v0.2.0

func (p *IpPoolSiloUnlinkParams) Validate() error

Validate verifies all required fields for IpPoolSiloUnlinkParams are set

type IpPoolSiloUpdate added in v0.2.0

type IpPoolSiloUpdate struct {
	// IsDefault is when a pool is the default for a silo, floating IPs and instance ephemeral IPs will come from
	// that pool when no other pool is specified. There can be at most one default for a given silo, so when a
	// pool is made default, an existing default will remain linked but will no longer be the default.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty"`
}

IpPoolSiloUpdate is the type definition for a IpPoolSiloUpdate.

Required fields: - IsDefault

type IpPoolSiloUpdateParams added in v0.2.0

type IpPoolSiloUpdateParams struct {
	Pool NameOrId          `json:"pool,omitempty" yaml:"pool,omitempty"`
	Silo NameOrId          `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *IpPoolSiloUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolSiloUpdateParams is the request parameters for IpPoolSiloUpdate

Required fields: - Pool - Silo - Body

func (*IpPoolSiloUpdateParams) Validate added in v0.2.0

func (p *IpPoolSiloUpdateParams) Validate() error

Validate verifies all required fields for IpPoolSiloUpdateParams are set

type IpPoolUpdate

type IpPoolUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
}

IpPoolUpdate is parameters for updating an IP Pool

type IpPoolUpdateParams added in v0.0.23

type IpPoolUpdateParams struct {
	Pool NameOrId      `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpPoolUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

IpPoolUpdateParams is the request parameters for IpPoolUpdate

Required fields: - Pool - Body

func (*IpPoolUpdateParams) Validate added in v0.0.23

func (p *IpPoolUpdateParams) Validate() error

Validate verifies all required fields for IpPoolUpdateParams are set

type IpPoolUtilization added in v0.2.0

type IpPoolUtilization struct {
	// Ipv4 is number of allocated and total available IPv4 addresses in pool
	Ipv4 Ipv4Utilization `json:"ipv4,omitempty" yaml:"ipv4,omitempty"`
	// Ipv6 is number of allocated and total available IPv6 addresses in pool
	Ipv6 Ipv6Utilization `json:"ipv6,omitempty" yaml:"ipv6,omitempty"`
}

IpPoolUtilization is the type definition for a IpPoolUtilization.

Required fields: - Ipv4 - Ipv6

type IpPoolUtilizationViewParams added in v0.2.0

type IpPoolUtilizationViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

IpPoolUtilizationViewParams is the request parameters for IpPoolUtilizationView

Required fields: - Pool

func (*IpPoolUtilizationViewParams) Validate added in v0.2.0

func (p *IpPoolUtilizationViewParams) Validate() error

Validate verifies all required fields for IpPoolUtilizationViewParams are set

type IpPoolViewParams added in v0.0.23

type IpPoolViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

IpPoolViewParams is the request parameters for IpPoolView

Required fields: - Pool

func (*IpPoolViewParams) Validate added in v0.0.23

func (p *IpPoolViewParams) Validate() error

Validate verifies all required fields for IpPoolViewParams are set

type IpRange

type IpRange interface{}

IpRange is the type definition for a IpRange.

type Ipv4Net

type Ipv4Net string

Ipv4Net is an IPv4 subnet, including prefix and prefix length

type Ipv4Range

type Ipv4Range struct {
	First string `json:"first,omitempty" yaml:"first,omitempty"`
	Last  string `json:"last,omitempty" yaml:"last,omitempty"`
}

Ipv4Range is a non-decreasing IPv4 address range, inclusive of both ends.

The first address must be less than or equal to the last address.

Required fields: - First - Last

type Ipv4Utilization added in v0.2.0

type Ipv4Utilization struct {
	// Allocated is the number of IPv4 addresses allocated from this pool
	Allocated int `json:"allocated,omitempty" yaml:"allocated,omitempty"`
	// Capacity is the total number of IPv4 addresses in the pool, i.e., the sum of the lengths of the IPv4 ranges.
	// Unlike IPv6 capacity, can be a 32-bit integer because there are only 2^32 IPv4 addresses.
	Capacity int `json:"capacity,omitempty" yaml:"capacity,omitempty"`
}

Ipv4Utilization is the type definition for a Ipv4Utilization.

Required fields: - Allocated - Capacity

type Ipv6Net

type Ipv6Net string

Ipv6Net is an IPv6 subnet, including prefix and subnet mask

type Ipv6Range

type Ipv6Range struct {
	First string `json:"first,omitempty" yaml:"first,omitempty"`
	Last  string `json:"last,omitempty" yaml:"last,omitempty"`
}

Ipv6Range is a non-decreasing IPv6 address range, inclusive of both ends.

The first address must be less than or equal to the last address.

Required fields: - First - Last

type Ipv6Utilization added in v0.2.0

type Ipv6Utilization struct {
	// Allocated is the number of IPv6 addresses allocated from this pool. A 128-bit integer string to match the
	// capacity field.
	Allocated string `json:"allocated,omitempty" yaml:"allocated,omitempty"`
	// Capacity is the total number of IPv6 addresses in the pool, i.e., the sum of the lengths of the IPv6 ranges.
	// An IPv6 range can contain up to 2^128 addresses, so we represent this value in JSON as a numeric string with
	// a custom "uint128" format.
	Capacity string `json:"capacity,omitempty" yaml:"capacity,omitempty"`
}

Ipv6Utilization is the type definition for a Ipv6Utilization.

Required fields: - Allocated - Capacity

type L4PortRange

type L4PortRange string

L4PortRange is an inclusive-inclusive range of IP ports. The second port may be omitted to represent a single port.

type LinkConfigCreate added in v0.2.0

type LinkConfigCreate struct {
	// Autoneg is whether or not to set autonegotiation
	Autoneg *bool `json:"autoneg,omitempty" yaml:"autoneg,omitempty"`
	// Fec is the requested forward-error correction method.  If this is not specified, the standard FEC for
	// the underlying media will be applied if it can be determined.
	Fec LinkFec `json:"fec,omitempty" yaml:"fec,omitempty"`
	// Lldp is the link-layer discovery protocol (LLDP) configuration for the link.
	Lldp LldpLinkConfigCreate `json:"lldp,omitempty" yaml:"lldp,omitempty"`
	// Mtu is maximum transmission unit for the link.
	Mtu int `json:"mtu,omitempty" yaml:"mtu,omitempty"`
	// Speed is the speed of the link.
	Speed LinkSpeed `json:"speed,omitempty" yaml:"speed,omitempty"`
	// TxEq is optional tx_eq settings
	TxEq TxEqConfig `json:"tx_eq,omitempty" yaml:"tx_eq,omitempty"`
}

LinkConfigCreate is switch link configuration.

Required fields: - Autoneg - Lldp - Mtu - Speed

type LinkFec added in v0.0.23

type LinkFec string

LinkFec is firecode forward error correction.

const LinkFecFirecode LinkFec = "firecode"

LinkFecFirecode represents the LinkFec `"firecode"`.

const LinkFecNone LinkFec = "none"

LinkFecNone represents the LinkFec `"none"`.

const LinkFecRs LinkFec = "rs"

LinkFecRs represents the LinkFec `"rs"`.

type LinkSpeed added in v0.0.23

type LinkSpeed string

LinkSpeed is zero gigabits per second.

const LinkSpeedSpeed0G LinkSpeed = "speed0_g"

LinkSpeedSpeed0G represents the LinkSpeed `"speed0_g"`.

const LinkSpeedSpeed100G LinkSpeed = "speed100_g"

LinkSpeedSpeed100G represents the LinkSpeed `"speed100_g"`.

const LinkSpeedSpeed10G LinkSpeed = "speed10_g"

LinkSpeedSpeed10G represents the LinkSpeed `"speed10_g"`.

const LinkSpeedSpeed1G LinkSpeed = "speed1_g"

LinkSpeedSpeed1G represents the LinkSpeed `"speed1_g"`.

const LinkSpeedSpeed200G LinkSpeed = "speed200_g"

LinkSpeedSpeed200G represents the LinkSpeed `"speed200_g"`.

const LinkSpeedSpeed25G LinkSpeed = "speed25_g"

LinkSpeedSpeed25G represents the LinkSpeed `"speed25_g"`.

const LinkSpeedSpeed400G LinkSpeed = "speed400_g"

LinkSpeedSpeed400G represents the LinkSpeed `"speed400_g"`.

const LinkSpeedSpeed40G LinkSpeed = "speed40_g"

LinkSpeedSpeed40G represents the LinkSpeed `"speed40_g"`.

const LinkSpeedSpeed50G LinkSpeed = "speed50_g"

LinkSpeedSpeed50G represents the LinkSpeed `"speed50_g"`.

type LldpLinkConfig added in v0.2.0

type LldpLinkConfig struct {
	// ChassisId is the LLDP chassis identifier TLV.
	ChassisId string `json:"chassis_id,omitempty" yaml:"chassis_id,omitempty"`
	// Enabled is whether or not the LLDP service is enabled.
	Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
	// Id is the id of this LLDP service instance.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// LinkDescription is the LLDP link description TLV.
	LinkDescription string `json:"link_description,omitempty" yaml:"link_description,omitempty"`
	// LinkName is the LLDP link name TLV.
	LinkName string `json:"link_name,omitempty" yaml:"link_name,omitempty"`
	// ManagementIp is the LLDP management IP TLV.
	ManagementIp IpNet `json:"management_ip,omitempty" yaml:"management_ip,omitempty"`
	// SystemDescription is the LLDP system description TLV.
	SystemDescription string `json:"system_description,omitempty" yaml:"system_description,omitempty"`
	// SystemName is the LLDP system name TLV.
	SystemName string `json:"system_name,omitempty" yaml:"system_name,omitempty"`
}

LldpLinkConfig is a link layer discovery protocol (LLDP) service configuration.

Required fields: - Enabled - Id

type LldpLinkConfigCreate added in v0.2.0

type LldpLinkConfigCreate struct {
	// ChassisId is the LLDP chassis identifier TLV.
	ChassisId string `json:"chassis_id,omitempty" yaml:"chassis_id,omitempty"`
	// Enabled is whether or not LLDP is enabled.
	Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
	// LinkDescription is the LLDP link description TLV.
	LinkDescription string `json:"link_description,omitempty" yaml:"link_description,omitempty"`
	// LinkName is the LLDP link name TLV.
	LinkName string `json:"link_name,omitempty" yaml:"link_name,omitempty"`
	// ManagementIp is the LLDP management IP TLV.
	ManagementIp string `json:"management_ip,omitempty" yaml:"management_ip,omitempty"`
	// SystemDescription is the LLDP system description TLV.
	SystemDescription string `json:"system_description,omitempty" yaml:"system_description,omitempty"`
	// SystemName is the LLDP system name TLV.
	SystemName string `json:"system_name,omitempty" yaml:"system_name,omitempty"`
}

LldpLinkConfigCreate is the LLDP configuration associated with a port.

Required fields: - Enabled

type LldpNeighbor added in v0.3.0

type LldpNeighbor struct {
	// ChassisId is the LLDP chassis identifier advertised by the neighbor
	ChassisId string `json:"chassis_id,omitempty" yaml:"chassis_id,omitempty"`
	// FirstSeen is initial sighting of this LldpNeighbor
	FirstSeen *time.Time `json:"first_seen,omitempty" yaml:"first_seen,omitempty"`
	// LastSeen is most recent sighting of this LldpNeighbor
	LastSeen *time.Time `json:"last_seen,omitempty" yaml:"last_seen,omitempty"`
	// LinkDescription is the LLDP link description advertised by the neighbor
	LinkDescription string `json:"link_description,omitempty" yaml:"link_description,omitempty"`
	// LinkName is the LLDP link name advertised by the neighbor
	LinkName string `json:"link_name,omitempty" yaml:"link_name,omitempty"`
	// LocalPort is the port on which the neighbor was seen
	LocalPort string `json:"local_port,omitempty" yaml:"local_port,omitempty"`
	// ManagementIp is the LLDP management IP(s) advertised by the neighbor
	ManagementIp []IpNet `json:"management_ip,omitempty" yaml:"management_ip,omitempty"`
	// SystemDescription is the LLDP system description advertised by the neighbor
	SystemDescription string `json:"system_description,omitempty" yaml:"system_description,omitempty"`
	// SystemName is the LLDP system name advertised by the neighbor
	SystemName string `json:"system_name,omitempty" yaml:"system_name,omitempty"`
}

LldpNeighbor is information about LLDP advertisements from other network entities directly connected to a switch port. This structure contains both metadata about when and where the neighbor was seen, as well as the specific information the neighbor was advertising.

Required fields: - ChassisId - FirstSeen - LastSeen - LinkName - LocalPort - ManagementIp

type LldpNeighborResultsPage added in v0.3.0

type LldpNeighborResultsPage struct {
	// Items is list of items on this page of results
	Items []LldpNeighbor `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

LldpNeighborResultsPage is a single page of results

Required fields: - Items

type LocalIdpUserCreateParams added in v0.0.23

type LocalIdpUserCreateParams struct {
	Silo NameOrId    `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *UserCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

LocalIdpUserCreateParams is the request parameters for LocalIdpUserCreate

Required fields: - Silo - Body

func (*LocalIdpUserCreateParams) Validate added in v0.0.23

func (p *LocalIdpUserCreateParams) Validate() error

Validate verifies all required fields for LocalIdpUserCreateParams are set

type LocalIdpUserDeleteParams added in v0.0.23

type LocalIdpUserDeleteParams struct {
	UserId string   `json:"user_id,omitempty" yaml:"user_id,omitempty"`
	Silo   NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

LocalIdpUserDeleteParams is the request parameters for LocalIdpUserDelete

Required fields: - UserId - Silo

func (*LocalIdpUserDeleteParams) Validate added in v0.0.23

func (p *LocalIdpUserDeleteParams) Validate() error

Validate verifies all required fields for LocalIdpUserDeleteParams are set

type LocalIdpUserSetPasswordParams added in v0.0.23

type LocalIdpUserSetPasswordParams struct {
	UserId string        `json:"user_id,omitempty" yaml:"user_id,omitempty"`
	Silo   NameOrId      `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body   *UserPassword `json:"body,omitempty" yaml:"body,omitempty"`
}

LocalIdpUserSetPasswordParams is the request parameters for LocalIdpUserSetPassword

Required fields: - UserId - Silo - Body

func (*LocalIdpUserSetPasswordParams) Validate added in v0.0.23

func (p *LocalIdpUserSetPasswordParams) Validate() error

Validate verifies all required fields for LocalIdpUserSetPasswordParams are set

type LoginLocalParams added in v0.0.23

type LoginLocalParams struct {
	SiloName Name                         `json:"silo_name,omitempty" yaml:"silo_name,omitempty"`
	Body     *UsernamePasswordCredentials `json:"body,omitempty" yaml:"body,omitempty"`
}

LoginLocalParams is the request parameters for LoginLocal

Required fields: - SiloName - Body

func (*LoginLocalParams) Validate added in v0.0.23

func (p *LoginLocalParams) Validate() error

Validate verifies all required fields for LoginLocalParams are set

type LoginSamlParams added in v0.0.23

type LoginSamlParams struct {
	ProviderName Name      `json:"provider_name,omitempty" yaml:"provider_name,omitempty"`
	SiloName     Name      `json:"silo_name,omitempty" yaml:"silo_name,omitempty"`
	Body         io.Reader `json:"body,omitempty" yaml:"body,omitempty"`
}

LoginSamlParams is the request parameters for LoginSaml

Required fields: - ProviderName - SiloName - Body

func (*LoginSamlParams) Validate added in v0.0.23

func (p *LoginSamlParams) Validate() error

Validate verifies all required fields for LoginSamlParams are set

type LoopbackAddress added in v0.0.23

type LoopbackAddress struct {
	// Address is the loopback IP address and prefix length.
	Address IpNet `json:"address,omitempty" yaml:"address,omitempty"`
	// AddressLotBlockId is the address lot block this address came from.
	AddressLotBlockId string `json:"address_lot_block_id,omitempty" yaml:"address_lot_block_id,omitempty"`
	// Id is the id of the loopback address.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// RackId is the id of the rack where this loopback address is assigned.
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	// SwitchLocation is switch location where this loopback address is assigned.
	SwitchLocation string `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

LoopbackAddress is a loopback address is an address that is assigned to a rack switch but is not associated with any particular port.

Required fields: - Address - AddressLotBlockId - Id - RackId - SwitchLocation

type LoopbackAddressCreate added in v0.0.23

type LoopbackAddressCreate struct {
	// Address is the address to create.
	Address string `json:"address,omitempty" yaml:"address,omitempty"`
	// AddressLot is the name or id of the address lot this loopback address will pull an address from.
	AddressLot NameOrId `json:"address_lot,omitempty" yaml:"address_lot,omitempty"`
	// Anycast is address is an anycast address. This allows the address to be assigned to multiple locations simultaneously.
	//
	Anycast *bool `json:"anycast,omitempty" yaml:"anycast,omitempty"`
	// Mask is the subnet mask to use for the address.
	Mask int `json:"mask,omitempty" yaml:"mask,omitempty"`
	// RackId is the containing the switch this loopback address will be configured on.
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	// SwitchLocation is the location of the switch within the rack this loopback address will be configured on.
	//
	SwitchLocation Name `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

LoopbackAddressCreate is parameters for creating a loopback address on a particular rack switch.

Required fields: - Address - AddressLot - Anycast - Mask - RackId - SwitchLocation

type LoopbackAddressResultsPage added in v0.0.23

type LoopbackAddressResultsPage struct {
	// Items is list of items on this page of results
	Items []LoopbackAddress `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

LoopbackAddressResultsPage is a single page of results

Required fields: - Items

type MacAddr

type MacAddr string

MacAddr is a Media Access Control address, in EUI-48 format

type Measurement

type Measurement struct {
	// Datum is a `Datum` is a single sampled data point from a metric.
	Datum     Datum      `json:"datum,omitempty" yaml:"datum,omitempty"`
	Timestamp *time.Time `json:"timestamp,omitempty" yaml:"timestamp,omitempty"`
}

Measurement is a `Measurement` is a timestamped datum from a single metric

Required fields: - Datum - Timestamp

type MeasurementResultsPage

type MeasurementResultsPage struct {
	// Items is list of items on this page of results
	Items []Measurement `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

MeasurementResultsPage is a single page of results

Required fields: - Items

type MetricType added in v0.2.0

type MetricType string

MetricType is the value represents an instantaneous measurement in time.

const MetricTypeCumulative MetricType = "cumulative"

MetricTypeCumulative represents the MetricType `"cumulative"`.

const MetricTypeDelta MetricType = "delta"

MetricTypeDelta represents the MetricType `"delta"`.

const MetricTypeGauge MetricType = "gauge"

MetricTypeGauge represents the MetricType `"gauge"`.

type MissingDatum added in v0.0.23

type MissingDatum struct {
	// DatumType is the type of an individual datum of a metric.
	DatumType DatumType  `json:"datum_type,omitempty" yaml:"datum_type,omitempty"`
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
}

MissingDatum is the type definition for a MissingDatum.

Required fields: - DatumType

type Name

type Name string

Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.

type NameOrId added in v0.0.23

type NameOrId string

NameOrId is the type definition for a NameOrId.

type NameOrIdSortMode

type NameOrIdSortMode string

NameOrIdSortMode is sort in increasing order of "name"

const NameOrIdSortModeIdAscending NameOrIdSortMode = "id_ascending"

NameOrIdSortModeIdAscending represents the NameOrIdSortMode `"id_ascending"`.

const NameOrIdSortModeNameAscending NameOrIdSortMode = "name_ascending"

NameOrIdSortModeNameAscending represents the NameOrIdSortMode `"name_ascending"`.

const NameOrIdSortModeNameDescending NameOrIdSortMode = "name_descending"

NameOrIdSortModeNameDescending represents the NameOrIdSortMode `"name_descending"`.

type NameSortMode

type NameSortMode string

NameSortMode is sort in increasing order of "name"

const NameSortModeNameAscending NameSortMode = "name_ascending"

NameSortModeNameAscending represents the NameSortMode `"name_ascending"`.

type NetworkInterface

type NetworkInterface struct {
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Kind is the type of network interface
	Kind NetworkInterfaceKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Mac is a Media Access Control address, in EUI-48 format
	Mac MacAddr `json:"mac,omitempty" yaml:"mac,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name       Name    `json:"name,omitempty" yaml:"name,omitempty"`
	Primary    *bool   `json:"primary,omitempty" yaml:"primary,omitempty"`
	Slot       int     `json:"slot,omitempty" yaml:"slot,omitempty"`
	Subnet     IpNet   `json:"subnet,omitempty" yaml:"subnet,omitempty"`
	TransitIps []IpNet `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
	// Vni is a Geneve Virtual Network Identifier
	Vni Vni `json:"vni,omitempty" yaml:"vni,omitempty"`
}

NetworkInterface is information required to construct a virtual network interface

Required fields: - Id - Ip - Kind - Mac - Name - Primary - Slot - Subnet - Vni

type NetworkInterfaceKind added in v0.2.0

type NetworkInterfaceKind struct {
	// Id is the type definition for a Id.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Type is the type definition for a Type.
	Type NetworkInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

NetworkInterfaceKind is the type of network interface

type NetworkInterfaceKindInstance added in v0.2.0

type NetworkInterfaceKindInstance struct {
	Id   string                   `json:"id,omitempty" yaml:"id,omitempty"`
	Type NetworkInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

NetworkInterfaceKindInstance is a vNIC attached to a guest instance

Required fields: - Id - Type

type NetworkInterfaceKindProbe added in v0.2.0

type NetworkInterfaceKindProbe struct {
	Id   string                   `json:"id,omitempty" yaml:"id,omitempty"`
	Type NetworkInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

NetworkInterfaceKindProbe is a vNIC associated with a probe

Required fields: - Id - Type

type NetworkInterfaceKindService added in v0.2.0

type NetworkInterfaceKindService struct {
	Id   string                   `json:"id,omitempty" yaml:"id,omitempty"`
	Type NetworkInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

NetworkInterfaceKindService is a vNIC associated with an internal service

Required fields: - Id - Type

type NetworkInterfaceKindType added in v0.2.0

type NetworkInterfaceKindType string

NetworkInterfaceKindType is the type definition for a NetworkInterfaceKindType.

const NetworkInterfaceKindTypeInstance NetworkInterfaceKindType = "instance"

NetworkInterfaceKindTypeInstance represents the NetworkInterfaceKindType `"instance"`.

const NetworkInterfaceKindTypeProbe NetworkInterfaceKindType = "probe"

NetworkInterfaceKindTypeProbe represents the NetworkInterfaceKindType `"probe"`.

const NetworkInterfaceKindTypeService NetworkInterfaceKindType = "service"

NetworkInterfaceKindTypeService represents the NetworkInterfaceKindType `"service"`.

type NetworkingAddressLotBlockListParams added in v0.0.23

type NetworkingAddressLotBlockListParams struct {
	AddressLot NameOrId   `json:"address_lot,omitempty" yaml:"address_lot,omitempty"`
	Limit      int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken  string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy     IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingAddressLotBlockListParams is the request parameters for NetworkingAddressLotBlockList

Required fields: - AddressLot

func (*NetworkingAddressLotBlockListParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingAddressLotBlockListParams are set

type NetworkingAddressLotCreateParams added in v0.0.23

type NetworkingAddressLotCreateParams struct {
	Body *AddressLotCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingAddressLotCreateParams is the request parameters for NetworkingAddressLotCreate

Required fields: - Body

func (*NetworkingAddressLotCreateParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingAddressLotCreateParams are set

type NetworkingAddressLotDeleteParams added in v0.0.23

type NetworkingAddressLotDeleteParams struct {
	AddressLot NameOrId `json:"address_lot,omitempty" yaml:"address_lot,omitempty"`
}

NetworkingAddressLotDeleteParams is the request parameters for NetworkingAddressLotDelete

Required fields: - AddressLot

func (*NetworkingAddressLotDeleteParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingAddressLotDeleteParams are set

type NetworkingAddressLotListParams added in v0.0.23

type NetworkingAddressLotListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingAddressLotListParams is the request parameters for NetworkingAddressLotList

func (*NetworkingAddressLotListParams) Validate added in v0.0.23

func (p *NetworkingAddressLotListParams) Validate() error

Validate verifies all required fields for NetworkingAddressLotListParams are set

type NetworkingAllowListUpdateParams added in v0.2.0

type NetworkingAllowListUpdateParams struct {
	Body *AllowListUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingAllowListUpdateParams is the request parameters for NetworkingAllowListUpdate

Required fields: - Body

func (*NetworkingAllowListUpdateParams) Validate added in v0.2.0

func (p *NetworkingAllowListUpdateParams) Validate() error

Validate verifies all required fields for NetworkingAllowListUpdateParams are set

type NetworkingBfdDisableParams added in v0.2.0

type NetworkingBfdDisableParams struct {
	Body *BfdSessionDisable `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingBfdDisableParams is the request parameters for NetworkingBfdDisable

Required fields: - Body

func (*NetworkingBfdDisableParams) Validate added in v0.2.0

func (p *NetworkingBfdDisableParams) Validate() error

Validate verifies all required fields for NetworkingBfdDisableParams are set

type NetworkingBfdEnableParams added in v0.2.0

type NetworkingBfdEnableParams struct {
	Body *BfdSessionEnable `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingBfdEnableParams is the request parameters for NetworkingBfdEnable

Required fields: - Body

func (*NetworkingBfdEnableParams) Validate added in v0.2.0

func (p *NetworkingBfdEnableParams) Validate() error

Validate verifies all required fields for NetworkingBfdEnableParams are set

type NetworkingBgpAnnounceSetDeleteParams added in v0.0.23

type NetworkingBgpAnnounceSetDeleteParams struct {
	AnnounceSet NameOrId `json:"announce_set,omitempty" yaml:"announce_set,omitempty"`
}

NetworkingBgpAnnounceSetDeleteParams is the request parameters for NetworkingBgpAnnounceSetDelete

Required fields: - AnnounceSet

func (*NetworkingBgpAnnounceSetDeleteParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingBgpAnnounceSetDeleteParams are set

type NetworkingBgpAnnounceSetListParams added in v0.0.23

type NetworkingBgpAnnounceSetListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingBgpAnnounceSetListParams is the request parameters for NetworkingBgpAnnounceSetList

func (*NetworkingBgpAnnounceSetListParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingBgpAnnounceSetListParams are set

type NetworkingBgpAnnounceSetUpdateParams added in v0.2.0

type NetworkingBgpAnnounceSetUpdateParams struct {
	Body *BgpAnnounceSetCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingBgpAnnounceSetUpdateParams is the request parameters for NetworkingBgpAnnounceSetUpdate

Required fields: - Body

func (*NetworkingBgpAnnounceSetUpdateParams) Validate added in v0.2.0

Validate verifies all required fields for NetworkingBgpAnnounceSetUpdateParams are set

type NetworkingBgpAnnouncementListParams added in v0.2.0

type NetworkingBgpAnnouncementListParams struct {
	AnnounceSet NameOrId `json:"announce_set,omitempty" yaml:"announce_set,omitempty"`
}

NetworkingBgpAnnouncementListParams is the request parameters for NetworkingBgpAnnouncementList

Required fields: - AnnounceSet

func (*NetworkingBgpAnnouncementListParams) Validate added in v0.2.0

Validate verifies all required fields for NetworkingBgpAnnouncementListParams are set

type NetworkingBgpConfigCreateParams added in v0.0.23

type NetworkingBgpConfigCreateParams struct {
	Body *BgpConfigCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingBgpConfigCreateParams is the request parameters for NetworkingBgpConfigCreate

Required fields: - Body

func (*NetworkingBgpConfigCreateParams) Validate added in v0.0.23

func (p *NetworkingBgpConfigCreateParams) Validate() error

Validate verifies all required fields for NetworkingBgpConfigCreateParams are set

type NetworkingBgpConfigDeleteParams added in v0.0.23

type NetworkingBgpConfigDeleteParams struct {
	NameOrId NameOrId `json:"name_or_id,omitempty" yaml:"name_or_id,omitempty"`
}

NetworkingBgpConfigDeleteParams is the request parameters for NetworkingBgpConfigDelete

Required fields: - NameOrId

func (*NetworkingBgpConfigDeleteParams) Validate added in v0.0.23

func (p *NetworkingBgpConfigDeleteParams) Validate() error

Validate verifies all required fields for NetworkingBgpConfigDeleteParams are set

type NetworkingBgpConfigListParams added in v0.0.23

type NetworkingBgpConfigListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingBgpConfigListParams is the request parameters for NetworkingBgpConfigList

func (*NetworkingBgpConfigListParams) Validate added in v0.0.23

func (p *NetworkingBgpConfigListParams) Validate() error

Validate verifies all required fields for NetworkingBgpConfigListParams are set

type NetworkingBgpImportedRoutesIpv4Params added in v0.0.23

type NetworkingBgpImportedRoutesIpv4Params struct {
	Asn int `json:"asn,omitempty" yaml:"asn,omitempty"`
}

NetworkingBgpImportedRoutesIpv4Params is the request parameters for NetworkingBgpImportedRoutesIpv4

Required fields: - Asn

func (*NetworkingBgpImportedRoutesIpv4Params) Validate added in v0.0.23

Validate verifies all required fields for NetworkingBgpImportedRoutesIpv4Params are set

type NetworkingBgpMessageHistoryParams added in v0.2.0

type NetworkingBgpMessageHistoryParams struct {
	Asn int `json:"asn,omitempty" yaml:"asn,omitempty"`
}

NetworkingBgpMessageHistoryParams is the request parameters for NetworkingBgpMessageHistory

Required fields: - Asn

func (*NetworkingBgpMessageHistoryParams) Validate added in v0.2.0

Validate verifies all required fields for NetworkingBgpMessageHistoryParams are set

type NetworkingLoopbackAddressCreateParams added in v0.0.23

type NetworkingLoopbackAddressCreateParams struct {
	Body *LoopbackAddressCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingLoopbackAddressCreateParams is the request parameters for NetworkingLoopbackAddressCreate

Required fields: - Body

func (*NetworkingLoopbackAddressCreateParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingLoopbackAddressCreateParams are set

type NetworkingLoopbackAddressDeleteParams added in v0.0.23

type NetworkingLoopbackAddressDeleteParams struct {
	Address        string `json:"address,omitempty" yaml:"address,omitempty"`
	RackId         string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SubnetMask     int    `json:"subnet_mask,omitempty" yaml:"subnet_mask,omitempty"`
	SwitchLocation Name   `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

NetworkingLoopbackAddressDeleteParams is the request parameters for NetworkingLoopbackAddressDelete

Required fields: - Address - RackId - SubnetMask - SwitchLocation

func (*NetworkingLoopbackAddressDeleteParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingLoopbackAddressDeleteParams are set

type NetworkingLoopbackAddressListParams added in v0.0.23

type NetworkingLoopbackAddressListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingLoopbackAddressListParams is the request parameters for NetworkingLoopbackAddressList

func (*NetworkingLoopbackAddressListParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingLoopbackAddressListParams are set

type NetworkingSwitchPortApplySettingsParams added in v0.0.23

type NetworkingSwitchPortApplySettingsParams struct {
	Port           Name                     `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string                   `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name                     `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
	Body           *SwitchPortApplySettings `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingSwitchPortApplySettingsParams is the request parameters for NetworkingSwitchPortApplySettings

Required fields: - Port - RackId - SwitchLocation - Body

func (*NetworkingSwitchPortApplySettingsParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortApplySettingsParams are set

type NetworkingSwitchPortClearSettingsParams added in v0.0.23

type NetworkingSwitchPortClearSettingsParams struct {
	Port           Name   `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name   `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

NetworkingSwitchPortClearSettingsParams is the request parameters for NetworkingSwitchPortClearSettings

Required fields: - Port - RackId - SwitchLocation

func (*NetworkingSwitchPortClearSettingsParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortClearSettingsParams are set

type NetworkingSwitchPortListParams added in v0.0.23

type NetworkingSwitchPortListParams struct {
	Limit        int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken    string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy       IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	SwitchPortId string     `json:"switch_port_id,omitempty" yaml:"switch_port_id,omitempty"`
}

NetworkingSwitchPortListParams is the request parameters for NetworkingSwitchPortList

func (*NetworkingSwitchPortListParams) Validate added in v0.0.23

func (p *NetworkingSwitchPortListParams) Validate() error

Validate verifies all required fields for NetworkingSwitchPortListParams are set

type NetworkingSwitchPortLldpConfigUpdateParams added in v0.3.0

type NetworkingSwitchPortLldpConfigUpdateParams struct {
	Port           Name            `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string          `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name            `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
	Body           *LldpLinkConfig `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingSwitchPortLldpConfigUpdateParams is the request parameters for NetworkingSwitchPortLldpConfigUpdate

Required fields: - Port - RackId - SwitchLocation - Body

func (*NetworkingSwitchPortLldpConfigUpdateParams) Validate added in v0.3.0

Validate verifies all required fields for NetworkingSwitchPortLldpConfigUpdateParams are set

type NetworkingSwitchPortLldpConfigViewParams added in v0.3.0

type NetworkingSwitchPortLldpConfigViewParams struct {
	Port           Name   `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name   `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

NetworkingSwitchPortLldpConfigViewParams is the request parameters for NetworkingSwitchPortLldpConfigView

Required fields: - Port - RackId - SwitchLocation

func (*NetworkingSwitchPortLldpConfigViewParams) Validate added in v0.3.0

Validate verifies all required fields for NetworkingSwitchPortLldpConfigViewParams are set

type NetworkingSwitchPortLldpNeighborsParams added in v0.3.0

type NetworkingSwitchPortLldpNeighborsParams struct {
	Port           Name       `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string     `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name       `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
	Limit          int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken      string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy         IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingSwitchPortLldpNeighborsParams is the request parameters for NetworkingSwitchPortLldpNeighbors

Required fields: - Port - RackId - SwitchLocation

func (*NetworkingSwitchPortLldpNeighborsParams) Validate added in v0.3.0

Validate verifies all required fields for NetworkingSwitchPortLldpNeighborsParams are set

type NetworkingSwitchPortSettingsCreateParams added in v0.0.23

type NetworkingSwitchPortSettingsCreateParams struct {
	Body *SwitchPortSettingsCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingSwitchPortSettingsCreateParams is the request parameters for NetworkingSwitchPortSettingsCreate

Required fields: - Body

func (*NetworkingSwitchPortSettingsCreateParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortSettingsCreateParams are set

type NetworkingSwitchPortSettingsDeleteParams added in v0.0.23

type NetworkingSwitchPortSettingsDeleteParams struct {
	PortSettings NameOrId `json:"port_settings,omitempty" yaml:"port_settings,omitempty"`
}

NetworkingSwitchPortSettingsDeleteParams is the request parameters for NetworkingSwitchPortSettingsDelete

func (*NetworkingSwitchPortSettingsDeleteParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortSettingsDeleteParams are set

type NetworkingSwitchPortSettingsListParams added in v0.0.23

type NetworkingSwitchPortSettingsListParams struct {
	Limit        int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken    string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	PortSettings NameOrId         `json:"port_settings,omitempty" yaml:"port_settings,omitempty"`
	SortBy       NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

NetworkingSwitchPortSettingsListParams is the request parameters for NetworkingSwitchPortSettingsList

func (*NetworkingSwitchPortSettingsListParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortSettingsListParams are set

type NetworkingSwitchPortSettingsViewParams added in v0.0.23

type NetworkingSwitchPortSettingsViewParams struct {
	Port NameOrId `json:"port,omitempty" yaml:"port,omitempty"`
}

NetworkingSwitchPortSettingsViewParams is the request parameters for NetworkingSwitchPortSettingsView

Required fields: - Port

func (*NetworkingSwitchPortSettingsViewParams) Validate added in v0.0.23

Validate verifies all required fields for NetworkingSwitchPortSettingsViewParams are set

type NetworkingSwitchPortStatusParams added in v0.2.0

type NetworkingSwitchPortStatusParams struct {
	Port           Name   `json:"port,omitempty" yaml:"port,omitempty"`
	RackId         string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	SwitchLocation Name   `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

NetworkingSwitchPortStatusParams is the request parameters for NetworkingSwitchPortStatus

Required fields: - Port - RackId - SwitchLocation

func (*NetworkingSwitchPortStatusParams) Validate added in v0.2.0

Validate verifies all required fields for NetworkingSwitchPortStatusParams are set

type OxqlQueryResult added in v0.2.0

type OxqlQueryResult struct {
	// Tables is tables resulting from the query, each containing timeseries.
	Tables []Table `json:"tables,omitempty" yaml:"tables,omitempty"`
}

OxqlQueryResult is the result of a successful OxQL query.

Required fields: - Tables

type PaginationOrder added in v0.0.23

type PaginationOrder string

PaginationOrder is the order in which the client wants to page through the requested collection

const PaginationOrderAscending PaginationOrder = "ascending"

PaginationOrderAscending represents the PaginationOrder `"ascending"`.

const PaginationOrderDescending PaginationOrder = "descending"

PaginationOrderDescending represents the PaginationOrder `"descending"`.

type Password added in v0.0.23

type Password string

Password is passwords may be subject to additional constraints.

type PhysicalDisk added in v0.0.23

type PhysicalDisk struct {
	// FormFactor is describes the form factor of physical disks.
	FormFactor PhysicalDiskKind `json:"form_factor,omitempty" yaml:"form_factor,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id    string `json:"id,omitempty" yaml:"id,omitempty"`
	Model string `json:"model,omitempty" yaml:"model,omitempty"`
	// Policy is the operator-defined policy for a physical disk.
	Policy PhysicalDiskPolicy `json:"policy,omitempty" yaml:"policy,omitempty"`
	Serial string             `json:"serial,omitempty" yaml:"serial,omitempty"`
	// SledId is the sled to which this disk is attached, if any.
	SledId string `json:"sled_id,omitempty" yaml:"sled_id,omitempty"`
	// State is the current state Nexus believes the disk to be in.
	State PhysicalDiskState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	Vendor       string     `json:"vendor,omitempty" yaml:"vendor,omitempty"`
}

PhysicalDisk is view of a Physical Disk

Physical disks reside in a particular sled and are used to store both Instance Disk data as well as internal metadata.

Required fields: - FormFactor - Id - Model - Policy - Serial - State - TimeCreated - TimeModified - Vendor

type PhysicalDiskKind added in v0.0.23

type PhysicalDiskKind string

PhysicalDiskKind is describes the form factor of physical disks.

const PhysicalDiskKindM2 PhysicalDiskKind = "m2"

PhysicalDiskKindM2 represents the PhysicalDiskKind `"m2"`.

const PhysicalDiskKindU2 PhysicalDiskKind = "u2"

PhysicalDiskKindU2 represents the PhysicalDiskKind `"u2"`.

type PhysicalDiskListParams added in v0.0.23

type PhysicalDiskListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

PhysicalDiskListParams is the request parameters for PhysicalDiskList

func (*PhysicalDiskListParams) Validate added in v0.0.23

func (p *PhysicalDiskListParams) Validate() error

Validate verifies all required fields for PhysicalDiskListParams are set

type PhysicalDiskPolicy added in v0.2.0

type PhysicalDiskPolicy struct {
	// Kind is the type definition for a Kind.
	Kind PhysicalDiskPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

PhysicalDiskPolicy is the operator-defined policy of a physical disk.

type PhysicalDiskPolicyExpunged added in v0.2.0

type PhysicalDiskPolicyExpunged struct {
	Kind PhysicalDiskPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

PhysicalDiskPolicyExpunged is the operator has indicated that the disk has been permanently removed from service.

This is a terminal state: once a particular disk ID is expunged, it will never return to service. (The actual hardware may be reused, but it will be treated as a brand-new disk.)

An expunged disk is always non-provisionable.

Required fields: - Kind

type PhysicalDiskPolicyInService added in v0.2.0

type PhysicalDiskPolicyInService struct {
	Kind PhysicalDiskPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

PhysicalDiskPolicyInService is the operator has indicated that the disk is in-service.

Required fields: - Kind

type PhysicalDiskPolicyKind added in v0.2.0

type PhysicalDiskPolicyKind string

PhysicalDiskPolicyKind is the type definition for a PhysicalDiskPolicyKind.

const PhysicalDiskPolicyKindExpunged PhysicalDiskPolicyKind = "expunged"

PhysicalDiskPolicyKindExpunged represents the PhysicalDiskPolicyKind `"expunged"`.

const PhysicalDiskPolicyKindInService PhysicalDiskPolicyKind = "in_service"

PhysicalDiskPolicyKindInService represents the PhysicalDiskPolicyKind `"in_service"`.

type PhysicalDiskResultsPage added in v0.0.23

type PhysicalDiskResultsPage struct {
	// Items is list of items on this page of results
	Items []PhysicalDisk `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

PhysicalDiskResultsPage is a single page of results

Required fields: - Items

type PhysicalDiskState added in v0.2.0

type PhysicalDiskState string

PhysicalDiskState is the disk is currently active, and has resources allocated on it.

const PhysicalDiskStateActive PhysicalDiskState = "active"

PhysicalDiskStateActive represents the PhysicalDiskState `"active"`.

const PhysicalDiskStateDecommissioned PhysicalDiskState = "decommissioned"

PhysicalDiskStateDecommissioned represents the PhysicalDiskState `"decommissioned"`.

type PhysicalDiskViewParams added in v0.2.0

type PhysicalDiskViewParams struct {
	DiskId string `json:"disk_id,omitempty" yaml:"disk_id,omitempty"`
}

PhysicalDiskViewParams is the request parameters for PhysicalDiskView

Required fields: - DiskId

func (*PhysicalDiskViewParams) Validate added in v0.2.0

func (p *PhysicalDiskViewParams) Validate() error

Validate verifies all required fields for PhysicalDiskViewParams are set

type Ping added in v0.0.23

type Ping struct {
	// Status is whether the external API is reachable. Will always be Ok if the endpoint returns anything at
	// all.
	Status PingStatus `json:"status,omitempty" yaml:"status,omitempty"`
}

Ping is the type definition for a Ping.

Required fields: - Status

type PingStatus added in v0.0.23

type PingStatus string

PingStatus is the type definition for a PingStatus.

const PingStatusOk PingStatus = "ok"

PingStatusOk represents the PingStatus `"ok"`.

type Points added in v0.2.0

type Points struct {
	StartTimes []string `json:"start_times,omitempty" yaml:"start_times,omitempty"`
	Timestamps []string `json:"timestamps,omitempty" yaml:"timestamps,omitempty"`
	Values     []Values `json:"values,omitempty" yaml:"values,omitempty"`
}

Points is timepoints and values for one timeseries.

Required fields: - Timestamps - Values

type PolicyUpdateParams added in v0.0.23

type PolicyUpdateParams struct {
	Body *SiloRolePolicy `json:"body,omitempty" yaml:"body,omitempty"`
}

PolicyUpdateParams is the request parameters for PolicyUpdate

Required fields: - Body

func (*PolicyUpdateParams) Validate added in v0.0.23

func (p *PolicyUpdateParams) Validate() error

Validate verifies all required fields for PolicyUpdateParams are set

type Probe added in v0.2.0

type Probe struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name   `json:"name,omitempty" yaml:"name,omitempty"`
	Sled string `json:"sled,omitempty" yaml:"sled,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Probe is identity-related metadata that's included in nearly all public API objects

Required fields: - Description - Id - Name - Sled - TimeCreated - TimeModified

type ProbeCreate added in v0.2.0

type ProbeCreate struct {
	Description string   `json:"description,omitempty" yaml:"description,omitempty"`
	IpPool      NameOrId `json:"ip_pool,omitempty" yaml:"ip_pool,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name   `json:"name,omitempty" yaml:"name,omitempty"`
	Sled string `json:"sled,omitempty" yaml:"sled,omitempty"`
}

ProbeCreate is create time parameters for probes.

Required fields: - Description - Name - Sled

type ProbeCreateParams added in v0.2.0

type ProbeCreateParams struct {
	Project NameOrId     `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *ProbeCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

ProbeCreateParams is the request parameters for ProbeCreate

Required fields: - Project - Body

func (*ProbeCreateParams) Validate added in v0.2.0

func (p *ProbeCreateParams) Validate() error

Validate verifies all required fields for ProbeCreateParams are set

type ProbeDeleteParams added in v0.2.0

type ProbeDeleteParams struct {
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Probe   NameOrId `json:"probe,omitempty" yaml:"probe,omitempty"`
}

ProbeDeleteParams is the request parameters for ProbeDelete

Required fields: - Project - Probe

func (*ProbeDeleteParams) Validate added in v0.2.0

func (p *ProbeDeleteParams) Validate() error

Validate verifies all required fields for ProbeDeleteParams are set

type ProbeExternalIp added in v0.2.0

type ProbeExternalIp struct {
	FirstPort int                 `json:"first_port,omitempty" yaml:"first_port,omitempty"`
	Ip        string              `json:"ip,omitempty" yaml:"ip,omitempty"`
	Kind      ProbeExternalIpKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	LastPort  int                 `json:"last_port,omitempty" yaml:"last_port,omitempty"`
}

ProbeExternalIp is the type definition for a ProbeExternalIp.

Required fields: - FirstPort - Ip - Kind - LastPort

type ProbeExternalIpKind added in v0.2.0

type ProbeExternalIpKind string

ProbeExternalIpKind is the type definition for a ProbeExternalIpKind.

const ProbeExternalIpKindEphemeral ProbeExternalIpKind = "ephemeral"

ProbeExternalIpKindEphemeral represents the ProbeExternalIpKind `"ephemeral"`.

const ProbeExternalIpKindFloating ProbeExternalIpKind = "floating"

ProbeExternalIpKindFloating represents the ProbeExternalIpKind `"floating"`.

const ProbeExternalIpKindSnat ProbeExternalIpKind = "snat"

ProbeExternalIpKindSnat represents the ProbeExternalIpKind `"snat"`.

type ProbeInfo added in v0.2.0

type ProbeInfo struct {
	ExternalIps []ProbeExternalIp `json:"external_ips,omitempty" yaml:"external_ips,omitempty"`
	Id          string            `json:"id,omitempty" yaml:"id,omitempty"`
	// Interface is information required to construct a virtual network interface
	Interface NetworkInterface `json:"interface,omitempty" yaml:"interface,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name   `json:"name,omitempty" yaml:"name,omitempty"`
	Sled string `json:"sled,omitempty" yaml:"sled,omitempty"`
}

ProbeInfo is the type definition for a ProbeInfo.

Required fields: - ExternalIps - Id - Interface - Name - Sled

type ProbeInfoResultsPage added in v0.2.0

type ProbeInfoResultsPage struct {
	// Items is list of items on this page of results
	Items []ProbeInfo `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

ProbeInfoResultsPage is a single page of results

Required fields: - Items

type ProbeListParams added in v0.2.0

type ProbeListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

ProbeListParams is the request parameters for ProbeList

Required fields: - Project

func (*ProbeListParams) Validate added in v0.2.0

func (p *ProbeListParams) Validate() error

Validate verifies all required fields for ProbeListParams are set

type ProbeViewParams added in v0.2.0

type ProbeViewParams struct {
	Probe   NameOrId `json:"probe,omitempty" yaml:"probe,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ProbeViewParams is the request parameters for ProbeView

Required fields: - Probe - Project

func (*ProbeViewParams) Validate added in v0.2.0

func (p *ProbeViewParams) Validate() error

Validate verifies all required fields for ProbeViewParams are set

type Project

type Project struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Project is view of a Project

Required fields: - Description - Id - Name - TimeCreated - TimeModified

type ProjectCreate

type ProjectCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

ProjectCreate is create-time parameters for a `Project`

Required fields: - Description - Name

type ProjectCreateParams added in v0.0.23

type ProjectCreateParams struct {
	Body *ProjectCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

ProjectCreateParams is the request parameters for ProjectCreate

Required fields: - Body

func (*ProjectCreateParams) Validate added in v0.0.23

func (p *ProjectCreateParams) Validate() error

Validate verifies all required fields for ProjectCreateParams are set

type ProjectDeleteParams added in v0.0.23

type ProjectDeleteParams struct {
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ProjectDeleteParams is the request parameters for ProjectDelete

Required fields: - Project

func (*ProjectDeleteParams) Validate added in v0.0.23

func (p *ProjectDeleteParams) Validate() error

Validate verifies all required fields for ProjectDeleteParams are set

type ProjectIpPoolListParams added in v0.0.23

type ProjectIpPoolListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

ProjectIpPoolListParams is the request parameters for ProjectIpPoolList

func (*ProjectIpPoolListParams) Validate added in v0.0.23

func (p *ProjectIpPoolListParams) Validate() error

Validate verifies all required fields for ProjectIpPoolListParams are set

type ProjectIpPoolViewParams added in v0.0.23

type ProjectIpPoolViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

ProjectIpPoolViewParams is the request parameters for ProjectIpPoolView

Required fields: - Pool

func (*ProjectIpPoolViewParams) Validate added in v0.0.23

func (p *ProjectIpPoolViewParams) Validate() error

Validate verifies all required fields for ProjectIpPoolViewParams are set

type ProjectListParams added in v0.0.23

type ProjectListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

ProjectListParams is the request parameters for ProjectList

func (*ProjectListParams) Validate added in v0.0.23

func (p *ProjectListParams) Validate() error

Validate verifies all required fields for ProjectListParams are set

type ProjectPolicyUpdateParams added in v0.0.23

type ProjectPolicyUpdateParams struct {
	Project NameOrId           `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *ProjectRolePolicy `json:"body,omitempty" yaml:"body,omitempty"`
}

ProjectPolicyUpdateParams is the request parameters for ProjectPolicyUpdate

Required fields: - Project - Body

func (*ProjectPolicyUpdateParams) Validate added in v0.0.23

func (p *ProjectPolicyUpdateParams) Validate() error

Validate verifies all required fields for ProjectPolicyUpdateParams are set

type ProjectPolicyViewParams added in v0.0.23

type ProjectPolicyViewParams struct {
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ProjectPolicyViewParams is the request parameters for ProjectPolicyView

Required fields: - Project

func (*ProjectPolicyViewParams) Validate added in v0.0.23

func (p *ProjectPolicyViewParams) Validate() error

Validate verifies all required fields for ProjectPolicyViewParams are set

type ProjectResultsPage

type ProjectResultsPage struct {
	// Items is list of items on this page of results
	Items []Project `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

ProjectResultsPage is a single page of results

Required fields: - Items

type ProjectRole

type ProjectRole string

ProjectRole is the type definition for a ProjectRole.

const ProjectRoleAdmin ProjectRole = "admin"

ProjectRoleAdmin represents the ProjectRole `"admin"`.

const ProjectRoleCollaborator ProjectRole = "collaborator"

ProjectRoleCollaborator represents the ProjectRole `"collaborator"`.

const ProjectRoleViewer ProjectRole = "viewer"

ProjectRoleViewer represents the ProjectRole `"viewer"`.

type ProjectRolePolicy

type ProjectRolePolicy struct {
	// RoleAssignments is roles directly assigned on this resource
	RoleAssignments []ProjectRoleRoleAssignment `json:"role_assignments,omitempty" yaml:"role_assignments,omitempty"`
}

ProjectRolePolicy is policy for a particular resource

Note that the Policy only describes access granted explicitly for this resource. The policies of parent resources can also cause a user to have access to this resource.

Required fields: - RoleAssignments

type ProjectRoleRoleAssignment

type ProjectRoleRoleAssignment struct {
	IdentityId string `json:"identity_id,omitempty" yaml:"identity_id,omitempty"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type,omitempty" yaml:"identity_type,omitempty"`
	RoleName     ProjectRole  `json:"role_name,omitempty" yaml:"role_name,omitempty"`
}

ProjectRoleRoleAssignment is describes the assignment of a particular role on a particular resource to a particular identity (user, group, etc.)

The resource is not part of this structure. Rather, `RoleAssignment`s are put into a `Policy` and that Policy is applied to a particular resource.

Required fields: - IdentityId - IdentityType - RoleName

type ProjectUpdate

type ProjectUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
}

ProjectUpdate is updateable properties of a `Project`

type ProjectUpdateParams added in v0.0.23

type ProjectUpdateParams struct {
	Project NameOrId       `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *ProjectUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

ProjectUpdateParams is the request parameters for ProjectUpdate

Required fields: - Project - Body

func (*ProjectUpdateParams) Validate added in v0.0.23

func (p *ProjectUpdateParams) Validate() error

Validate verifies all required fields for ProjectUpdateParams are set

type ProjectViewParams added in v0.0.23

type ProjectViewParams struct {
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

ProjectViewParams is the request parameters for ProjectView

Required fields: - Project

func (*ProjectViewParams) Validate added in v0.0.23

func (p *ProjectViewParams) Validate() error

Validate verifies all required fields for ProjectViewParams are set

type Quantile added in v0.2.0

type Quantile struct {
	// DesiredMarkerPositions is the desired marker positions.
	DesiredMarkerPositions []string `json:"desired_marker_positions,omitempty" yaml:"desired_marker_positions,omitempty"`
	// MarkerHeights is the heights of the markers.
	MarkerHeights []string `json:"marker_heights,omitempty" yaml:"marker_heights,omitempty"`
	// MarkerPositions is the positions of the markers.
	//
	// We track sample size in the 5th position, as useful observations won't start until we've filled the heights at
	// the 6th sample anyway This does deviate from the paper, but it's a more useful representation that works according
	// to the paper's algorithm.
	MarkerPositions []string `json:"marker_positions,omitempty" yaml:"marker_positions,omitempty"`
	// P is the p value for the quantile.
	P float64 `json:"p,omitempty" yaml:"p,omitempty"`
}

Quantile is structure for estimating the p-quantile of a population.

This is based on the P² algorithm for estimating quantiles using constant space.

The algorithm consists of maintaining five markers: the minimum, the p/2-, p-, and (1 + p)/2 quantiles, and the maximum.

Required fields: - DesiredMarkerPositions - MarkerHeights - MarkerPositions - P

type Rack

type Rack struct {
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Rack is view of an Rack

Required fields: - Id - TimeCreated - TimeModified

type RackListParams added in v0.0.23

type RackListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

RackListParams is the request parameters for RackList

func (*RackListParams) Validate added in v0.0.23

func (p *RackListParams) Validate() error

Validate verifies all required fields for RackListParams are set

type RackResultsPage

type RackResultsPage struct {
	// Items is list of items on this page of results
	Items []Rack `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

RackResultsPage is a single page of results

Required fields: - Items

type RackViewParams added in v0.0.23

type RackViewParams struct {
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
}

RackViewParams is the request parameters for RackView

Required fields: - RackId

func (*RackViewParams) Validate added in v0.0.23

func (p *RackViewParams) Validate() error

Validate verifies all required fields for RackViewParams are set

type Role

type Role struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is role names consist of two string components separated by dot (".").
	Name RoleName `json:"name,omitempty" yaml:"name,omitempty"`
}

Role is view of a Role

Required fields: - Description - Name

type RoleListParams added in v0.0.23

type RoleListParams struct {
	Limit     int    `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

RoleListParams is the request parameters for RoleList

func (*RoleListParams) Validate added in v0.0.23

func (p *RoleListParams) Validate() error

Validate verifies all required fields for RoleListParams are set

type RoleName

type RoleName string

RoleName is role names consist of two string components separated by dot (".").

type RoleResultsPage

type RoleResultsPage struct {
	// Items is list of items on this page of results
	Items []Role `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

RoleResultsPage is a single page of results

Required fields: - Items

type RoleViewParams added in v0.0.23

type RoleViewParams struct {
	RoleName string `json:"role_name,omitempty" yaml:"role_name,omitempty"`
}

RoleViewParams is the request parameters for RoleView

Required fields: - RoleName

func (*RoleViewParams) Validate added in v0.0.23

func (p *RoleViewParams) Validate() error

Validate verifies all required fields for RoleViewParams are set

type Route added in v0.0.23

type Route struct {
	// Dst is the route destination.
	Dst IpNet `json:"dst,omitempty" yaml:"dst,omitempty"`
	// Gw is the route gateway.
	Gw string `json:"gw,omitempty" yaml:"gw,omitempty"`
	// RibPriority is local preference for route. Higher preference indictes precedence within and across protocols.
	//
	RibPriority int `json:"rib_priority,omitempty" yaml:"rib_priority,omitempty"`
	// Vid is vLAN id the gateway is reachable over.
	Vid int `json:"vid,omitempty" yaml:"vid,omitempty"`
}

Route is a route to a destination network through a gateway address.

Required fields: - Dst - Gw

type RouteConfig added in v0.0.23

type RouteConfig struct {
	// Routes is the set of routes assigned to a switch port.
	Routes []Route `json:"routes,omitempty" yaml:"routes,omitempty"`
}

RouteConfig is route configuration data associated with a switch port configuration.

Required fields: - Routes

type RouteDestination

type RouteDestination struct {
	// Type is the type definition for a Type.
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is the type definition for a Value.
	Value any `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestination is a `RouteDestination` is used to match traffic with a routing rule based on the destination of that traffic.

When traffic is to be sent to a destination that is within a given `RouteDestination`, the corresponding `RouterRoute` applies, and traffic will be forward to the `RouteTarget` for that rule.

type RouteDestinationIp

type RouteDestinationIp struct {
	Type  RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string               `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationIp is route applies to traffic destined for the specified IP address

Required fields: - Type - Value

type RouteDestinationIpNet

type RouteDestinationIpNet struct {
	Type  RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationIpNet is route applies to traffic destined for the specified IP subnet

Required fields: - Type - Value

type RouteDestinationSubnet

type RouteDestinationSubnet struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationSubnet is route applies to traffic destined for the specified VPC subnet

Required fields: - Type - Value

type RouteDestinationType

type RouteDestinationType string

RouteDestinationType is the type definition for a RouteDestinationType.

const RouteDestinationTypeIp RouteDestinationType = "ip"

RouteDestinationTypeIp represents the RouteDestinationType `"ip"`.

const RouteDestinationTypeIpNet RouteDestinationType = "ip_net"

RouteDestinationTypeIpNet represents the RouteDestinationType `"ip_net"`.

const RouteDestinationTypeSubnet RouteDestinationType = "subnet"

RouteDestinationTypeSubnet represents the RouteDestinationType `"subnet"`.

const RouteDestinationTypeVpc RouteDestinationType = "vpc"

RouteDestinationTypeVpc represents the RouteDestinationType `"vpc"`.

type RouteDestinationVpc

type RouteDestinationVpc struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationVpc is route applies to traffic destined for the specified VPC

Required fields: - Type - Value

type RouteTarget

type RouteTarget struct {
	// Type is the type definition for a Type.
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is the type definition for a Value.
	Value any `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTarget is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.

type RouteTargetDrop added in v0.2.0

type RouteTargetDrop struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
}

RouteTargetDrop is drop matching traffic

Required fields: - Type

type RouteTargetInstance

type RouteTargetInstance struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetInstance is forward traffic to a specific instance

Required fields: - Type - Value

type RouteTargetInternetGateway

type RouteTargetInternetGateway struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetInternetGateway is forward traffic to an internet gateway

Required fields: - Type - Value

type RouteTargetIp

type RouteTargetIp struct {
	Type  RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string          `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetIp is forward traffic to a particular IP address.

Required fields: - Type - Value

type RouteTargetSubnet

type RouteTargetSubnet struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetSubnet is forward traffic to a VPC Subnet

Required fields: - Type - Value

type RouteTargetType

type RouteTargetType string

RouteTargetType is the type definition for a RouteTargetType.

const RouteTargetTypeDrop RouteTargetType = "drop"

RouteTargetTypeDrop represents the RouteTargetType `"drop"`.

const RouteTargetTypeInstance RouteTargetType = "instance"

RouteTargetTypeInstance represents the RouteTargetType `"instance"`.

const RouteTargetTypeInternetGateway RouteTargetType = "internet_gateway"

RouteTargetTypeInternetGateway represents the RouteTargetType `"internet_gateway"`.

const RouteTargetTypeIp RouteTargetType = "ip"

RouteTargetTypeIp represents the RouteTargetType `"ip"`.

const RouteTargetTypeSubnet RouteTargetType = "subnet"

RouteTargetTypeSubnet represents the RouteTargetType `"subnet"`.

const RouteTargetTypeVpc RouteTargetType = "vpc"

RouteTargetTypeVpc represents the RouteTargetType `"vpc"`.

type RouteTargetVpc

type RouteTargetVpc struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetVpc is forward traffic to a VPC

Required fields: - Type - Value

type RouterRoute

type RouterRoute struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is selects which traffic this routing rule will apply to
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Kind is describes the kind of router. Set at creation. `read-only`
	Kind RouterRouteKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is the location that matched packets should be forwarded to
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcRouterId is the ID of the VPC Router to which the route belongs
	VpcRouterId string `json:"vpc_router_id,omitempty" yaml:"vpc_router_id,omitempty"`
}

RouterRoute is a route defines a rule that governs where traffic should be sent based on its destination.

Required fields: - Description - Destination - Id - Kind - Name - Target - TimeCreated - TimeModified - VpcRouterId

type RouterRouteCreate added in v0.2.0

type RouterRouteCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is selects which traffic this routing rule will apply to.
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is the location that matched packets should be forwarded to.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

RouterRouteCreate is create-time parameters for a `RouterRoute`

Required fields: - Description - Destination - Name - Target

type RouterRouteKind

type RouterRouteKind string

RouterRouteKind is determines the default destination of traffic, such as whether it goes to the internet or not.

`Destination: An Internet Gateway` `Modifiable: true`

const RouterRouteKindCustom RouterRouteKind = "custom"

RouterRouteKindCustom represents the RouterRouteKind `"custom"`.

const RouterRouteKindDefault RouterRouteKind = "default"

RouterRouteKindDefault represents the RouterRouteKind `"default"`.

const RouterRouteKindVpcPeering RouterRouteKind = "vpc_peering"

RouterRouteKindVpcPeering represents the RouterRouteKind `"vpc_peering"`.

const RouterRouteKindVpcSubnet RouterRouteKind = "vpc_subnet"

RouterRouteKindVpcSubnet represents the RouterRouteKind `"vpc_subnet"`.

type RouterRouteResultsPage

type RouterRouteResultsPage struct {
	// Items is list of items on this page of results
	Items []RouterRoute `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

RouterRouteResultsPage is a single page of results

Required fields: - Items

type RouterRouteUpdate added in v0.2.0

type RouterRouteUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is selects which traffic this routing rule will apply to.
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	Name        Name             `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is the location that matched packets should be forwarded to.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

RouterRouteUpdate is updateable properties of a `RouterRoute`

Required fields: - Destination - Target

type SamlIdentityProvider

type SamlIdentityProvider struct {
	// AcsUrl is service provider endpoint where the response will be sent
	AcsUrl string `json:"acs_url,omitempty" yaml:"acs_url,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// GroupAttributeName is if set, attributes with this name will be considered to denote a user's group membership,
	// where the values will be the group names.
	GroupAttributeName string `json:"group_attribute_name,omitempty" yaml:"group_attribute_name,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// IdpEntityId is idP's entity id
	IdpEntityId string `json:"idp_entity_id,omitempty" yaml:"idp_entity_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicCert is optional request signing public certificate (base64 encoded der file)
	PublicCert string `json:"public_cert,omitempty" yaml:"public_cert,omitempty"`
	// SloUrl is service provider endpoint where the idp should send log out requests
	SloUrl string `json:"slo_url,omitempty" yaml:"slo_url,omitempty"`
	// SpClientId is sP's client id
	SpClientId string `json:"sp_client_id,omitempty" yaml:"sp_client_id,omitempty"`
	// TechnicalContactEmail is customer's technical contact for saml configuration
	TechnicalContactEmail string `json:"technical_contact_email,omitempty" yaml:"technical_contact_email,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SamlIdentityProvider is identity-related metadata that's included in nearly all public API objects

Required fields: - AcsUrl - Description - Id - IdpEntityId - Name - SloUrl - SpClientId - TechnicalContactEmail - TimeCreated - TimeModified

type SamlIdentityProviderCreate

type SamlIdentityProviderCreate struct {
	// AcsUrl is service provider endpoint where the response will be sent
	AcsUrl      string `json:"acs_url,omitempty" yaml:"acs_url,omitempty"`
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// GroupAttributeName is if set, SAML attributes with this name will be considered to denote a user's group
	// membership, where the attribute value(s) should be a comma-separated list of group names.
	GroupAttributeName string `json:"group_attribute_name,omitempty" yaml:"group_attribute_name,omitempty"`
	// IdpEntityId is idp's entity id
	IdpEntityId string `json:"idp_entity_id,omitempty" yaml:"idp_entity_id,omitempty"`
	// IdpMetadataSource is the source of an identity provider metadata descriptor
	IdpMetadataSource IdpMetadataSource `json:"idp_metadata_source,omitempty" yaml:"idp_metadata_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// SigningKeypair is request signing key pair
	SigningKeypair DerEncodedKeyPair `json:"signing_keypair,omitempty" yaml:"signing_keypair,omitempty"`
	// SloUrl is service provider endpoint where the idp should send log out requests
	SloUrl string `json:"slo_url,omitempty" yaml:"slo_url,omitempty"`
	// SpClientId is sp's client id
	SpClientId string `json:"sp_client_id,omitempty" yaml:"sp_client_id,omitempty"`
	// TechnicalContactEmail is customer's technical contact for saml configuration
	TechnicalContactEmail string `json:"technical_contact_email,omitempty" yaml:"technical_contact_email,omitempty"`
}

SamlIdentityProviderCreate is create-time identity-related parameters

Required fields: - AcsUrl - Description - IdpEntityId - IdpMetadataSource - Name - SloUrl - SpClientId - TechnicalContactEmail

type SamlIdentityProviderCreateParams added in v0.0.23

type SamlIdentityProviderCreateParams struct {
	Silo NameOrId                    `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *SamlIdentityProviderCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SamlIdentityProviderCreateParams is the request parameters for SamlIdentityProviderCreate

Required fields: - Silo - Body

func (*SamlIdentityProviderCreateParams) Validate added in v0.0.23

Validate verifies all required fields for SamlIdentityProviderCreateParams are set

type SamlIdentityProviderViewParams added in v0.0.23

type SamlIdentityProviderViewParams struct {
	Provider NameOrId `json:"provider,omitempty" yaml:"provider,omitempty"`
	Silo     NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SamlIdentityProviderViewParams is the request parameters for SamlIdentityProviderView

Required fields: - Provider - Silo

func (*SamlIdentityProviderViewParams) Validate added in v0.0.23

func (p *SamlIdentityProviderViewParams) Validate() error

Validate verifies all required fields for SamlIdentityProviderViewParams are set

type ServiceUsingCertificate added in v0.0.23

type ServiceUsingCertificate string

ServiceUsingCertificate is this certificate is intended for access to the external API.

const ServiceUsingCertificateExternalApi ServiceUsingCertificate = "external_api"

ServiceUsingCertificateExternalApi represents the ServiceUsingCertificate `"external_api"`.

type Silo

type Silo struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Discoverable is a silo where discoverable is false can be retrieved only by its id - it will not be part
	// of the "list all silos" output.
	Discoverable *bool `json:"discoverable,omitempty" yaml:"discoverable,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// IdentityMode is how users and groups are managed in this Silo
	IdentityMode SiloIdentityMode `json:"identity_mode,omitempty" yaml:"identity_mode,omitempty"`
	// MappedFleetRoles is mapping of which Fleet roles are conferred by each Silo role
	//
	// The default is that no Fleet roles are conferred by any Silo roles unless there's a corresponding entry in
	// this map.
	MappedFleetRoles map[string][]FleetRole `json:"mapped_fleet_roles,omitempty" yaml:"mapped_fleet_roles,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Silo is view of a Silo

A Silo is the highest level unit of isolation.

Required fields: - Description - Discoverable - Id - IdentityMode - MappedFleetRoles - Name - TimeCreated - TimeModified

type SiloCreate

type SiloCreate struct {
	// AdminGroupName is if set, this group will be created during Silo creation and granted the "Silo Admin" role.
	// Identity providers can assert that users belong to this group and those users can log in and further initialize
	// the Silo.
	//
	// Note that if configuring a SAML based identity provider, group_attribute_name must be set for users to be
	// considered part of a group. See `SamlIdentityProviderCreate` for more information.
	AdminGroupName string `json:"admin_group_name,omitempty" yaml:"admin_group_name,omitempty"`
	Description    string `json:"description,omitempty" yaml:"description,omitempty"`
	Discoverable   *bool  `json:"discoverable,omitempty" yaml:"discoverable,omitempty"`
	// IdentityMode is describes how identities are managed and users are authenticated in this Silo
	IdentityMode SiloIdentityMode `json:"identity_mode,omitempty" yaml:"identity_mode,omitempty"`
	// MappedFleetRoles is mapping of which Fleet roles are conferred by each Silo role
	//
	// The default is that no Fleet roles are conferred by any Silo roles unless there's a corresponding entry in
	// this map.
	MappedFleetRoles map[string][]FleetRole `json:"mapped_fleet_roles,omitempty" yaml:"mapped_fleet_roles,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Quotas is limits the amount of provisionable CPU, memory, and storage in the Silo. CPU and memory are
	// only consumed by running instances, while storage is consumed by any disk or snapshot. A value of 0 means that
	// resource is *not* provisionable.
	Quotas SiloQuotasCreate `json:"quotas,omitempty" yaml:"quotas,omitempty"`
	// TlsCertificates is initial TLS certificates to be used for the new Silo's console and API endpoints.
	// These should be valid for the Silo's DNS name(s).
	TlsCertificates []CertificateCreate `json:"tls_certificates,omitempty" yaml:"tls_certificates,omitempty"`
}

SiloCreate is create-time parameters for a `Silo`

Required fields: - Description - Discoverable - IdentityMode - Name - Quotas - TlsCertificates

type SiloCreateParams added in v0.0.23

type SiloCreateParams struct {
	Body *SiloCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SiloCreateParams is the request parameters for SiloCreate

Required fields: - Body

func (*SiloCreateParams) Validate added in v0.0.23

func (p *SiloCreateParams) Validate() error

Validate verifies all required fields for SiloCreateParams are set

type SiloDeleteParams added in v0.0.23

type SiloDeleteParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloDeleteParams is the request parameters for SiloDelete

Required fields: - Silo

func (*SiloDeleteParams) Validate added in v0.0.23

func (p *SiloDeleteParams) Validate() error

Validate verifies all required fields for SiloDeleteParams are set

type SiloIdentityMode added in v0.0.23

type SiloIdentityMode string

SiloIdentityMode is users are authenticated with SAML using an external authentication provider. The system updates information about users and groups only during successful authentication (i.e,. "JIT provisioning" of users and groups).

const SiloIdentityModeLocalOnly SiloIdentityMode = "local_only"

SiloIdentityModeLocalOnly represents the SiloIdentityMode `"local_only"`.

const SiloIdentityModeSamlJit SiloIdentityMode = "saml_jit"

SiloIdentityModeSamlJit represents the SiloIdentityMode `"saml_jit"`.

type SiloIdentityProviderListParams added in v0.0.23

type SiloIdentityProviderListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Silo      NameOrId         `json:"silo,omitempty" yaml:"silo,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SiloIdentityProviderListParams is the request parameters for SiloIdentityProviderList

Required fields: - Silo

func (*SiloIdentityProviderListParams) Validate added in v0.0.23

func (p *SiloIdentityProviderListParams) Validate() error

Validate verifies all required fields for SiloIdentityProviderListParams are set

type SiloIpPool added in v0.2.0

type SiloIpPool struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// IsDefault is when a pool is the default for a silo, floating IPs and instance ephemeral IPs will come from
	// that pool when no other pool is specified. There can be at most one default for a given silo.
	IsDefault *bool `json:"is_default,omitempty" yaml:"is_default,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SiloIpPool is an IP pool in the context of a silo

Required fields: - Description - Id - IsDefault - Name - TimeCreated - TimeModified

type SiloIpPoolListParams added in v0.2.0

type SiloIpPoolListParams struct {
	Silo      NameOrId         `json:"silo,omitempty" yaml:"silo,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SiloIpPoolListParams is the request parameters for SiloIpPoolList

Required fields: - Silo

func (*SiloIpPoolListParams) Validate added in v0.2.0

func (p *SiloIpPoolListParams) Validate() error

Validate verifies all required fields for SiloIpPoolListParams are set

type SiloIpPoolResultsPage added in v0.2.0

type SiloIpPoolResultsPage struct {
	// Items is list of items on this page of results
	Items []SiloIpPool `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SiloIpPoolResultsPage is a single page of results

Required fields: - Items

type SiloListParams added in v0.0.23

type SiloListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SiloListParams is the request parameters for SiloList

func (*SiloListParams) Validate added in v0.0.23

func (p *SiloListParams) Validate() error

Validate verifies all required fields for SiloListParams are set

type SiloMetricParams added in v0.0.23

type SiloMetricParams struct {
	MetricName SystemMetricName `json:"metric_name,omitempty" yaml:"metric_name,omitempty"`
	EndTime    *time.Time       `json:"end_time,omitempty" yaml:"end_time,omitempty"`
	Limit      int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	Order      PaginationOrder  `json:"order,omitempty" yaml:"order,omitempty"`
	PageToken  string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	StartTime  *time.Time       `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Project    NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
}

SiloMetricParams is the request parameters for SiloMetric

Required fields: - EndTime - StartTime - MetricName

func (*SiloMetricParams) Validate added in v0.0.23

func (p *SiloMetricParams) Validate() error

Validate verifies all required fields for SiloMetricParams are set

type SiloPolicyUpdateParams added in v0.0.23

type SiloPolicyUpdateParams struct {
	Silo NameOrId        `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *SiloRolePolicy `json:"body,omitempty" yaml:"body,omitempty"`
}

SiloPolicyUpdateParams is the request parameters for SiloPolicyUpdate

Required fields: - Silo - Body

func (*SiloPolicyUpdateParams) Validate added in v0.0.23

func (p *SiloPolicyUpdateParams) Validate() error

Validate verifies all required fields for SiloPolicyUpdateParams are set

type SiloPolicyViewParams added in v0.0.23

type SiloPolicyViewParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloPolicyViewParams is the request parameters for SiloPolicyView

Required fields: - Silo

func (*SiloPolicyViewParams) Validate added in v0.0.23

func (p *SiloPolicyViewParams) Validate() error

Validate verifies all required fields for SiloPolicyViewParams are set

type SiloQuotas added in v0.0.23

type SiloQuotas struct {
	// Cpus is number of virtual CPUs
	Cpus int `json:"cpus,omitempty" yaml:"cpus,omitempty"`
	// Memory is amount of memory in bytes
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	SiloId string    `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
	// Storage is amount of disk storage in bytes
	Storage ByteCount `json:"storage,omitempty" yaml:"storage,omitempty"`
}

SiloQuotas is a collection of resource counts used to set the virtual capacity of a silo

Required fields: - Cpus - Memory - SiloId - Storage

type SiloQuotasCreate added in v0.0.23

type SiloQuotasCreate struct {
	// Cpus is the amount of virtual CPUs available for running instances in the Silo
	Cpus int `json:"cpus,omitempty" yaml:"cpus,omitempty"`
	// Memory is the amount of RAM (in bytes) available for running instances in the Silo
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Storage is the amount of storage (in bytes) available for disks or snapshots
	Storage ByteCount `json:"storage,omitempty" yaml:"storage,omitempty"`
}

SiloQuotasCreate is the amount of provisionable resources for a Silo

Required fields: - Cpus - Memory - Storage

type SiloQuotasResultsPage added in v0.0.23

type SiloQuotasResultsPage struct {
	// Items is list of items on this page of results
	Items []SiloQuotas `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SiloQuotasResultsPage is a single page of results

Required fields: - Items

type SiloQuotasUpdate added in v0.0.23

type SiloQuotasUpdate struct {
	// Cpus is the amount of virtual CPUs available for running instances in the Silo
	Cpus int `json:"cpus,omitempty" yaml:"cpus,omitempty"`
	// Memory is the amount of RAM (in bytes) available for running instances in the Silo
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Storage is the amount of storage (in bytes) available for disks or snapshots
	Storage ByteCount `json:"storage,omitempty" yaml:"storage,omitempty"`
}

SiloQuotasUpdate is updateable properties of a Silo's resource limits. If a value is omitted it will not be updated.

type SiloQuotasUpdateParams added in v0.0.23

type SiloQuotasUpdateParams struct {
	Silo NameOrId          `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *SiloQuotasUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

SiloQuotasUpdateParams is the request parameters for SiloQuotasUpdate

Required fields: - Silo - Body

func (*SiloQuotasUpdateParams) Validate added in v0.0.23

func (p *SiloQuotasUpdateParams) Validate() error

Validate verifies all required fields for SiloQuotasUpdateParams are set

type SiloQuotasViewParams added in v0.0.23

type SiloQuotasViewParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloQuotasViewParams is the request parameters for SiloQuotasView

Required fields: - Silo

func (*SiloQuotasViewParams) Validate added in v0.0.23

func (p *SiloQuotasViewParams) Validate() error

Validate verifies all required fields for SiloQuotasViewParams are set

type SiloResultsPage

type SiloResultsPage struct {
	// Items is list of items on this page of results
	Items []Silo `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SiloResultsPage is a single page of results

Required fields: - Items

type SiloRole

type SiloRole string

SiloRole is the type definition for a SiloRole.

const SiloRoleAdmin SiloRole = "admin"

SiloRoleAdmin represents the SiloRole `"admin"`.

const SiloRoleCollaborator SiloRole = "collaborator"

SiloRoleCollaborator represents the SiloRole `"collaborator"`.

const SiloRoleViewer SiloRole = "viewer"

SiloRoleViewer represents the SiloRole `"viewer"`.

type SiloRolePolicy

type SiloRolePolicy struct {
	// RoleAssignments is roles directly assigned on this resource
	RoleAssignments []SiloRoleRoleAssignment `json:"role_assignments,omitempty" yaml:"role_assignments,omitempty"`
}

SiloRolePolicy is policy for a particular resource

Note that the Policy only describes access granted explicitly for this resource. The policies of parent resources can also cause a user to have access to this resource.

Required fields: - RoleAssignments

type SiloRoleRoleAssignment

type SiloRoleRoleAssignment struct {
	IdentityId string `json:"identity_id,omitempty" yaml:"identity_id,omitempty"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type,omitempty" yaml:"identity_type,omitempty"`
	RoleName     SiloRole     `json:"role_name,omitempty" yaml:"role_name,omitempty"`
}

SiloRoleRoleAssignment is describes the assignment of a particular role on a particular resource to a particular identity (user, group, etc.)

The resource is not part of this structure. Rather, `RoleAssignment`s are put into a `Policy` and that Policy is applied to a particular resource.

Required fields: - IdentityId - IdentityType - RoleName

type SiloUserListParams added in v0.0.23

type SiloUserListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Silo      NameOrId   `json:"silo,omitempty" yaml:"silo,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SiloUserListParams is the request parameters for SiloUserList

Required fields: - Silo

func (*SiloUserListParams) Validate added in v0.0.23

func (p *SiloUserListParams) Validate() error

Validate verifies all required fields for SiloUserListParams are set

type SiloUserViewParams added in v0.0.23

type SiloUserViewParams struct {
	UserId string   `json:"user_id,omitempty" yaml:"user_id,omitempty"`
	Silo   NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloUserViewParams is the request parameters for SiloUserView

Required fields: - UserId - Silo

func (*SiloUserViewParams) Validate added in v0.0.23

func (p *SiloUserViewParams) Validate() error

Validate verifies all required fields for SiloUserViewParams are set

type SiloUtilization added in v0.0.23

type SiloUtilization struct {
	// Allocated is accounts for the total amount of resources reserved for silos via their quotas
	Allocated VirtualResourceCounts `json:"allocated,omitempty" yaml:"allocated,omitempty"`
	// Provisioned is accounts for resources allocated by in silos like CPU or memory for running instances and
	// storage for disks and snapshots Note that CPU and memory resources associated with a stopped instances are
	// not counted here
	Provisioned VirtualResourceCounts `json:"provisioned,omitempty" yaml:"provisioned,omitempty"`
	SiloId      string                `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
	// SiloName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII,
	// uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a
	// UUID. They can be at most 63 characters long.
	SiloName Name `json:"silo_name,omitempty" yaml:"silo_name,omitempty"`
}

SiloUtilization is view of a silo's resource utilization and capacity

Required fields: - Allocated - Provisioned - SiloId - SiloName

type SiloUtilizationListParams added in v0.0.23

type SiloUtilizationListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SiloUtilizationListParams is the request parameters for SiloUtilizationList

func (*SiloUtilizationListParams) Validate added in v0.0.23

func (p *SiloUtilizationListParams) Validate() error

Validate verifies all required fields for SiloUtilizationListParams are set

type SiloUtilizationResultsPage added in v0.0.23

type SiloUtilizationResultsPage struct {
	// Items is list of items on this page of results
	Items []SiloUtilization `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SiloUtilizationResultsPage is a single page of results

Required fields: - Items

type SiloUtilizationViewParams added in v0.0.23

type SiloUtilizationViewParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloUtilizationViewParams is the request parameters for SiloUtilizationView

Required fields: - Silo

func (*SiloUtilizationViewParams) Validate added in v0.0.23

func (p *SiloUtilizationViewParams) Validate() error

Validate verifies all required fields for SiloUtilizationViewParams are set

type SiloViewParams added in v0.0.23

type SiloViewParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SiloViewParams is the request parameters for SiloView

Required fields: - Silo

func (*SiloViewParams) Validate added in v0.0.23

func (p *SiloViewParams) Validate() error

Validate verifies all required fields for SiloViewParams are set

type Sled

type Sled struct {
	// Baseboard is properties that uniquely identify an Oxide hardware component
	Baseboard Baseboard `json:"baseboard,omitempty" yaml:"baseboard,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Policy is the operator-defined policy of a sled.
	Policy SledPolicy `json:"policy,omitempty" yaml:"policy,omitempty"`
	// RackId is the rack to which this Sled is currently attached
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	// State is the current state Nexus believes the sled to be in.
	State SledState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// UsableHardwareThreads is the number of hardware threads which can execute on this sled
	UsableHardwareThreads int `json:"usable_hardware_threads,omitempty" yaml:"usable_hardware_threads,omitempty"`
	// UsablePhysicalRam is amount of RAM which may be used by the Sled's OS
	UsablePhysicalRam ByteCount `json:"usable_physical_ram,omitempty" yaml:"usable_physical_ram,omitempty"`
}

Sled is an operator's view of a Sled.

Required fields: - Baseboard - Id - Policy - RackId - State - TimeCreated - TimeModified - UsableHardwareThreads - UsablePhysicalRam

type SledAddParams added in v0.2.0

type SledAddParams struct {
	Body *UninitializedSledId `json:"body,omitempty" yaml:"body,omitempty"`
}

SledAddParams is the request parameters for SledAdd

Required fields: - Body

func (*SledAddParams) Validate added in v0.2.0

func (p *SledAddParams) Validate() error

Validate verifies all required fields for SledAddParams are set

type SledId added in v0.2.0

type SledId struct {
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
}

SledId is the unique ID of a sled.

Required fields: - Id

type SledInstance added in v0.0.23

type SledInstance struct {
	ActiveSledId string `json:"active_sled_id,omitempty" yaml:"active_sled_id,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id          string `json:"id,omitempty" yaml:"id,omitempty"`
	Memory      int    `json:"memory,omitempty" yaml:"memory,omitempty"`
	MigrationId string `json:"migration_id,omitempty" yaml:"migration_id,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name  Name `json:"name,omitempty" yaml:"name,omitempty"`
	Ncpus int  `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
	// ProjectName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII,
	// uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a
	// UUID. They can be at most 63 characters long.
	ProjectName Name `json:"project_name,omitempty" yaml:"project_name,omitempty"`
	// SiloName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII,
	// uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a
	// UUID. They can be at most 63 characters long.
	SiloName Name `json:"silo_name,omitempty" yaml:"silo_name,omitempty"`
	// State is running state of an Instance (primarily: booted or stopped)
	//
	// This typically reflects whether it's starting, running, stopping, or stopped, but also includes states related
	// to the Instance's lifecycle
	State InstanceState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SledInstance is an operator's view of an instance running on a given sled

Required fields: - ActiveSledId - Id - Memory - Name - Ncpus - ProjectName - SiloName - State - TimeCreated - TimeModified

type SledInstanceListParams added in v0.0.23

type SledInstanceListParams struct {
	SledId    string     `json:"sled_id,omitempty" yaml:"sled_id,omitempty"`
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SledInstanceListParams is the request parameters for SledInstanceList

Required fields: - SledId

func (*SledInstanceListParams) Validate added in v0.0.23

func (p *SledInstanceListParams) Validate() error

Validate verifies all required fields for SledInstanceListParams are set

type SledInstanceResultsPage added in v0.0.23

type SledInstanceResultsPage struct {
	// Items is list of items on this page of results
	Items []SledInstance `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SledInstanceResultsPage is a single page of results

Required fields: - Items

type SledListParams added in v0.0.23

type SledListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SledListParams is the request parameters for SledList

func (*SledListParams) Validate added in v0.0.23

func (p *SledListParams) Validate() error

Validate verifies all required fields for SledListParams are set

type SledListUninitializedParams added in v0.2.0

type SledListUninitializedParams struct {
	Limit     int    `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

SledListUninitializedParams is the request parameters for SledListUninitialized

func (*SledListUninitializedParams) Validate added in v0.2.0

func (p *SledListUninitializedParams) Validate() error

Validate verifies all required fields for SledListUninitializedParams are set

type SledPhysicalDiskListParams added in v0.0.23

type SledPhysicalDiskListParams struct {
	SledId    string     `json:"sled_id,omitempty" yaml:"sled_id,omitempty"`
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SledPhysicalDiskListParams is the request parameters for SledPhysicalDiskList

Required fields: - SledId

func (*SledPhysicalDiskListParams) Validate added in v0.0.23

func (p *SledPhysicalDiskListParams) Validate() error

Validate verifies all required fields for SledPhysicalDiskListParams are set

type SledPolicy added in v0.2.0

type SledPolicy struct {
	// Kind is the type definition for a Kind.
	Kind SledPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// ProvisionPolicy is determines whether new resources can be provisioned onto the sled.
	ProvisionPolicy SledProvisionPolicy `json:"provision_policy,omitempty" yaml:"provision_policy,omitempty"`
}

SledPolicy is the operator-defined policy of a sled.

type SledPolicyExpunged added in v0.2.0

type SledPolicyExpunged struct {
	Kind SledPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

SledPolicyExpunged is the operator has indicated that the sled has been permanently removed from service.

This is a terminal state: once a particular sled ID is expunged, it will never return to service. (The actual hardware may be reused, but it will be treated as a brand-new sled.)

An expunged sled is always non-provisionable.

Required fields: - Kind

type SledPolicyInService added in v0.2.0

type SledPolicyInService struct {
	Kind SledPolicyKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// ProvisionPolicy is determines whether new resources can be provisioned onto the sled.
	ProvisionPolicy SledProvisionPolicy `json:"provision_policy,omitempty" yaml:"provision_policy,omitempty"`
}

SledPolicyInService is the operator has indicated that the sled is in-service.

Required fields: - Kind - ProvisionPolicy

type SledPolicyKind added in v0.2.0

type SledPolicyKind string

SledPolicyKind is the type definition for a SledPolicyKind.

const SledPolicyKindExpunged SledPolicyKind = "expunged"

SledPolicyKindExpunged represents the SledPolicyKind `"expunged"`.

const SledPolicyKindInService SledPolicyKind = "in_service"

SledPolicyKindInService represents the SledPolicyKind `"in_service"`.

type SledProvisionPolicy added in v0.2.0

type SledProvisionPolicy string

SledProvisionPolicy is new resources will be provisioned on this sled.

const SledProvisionPolicyNonProvisionable SledProvisionPolicy = "non_provisionable"

SledProvisionPolicyNonProvisionable represents the SledProvisionPolicy `"non_provisionable"`.

const SledProvisionPolicyProvisionable SledProvisionPolicy = "provisionable"

SledProvisionPolicyProvisionable represents the SledProvisionPolicy `"provisionable"`.

type SledProvisionPolicyParams added in v0.2.0

type SledProvisionPolicyParams struct {
	// State is the provision state.
	State SledProvisionPolicy `json:"state,omitempty" yaml:"state,omitempty"`
}

SledProvisionPolicyParams is parameters for `sled_set_provision_policy`.

Required fields: - State

type SledProvisionPolicyResponse added in v0.2.0

type SledProvisionPolicyResponse struct {
	// NewState is the new provision state.
	NewState SledProvisionPolicy `json:"new_state,omitempty" yaml:"new_state,omitempty"`
	// OldState is the old provision state.
	OldState SledProvisionPolicy `json:"old_state,omitempty" yaml:"old_state,omitempty"`
}

SledProvisionPolicyResponse is response to `sled_set_provision_policy`.

Required fields: - NewState - OldState

type SledResultsPage

type SledResultsPage struct {
	// Items is list of items on this page of results
	Items []Sled `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SledResultsPage is a single page of results

Required fields: - Items

type SledSetProvisionPolicyParams added in v0.2.0

type SledSetProvisionPolicyParams struct {
	SledId string                     `json:"sled_id,omitempty" yaml:"sled_id,omitempty"`
	Body   *SledProvisionPolicyParams `json:"body,omitempty" yaml:"body,omitempty"`
}

SledSetProvisionPolicyParams is the request parameters for SledSetProvisionPolicy

Required fields: - SledId - Body

func (*SledSetProvisionPolicyParams) Validate added in v0.2.0

func (p *SledSetProvisionPolicyParams) Validate() error

Validate verifies all required fields for SledSetProvisionPolicyParams are set

type SledState added in v0.2.0

type SledState string

SledState is the sled is currently active, and has resources allocated on it.

const SledStateActive SledState = "active"

SledStateActive represents the SledState `"active"`.

const SledStateDecommissioned SledState = "decommissioned"

SledStateDecommissioned represents the SledState `"decommissioned"`.

type SledViewParams added in v0.0.23

type SledViewParams struct {
	SledId string `json:"sled_id,omitempty" yaml:"sled_id,omitempty"`
}

SledViewParams is the request parameters for SledView

Required fields: - SledId

func (*SledViewParams) Validate added in v0.0.23

func (p *SledViewParams) Validate() error

Validate verifies all required fields for SledViewParams are set

type Snapshot

type Snapshot struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	DiskId      string `json:"disk_id,omitempty" yaml:"disk_id,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty"`
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is byte count to express memory or storage capacity.
	Size  ByteCount     `json:"size,omitempty" yaml:"size,omitempty"`
	State SnapshotState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Snapshot is view of a Snapshot

Required fields: - Description - DiskId - Id - Name - ProjectId - Size - State - TimeCreated - TimeModified

type SnapshotCreate

type SnapshotCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Disk is the disk to be snapshotted
	Disk NameOrId `json:"disk,omitempty" yaml:"disk,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

SnapshotCreate is create-time parameters for a `Snapshot`

Required fields: - Description - Disk - Name

type SnapshotCreateParams added in v0.0.23

type SnapshotCreateParams struct {
	Project NameOrId        `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *SnapshotCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SnapshotCreateParams is the request parameters for SnapshotCreate

Required fields: - Project - Body

func (*SnapshotCreateParams) Validate added in v0.0.23

func (p *SnapshotCreateParams) Validate() error

Validate verifies all required fields for SnapshotCreateParams are set

type SnapshotDeleteParams added in v0.0.23

type SnapshotDeleteParams struct {
	Snapshot NameOrId `json:"snapshot,omitempty" yaml:"snapshot,omitempty"`
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

SnapshotDeleteParams is the request parameters for SnapshotDelete

Required fields: - Snapshot

func (*SnapshotDeleteParams) Validate added in v0.0.23

func (p *SnapshotDeleteParams) Validate() error

Validate verifies all required fields for SnapshotDeleteParams are set

type SnapshotListParams added in v0.0.23

type SnapshotListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SnapshotListParams is the request parameters for SnapshotList

Required fields: - Project

func (*SnapshotListParams) Validate added in v0.0.23

func (p *SnapshotListParams) Validate() error

Validate verifies all required fields for SnapshotListParams are set

type SnapshotResultsPage

type SnapshotResultsPage struct {
	// Items is list of items on this page of results
	Items []Snapshot `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SnapshotResultsPage is a single page of results

Required fields: - Items

type SnapshotState

type SnapshotState string

SnapshotState is the type definition for a SnapshotState.

const SnapshotStateCreating SnapshotState = "creating"

SnapshotStateCreating represents the SnapshotState `"creating"`.

const SnapshotStateDestroyed SnapshotState = "destroyed"

SnapshotStateDestroyed represents the SnapshotState `"destroyed"`.

const SnapshotStateFaulted SnapshotState = "faulted"

SnapshotStateFaulted represents the SnapshotState `"faulted"`.

const SnapshotStateReady SnapshotState = "ready"

SnapshotStateReady represents the SnapshotState `"ready"`.

type SnapshotViewParams added in v0.0.23

type SnapshotViewParams struct {
	Snapshot NameOrId `json:"snapshot,omitempty" yaml:"snapshot,omitempty"`
	Project  NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

SnapshotViewParams is the request parameters for SnapshotView

Required fields: - Snapshot

func (*SnapshotViewParams) Validate added in v0.0.23

func (p *SnapshotViewParams) Validate() error

Validate verifies all required fields for SnapshotViewParams are set

type SshKey

type SshKey struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key,omitempty" yaml:"public_key,omitempty"`
	// SiloUserId is the user to whom this key belongs
	SiloUserId string `json:"silo_user_id,omitempty" yaml:"silo_user_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SshKey is view of an SSH Key

Required fields: - Description - Id - Name - PublicKey - SiloUserId - TimeCreated - TimeModified

type SshKeyCreate

type SshKeyCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key,omitempty" yaml:"public_key,omitempty"`
}

SshKeyCreate is create-time parameters for an `SshKey`

Required fields: - Description - Name - PublicKey

type SshKeyResultsPage

type SshKeyResultsPage struct {
	// Items is list of items on this page of results
	Items []SshKey `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SshKeyResultsPage is a single page of results

Required fields: - Items

type SupportBundleDeleteParams added in v0.3.0

type SupportBundleDeleteParams struct {
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleDeleteParams is the request parameters for SupportBundleDelete

Required fields: - SupportBundle

func (*SupportBundleDeleteParams) Validate added in v0.3.0

func (p *SupportBundleDeleteParams) Validate() error

Validate verifies all required fields for SupportBundleDeleteParams are set

type SupportBundleDownloadFileParams added in v0.3.0

type SupportBundleDownloadFileParams struct {
	File          string `json:"file,omitempty" yaml:"file,omitempty"`
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleDownloadFileParams is the request parameters for SupportBundleDownloadFile

Required fields: - File - SupportBundle

func (*SupportBundleDownloadFileParams) Validate added in v0.3.0

func (p *SupportBundleDownloadFileParams) Validate() error

Validate verifies all required fields for SupportBundleDownloadFileParams are set

type SupportBundleDownloadParams added in v0.3.0

type SupportBundleDownloadParams struct {
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleDownloadParams is the request parameters for SupportBundleDownload

Required fields: - SupportBundle

func (*SupportBundleDownloadParams) Validate added in v0.3.0

func (p *SupportBundleDownloadParams) Validate() error

Validate verifies all required fields for SupportBundleDownloadParams are set

type SupportBundleHeadFileParams added in v0.3.0

type SupportBundleHeadFileParams struct {
	File          string `json:"file,omitempty" yaml:"file,omitempty"`
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleHeadFileParams is the request parameters for SupportBundleHeadFile

Required fields: - File - SupportBundle

func (*SupportBundleHeadFileParams) Validate added in v0.3.0

func (p *SupportBundleHeadFileParams) Validate() error

Validate verifies all required fields for SupportBundleHeadFileParams are set

type SupportBundleHeadParams added in v0.3.0

type SupportBundleHeadParams struct {
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleHeadParams is the request parameters for SupportBundleHead

Required fields: - SupportBundle

func (*SupportBundleHeadParams) Validate added in v0.3.0

func (p *SupportBundleHeadParams) Validate() error

Validate verifies all required fields for SupportBundleHeadParams are set

type SupportBundleIndexParams added in v0.3.0

type SupportBundleIndexParams struct {
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleIndexParams is the request parameters for SupportBundleIndex

Required fields: - SupportBundle

func (*SupportBundleIndexParams) Validate added in v0.3.0

func (p *SupportBundleIndexParams) Validate() error

Validate verifies all required fields for SupportBundleIndexParams are set

type SupportBundleInfo added in v0.3.0

type SupportBundleInfo struct {
	Id                TypedUuidForSupportBundleKind `json:"id,omitempty" yaml:"id,omitempty"`
	ReasonForCreation string                        `json:"reason_for_creation,omitempty" yaml:"reason_for_creation,omitempty"`
	ReasonForFailure  string                        `json:"reason_for_failure,omitempty" yaml:"reason_for_failure,omitempty"`
	State             SupportBundleState            `json:"state,omitempty" yaml:"state,omitempty"`
	TimeCreated       *time.Time                    `json:"time_created,omitempty" yaml:"time_created,omitempty"`
}

SupportBundleInfo is the type definition for a SupportBundleInfo.

Required fields: - Id - ReasonForCreation - State - TimeCreated

type SupportBundleInfoResultsPage added in v0.3.0

type SupportBundleInfoResultsPage struct {
	// Items is list of items on this page of results
	Items []SupportBundleInfo `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SupportBundleInfoResultsPage is a single page of results

Required fields: - Items

type SupportBundleListParams added in v0.3.0

type SupportBundleListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SupportBundleListParams is the request parameters for SupportBundleList

func (*SupportBundleListParams) Validate added in v0.3.0

func (p *SupportBundleListParams) Validate() error

Validate verifies all required fields for SupportBundleListParams are set

type SupportBundleState added in v0.3.0

type SupportBundleState string

SupportBundleState is support Bundle still actively being collected.

This is the initial state for a Support Bundle, and it will automatically transition to either "Failing" or "Active".

If a user no longer wants to access a Support Bundle, they can request cancellation, which will transition to the "Destroying" state.

const SupportBundleStateActive SupportBundleState = "active"

SupportBundleStateActive represents the SupportBundleState `"active"`.

const SupportBundleStateCollecting SupportBundleState = "collecting"

SupportBundleStateCollecting represents the SupportBundleState `"collecting"`.

const SupportBundleStateDestroying SupportBundleState = "destroying"

SupportBundleStateDestroying represents the SupportBundleState `"destroying"`.

const SupportBundleStateFailed SupportBundleState = "failed"

SupportBundleStateFailed represents the SupportBundleState `"failed"`.

type SupportBundleViewParams added in v0.3.0

type SupportBundleViewParams struct {
	SupportBundle string `json:"support_bundle,omitempty" yaml:"support_bundle,omitempty"`
}

SupportBundleViewParams is the request parameters for SupportBundleView

Required fields: - SupportBundle

func (*SupportBundleViewParams) Validate added in v0.3.0

func (p *SupportBundleViewParams) Validate() error

Validate verifies all required fields for SupportBundleViewParams are set

type Switch added in v0.0.23

type Switch struct {
	// Baseboard is properties that uniquely identify an Oxide hardware component
	Baseboard Baseboard `json:"baseboard,omitempty" yaml:"baseboard,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// RackId is the rack to which this Switch is currently attached
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Switch is an operator's view of a Switch.

Required fields: - Baseboard - Id - RackId - TimeCreated - TimeModified

type SwitchBgpHistory added in v0.2.0

type SwitchBgpHistory struct {
	// History is message history indexed by peer address.
	History BgpMessageHistory `json:"history,omitempty" yaml:"history,omitempty"`
	// Switch is switch this message history is associated with.
	Switch SwitchLocation `json:"switch,omitempty" yaml:"switch,omitempty"`
}

SwitchBgpHistory is bGP message history for a particular switch.

Required fields: - History - Switch

type SwitchInterfaceConfig added in v0.0.23

type SwitchInterfaceConfig struct {
	// Id is a unique identifier for this switch interface.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InterfaceName is the name of this switch interface.
	InterfaceName string `json:"interface_name,omitempty" yaml:"interface_name,omitempty"`
	// Kind is the switch interface kind.
	Kind SwitchInterfaceKind2 `json:"kind,omitempty" yaml:"kind,omitempty"`
	// PortSettingsId is the port settings object this switch interface configuration belongs to.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
	// V6Enabled is whether or not IPv6 is enabled on this interface.
	V6Enabled *bool `json:"v6_enabled,omitempty" yaml:"v6_enabled,omitempty"`
}

SwitchInterfaceConfig is a switch port interface configuration for a port settings object.

Required fields: - Id - InterfaceName - Kind - PortSettingsId - V6Enabled

type SwitchInterfaceConfigCreate added in v0.2.0

type SwitchInterfaceConfigCreate struct {
	// Kind is what kind of switch interface this configuration represents.
	Kind SwitchInterfaceKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// V6Enabled is whether or not IPv6 is enabled.
	V6Enabled *bool `json:"v6_enabled,omitempty" yaml:"v6_enabled,omitempty"`
}

SwitchInterfaceConfigCreate is a layer-3 switch interface configuration. When IPv6 is enabled, a link local address will be created for the interface.

Required fields: - Kind - V6Enabled

type SwitchInterfaceKind added in v0.0.23

type SwitchInterfaceKind struct {
	// Type is the type definition for a Type.
	Type SwitchInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
	// Vid is the virtual network id (VID) that distinguishes this interface and is used for producing and consuming
	// 802.1Q Ethernet tags. This field has a maximum value of 4095 as 802.1Q tags are twelve bits.
	Vid int `json:"vid,omitempty" yaml:"vid,omitempty"`
}

SwitchInterfaceKind is indicates the kind for a switch interface.

type SwitchInterfaceKind2 added in v0.2.0

type SwitchInterfaceKind2 string

SwitchInterfaceKind2 is primary interfaces are associated with physical links. There is exactly one primary interface per physical link.

const SwitchInterfaceKind2Loopback SwitchInterfaceKind2 = "loopback"

SwitchInterfaceKind2Loopback represents the SwitchInterfaceKind2 `"loopback"`.

const SwitchInterfaceKind2Primary SwitchInterfaceKind2 = "primary"

SwitchInterfaceKind2Primary represents the SwitchInterfaceKind2 `"primary"`.

const SwitchInterfaceKind2Vlan SwitchInterfaceKind2 = "vlan"

SwitchInterfaceKind2Vlan represents the SwitchInterfaceKind2 `"vlan"`.

type SwitchInterfaceKindLoopback added in v0.0.23

type SwitchInterfaceKindLoopback struct {
	Type SwitchInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

SwitchInterfaceKindLoopback is loopback interfaces are anchors for IP addresses that are not specific to any particular port.

Required fields: - Type

type SwitchInterfaceKindPrimary added in v0.0.23

type SwitchInterfaceKindPrimary struct {
	Type SwitchInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
}

SwitchInterfaceKindPrimary is primary interfaces are associated with physical links. There is exactly one primary interface per physical link.

Required fields: - Type

type SwitchInterfaceKindType added in v0.0.23

type SwitchInterfaceKindType string

SwitchInterfaceKindType is the type definition for a SwitchInterfaceKindType.

const SwitchInterfaceKindTypeLoopback SwitchInterfaceKindType = "loopback"

SwitchInterfaceKindTypeLoopback represents the SwitchInterfaceKindType `"loopback"`.

const SwitchInterfaceKindTypePrimary SwitchInterfaceKindType = "primary"

SwitchInterfaceKindTypePrimary represents the SwitchInterfaceKindType `"primary"`.

const SwitchInterfaceKindTypeVlan SwitchInterfaceKindType = "vlan"

SwitchInterfaceKindTypeVlan represents the SwitchInterfaceKindType `"vlan"`.

type SwitchInterfaceKindVlan added in v0.0.23

type SwitchInterfaceKindVlan struct {
	Type SwitchInterfaceKindType `json:"type,omitempty" yaml:"type,omitempty"`
	// Vid is the virtual network id (VID) that distinguishes this interface and is used for producing and consuming
	// 802.1Q Ethernet tags. This field has a maximum value of 4095 as 802.1Q tags are twelve bits.
	Vid int `json:"vid,omitempty" yaml:"vid,omitempty"`
}

SwitchInterfaceKindVlan is vLAN interfaces allow physical interfaces to be multiplexed onto multiple logical links, each distinguished by a 12-bit 802.1Q Ethernet tag.

Required fields: - Type - Vid

type SwitchLinkState added in v0.2.0

type SwitchLinkState string

SwitchLinkState is the type definition for a SwitchLinkState.

type SwitchListParams added in v0.0.23

type SwitchListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SwitchListParams is the request parameters for SwitchList

func (*SwitchListParams) Validate added in v0.0.23

func (p *SwitchListParams) Validate() error

Validate verifies all required fields for SwitchListParams are set

type SwitchLocation added in v0.0.23

type SwitchLocation string

SwitchLocation is switch in upper slot

const SwitchLocationSwitch0 SwitchLocation = "switch0"

SwitchLocationSwitch0 represents the SwitchLocation `"switch0"`.

const SwitchLocationSwitch1 SwitchLocation = "switch1"

SwitchLocationSwitch1 represents the SwitchLocation `"switch1"`.

type SwitchPort added in v0.0.23

type SwitchPort struct {
	// Id is the id of the switch port.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// PortName is the name of this switch port.
	PortName string `json:"port_name,omitempty" yaml:"port_name,omitempty"`
	// PortSettingsId is the primary settings group of this switch port. Will be `None` until this switch port
	// is configured.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
	// RackId is the rack this switch port belongs to.
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	// SwitchLocation is the switch location of this switch port.
	SwitchLocation string `json:"switch_location,omitempty" yaml:"switch_location,omitempty"`
}

SwitchPort is a switch port represents a physical external port on a rack switch.

Required fields: - Id - PortName - RackId - SwitchLocation

type SwitchPortAddressConfig added in v0.0.23

type SwitchPortAddressConfig struct {
	// Address is the IP address and prefix.
	Address IpNet `json:"address,omitempty" yaml:"address,omitempty"`
	// AddressLotBlockId is the id of the address lot block this address is drawn from.
	AddressLotBlockId string `json:"address_lot_block_id,omitempty" yaml:"address_lot_block_id,omitempty"`
	// InterfaceName is the interface name this address belongs to.
	InterfaceName string `json:"interface_name,omitempty" yaml:"interface_name,omitempty"`
	// PortSettingsId is the port settings object this address configuration belongs to.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
	// VlanId is an optional VLAN ID
	VlanId int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

SwitchPortAddressConfig is an IP address configuration for a port settings object.

Required fields: - Address - AddressLotBlockId - InterfaceName - PortSettingsId

type SwitchPortApplySettings added in v0.0.23

type SwitchPortApplySettings struct {
	// PortSettings is a name or id to use when applying switch port settings.
	PortSettings NameOrId `json:"port_settings,omitempty" yaml:"port_settings,omitempty"`
}

SwitchPortApplySettings is parameters for applying settings to switch ports.

Required fields: - PortSettings

type SwitchPortConfig added in v0.0.23

type SwitchPortConfig struct {
	// Geometry is the physical link geometry of the port.
	Geometry SwitchPortGeometry2 `json:"geometry,omitempty" yaml:"geometry,omitempty"`
	// PortSettingsId is the id of the port settings object this configuration belongs to.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
}

SwitchPortConfig is a physical port configuration for a port settings object.

Required fields: - Geometry - PortSettingsId

type SwitchPortConfigCreate added in v0.2.0

type SwitchPortConfigCreate struct {
	// Geometry is link geometry for the switch port.
	Geometry SwitchPortGeometry `json:"geometry,omitempty" yaml:"geometry,omitempty"`
}

SwitchPortConfigCreate is physical switch port configuration.

Required fields: - Geometry

type SwitchPortGeometry added in v0.0.23

type SwitchPortGeometry string

SwitchPortGeometry is the port contains a single QSFP28 link with four lanes.

const SwitchPortGeometryQsfp28X1 SwitchPortGeometry = "qsfp28x1"

SwitchPortGeometryQsfp28X1 represents the SwitchPortGeometry `"qsfp28x1"`.

const SwitchPortGeometryQsfp28X2 SwitchPortGeometry = "qsfp28x2"

SwitchPortGeometryQsfp28X2 represents the SwitchPortGeometry `"qsfp28x2"`.

const SwitchPortGeometrySfp28X4 SwitchPortGeometry = "sfp28x4"

SwitchPortGeometrySfp28X4 represents the SwitchPortGeometry `"sfp28x4"`.

type SwitchPortGeometry2 added in v0.2.0

type SwitchPortGeometry2 string

SwitchPortGeometry2 is the port contains a single QSFP28 link with four lanes.

const SwitchPortGeometry2Qsfp28X1 SwitchPortGeometry2 = "qsfp28x1"

SwitchPortGeometry2Qsfp28X1 represents the SwitchPortGeometry2 `"qsfp28x1"`.

const SwitchPortGeometry2Qsfp28X2 SwitchPortGeometry2 = "qsfp28x2"

SwitchPortGeometry2Qsfp28X2 represents the SwitchPortGeometry2 `"qsfp28x2"`.

const SwitchPortGeometry2Sfp28X4 SwitchPortGeometry2 = "sfp28x4"

SwitchPortGeometry2Sfp28X4 represents the SwitchPortGeometry2 `"sfp28x4"`.

type SwitchPortLinkConfig added in v0.0.23

type SwitchPortLinkConfig struct {
	// Autoneg is whether or not the link has autonegotiation enabled.
	Autoneg *bool `json:"autoneg,omitempty" yaml:"autoneg,omitempty"`
	// Fec is the requested forward-error correction method.  If this is not specified, the standard FEC for
	// the underlying media will be applied if it can be determined.
	Fec LinkFec `json:"fec,omitempty" yaml:"fec,omitempty"`
	// LinkName is the name of this link.
	LinkName string `json:"link_name,omitempty" yaml:"link_name,omitempty"`
	// LldpLinkConfigId is the link-layer discovery protocol service configuration id for this link.
	LldpLinkConfigId string `json:"lldp_link_config_id,omitempty" yaml:"lldp_link_config_id,omitempty"`
	// Mtu is the maximum transmission unit for this link.
	Mtu int `json:"mtu,omitempty" yaml:"mtu,omitempty"`
	// PortSettingsId is the port settings this link configuration belongs to.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
	// Speed is the configured speed of the link.
	Speed LinkSpeed `json:"speed,omitempty" yaml:"speed,omitempty"`
	// TxEqConfigId is the tx_eq configuration id for this link.
	TxEqConfigId string `json:"tx_eq_config_id,omitempty" yaml:"tx_eq_config_id,omitempty"`
}

SwitchPortLinkConfig is a link configuration for a port settings object.

Required fields: - Autoneg - LinkName - Mtu - PortSettingsId - Speed

type SwitchPortResultsPage added in v0.0.23

type SwitchPortResultsPage struct {
	// Items is list of items on this page of results
	Items []SwitchPort `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SwitchPortResultsPage is a single page of results

Required fields: - Items

type SwitchPortRouteConfig added in v0.0.23

type SwitchPortRouteConfig struct {
	// Dst is the route's destination network.
	Dst IpNet `json:"dst,omitempty" yaml:"dst,omitempty"`
	// Gw is the route's gateway address.
	Gw IpNet `json:"gw,omitempty" yaml:"gw,omitempty"`
	// InterfaceName is the interface name this route configuration is assigned to.
	InterfaceName string `json:"interface_name,omitempty" yaml:"interface_name,omitempty"`
	// PortSettingsId is the port settings object this route configuration belongs to.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
	// RibPriority is rIB Priority indicating priority within and across protocols.
	RibPriority int `json:"rib_priority,omitempty" yaml:"rib_priority,omitempty"`
	// VlanId is the VLAN identifier for the route. Use this if the gateway is reachable over an 802.1Q tagged L2
	// segment.
	VlanId int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

SwitchPortRouteConfig is a route configuration for a port settings object.

Required fields: - Dst - Gw - InterfaceName - PortSettingsId

type SwitchPortSettings added in v0.0.23

type SwitchPortSettings struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SwitchPortSettings is a switch port settings identity whose id may be used to view additional details.

Required fields: - Description - Id - Name - TimeCreated - TimeModified

type SwitchPortSettingsCreate added in v0.0.23

type SwitchPortSettingsCreate struct {
	// Addresses is addresses indexed by interface name.
	Addresses AddressConfig `json:"addresses,omitempty" yaml:"addresses,omitempty"`
	// BgpPeers is bGP peers indexed by interface name.
	BgpPeers    BgpPeerConfig `json:"bgp_peers,omitempty" yaml:"bgp_peers,omitempty"`
	Description string        `json:"description,omitempty" yaml:"description,omitempty"`
	Groups      []NameOrId    `json:"groups" yaml:"groups"`
	// Interfaces is interfaces indexed by link name.
	Interfaces SwitchInterfaceConfigCreate `json:"interfaces,omitempty" yaml:"interfaces,omitempty"`
	// Links is links indexed by phy name. On ports that are not broken out, this is always phy0. On a 2x breakout
	// the options are phy0 and phy1, on 4x phy0-phy3, etc.
	Links LinkConfigCreate `json:"links,omitempty" yaml:"links,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PortConfig is physical switch port configuration.
	PortConfig SwitchPortConfigCreate `json:"port_config,omitempty" yaml:"port_config,omitempty"`
	// Routes is routes indexed by interface name.
	Routes RouteConfig `json:"routes,omitempty" yaml:"routes,omitempty"`
}

SwitchPortSettingsCreate is parameters for creating switch port settings. Switch port settings are the central data structure for setting up external networking. Switch port settings include link, interface, route, address and dynamic network protocol configuration.

Required fields: - Addresses - BgpPeers - Description - Groups - Interfaces - Links - Name - PortConfig - Routes

type SwitchPortSettingsGroups added in v0.0.23

type SwitchPortSettingsGroups struct {
	// PortSettingsGroupId is the id of a port settings group being referenced by a port settings object.
	PortSettingsGroupId string `json:"port_settings_group_id,omitempty" yaml:"port_settings_group_id,omitempty"`
	// PortSettingsId is the id of a port settings object referencing a port settings group.
	PortSettingsId string `json:"port_settings_id,omitempty" yaml:"port_settings_id,omitempty"`
}

SwitchPortSettingsGroups is this structure maps a port settings object to a port settings groups. Port settings objects may inherit settings from groups. This mapping defines the relationship between settings objects and the groups they reference.

Required fields: - PortSettingsGroupId - PortSettingsId

type SwitchPortSettingsResultsPage added in v0.0.23

type SwitchPortSettingsResultsPage struct {
	// Items is list of items on this page of results
	Items []SwitchPortSettings `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SwitchPortSettingsResultsPage is a single page of results

Required fields: - Items

type SwitchPortSettingsView added in v0.0.23

type SwitchPortSettingsView struct {
	// Addresses is layer 3 IP address settings.
	Addresses []SwitchPortAddressConfig `json:"addresses,omitempty" yaml:"addresses,omitempty"`
	// BgpPeers is bGP peer settings.
	BgpPeers []BgpPeer `json:"bgp_peers,omitempty" yaml:"bgp_peers,omitempty"`
	// Groups is switch port settings included from other switch port settings groups.
	Groups []SwitchPortSettingsGroups `json:"groups,omitempty" yaml:"groups,omitempty"`
	// Interfaces is layer 3 interface settings.
	Interfaces []SwitchInterfaceConfig `json:"interfaces,omitempty" yaml:"interfaces,omitempty"`
	// LinkLldp is link-layer discovery protocol (LLDP) settings.
	LinkLldp []LldpLinkConfig `json:"link_lldp,omitempty" yaml:"link_lldp,omitempty"`
	// Links is layer 2 link settings.
	Links []SwitchPortLinkConfig `json:"links,omitempty" yaml:"links,omitempty"`
	// Port is layer 1 physical port settings.
	Port SwitchPortConfig `json:"port,omitempty" yaml:"port,omitempty"`
	// Routes is iP route settings.
	Routes []SwitchPortRouteConfig `json:"routes,omitempty" yaml:"routes,omitempty"`
	// Settings is the primary switch port settings handle.
	Settings SwitchPortSettings `json:"settings,omitempty" yaml:"settings,omitempty"`
	// TxEq is tX equalization settings.  These are optional, and most links will not need them.
	TxEq []string `json:"tx_eq,omitempty" yaml:"tx_eq,omitempty"`
	// VlanInterfaces is vlan interface settings.
	VlanInterfaces []SwitchVlanInterfaceConfig `json:"vlan_interfaces,omitempty" yaml:"vlan_interfaces,omitempty"`
}

SwitchPortSettingsView is this structure contains all port settings information in one place. It's a convenience data structure for getting a complete view of a particular port's settings.

Required fields: - Addresses - BgpPeers - Groups - Interfaces - LinkLldp - Links - Port - Routes - Settings - TxEq - VlanInterfaces

type SwitchResultsPage added in v0.0.23

type SwitchResultsPage struct {
	// Items is list of items on this page of results
	Items []Switch `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

SwitchResultsPage is a single page of results

Required fields: - Items

type SwitchViewParams added in v0.0.23

type SwitchViewParams struct {
	SwitchId string `json:"switch_id,omitempty" yaml:"switch_id,omitempty"`
}

SwitchViewParams is the request parameters for SwitchView

Required fields: - SwitchId

func (*SwitchViewParams) Validate added in v0.0.23

func (p *SwitchViewParams) Validate() error

Validate verifies all required fields for SwitchViewParams are set

type SwitchVlanInterfaceConfig added in v0.0.23

type SwitchVlanInterfaceConfig struct {
	// InterfaceConfigId is the switch interface configuration this VLAN interface configuration belongs to.
	//
	InterfaceConfigId string `json:"interface_config_id,omitempty" yaml:"interface_config_id,omitempty"`
	// VlanId is the virtual network id for this interface that is used for producing and consuming 802.1Q Ethernet
	// tags. This field has a maximum value of 4095 as 802.1Q tags are twelve bits.
	VlanId int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

SwitchVlanInterfaceConfig is a switch port VLAN interface configuration for a port settings object.

Required fields: - InterfaceConfigId - VlanId

type SystemMetricName added in v0.0.23

type SystemMetricName string

SystemMetricName is the type definition for a SystemMetricName.

const SystemMetricNameCpusProvisioned SystemMetricName = "cpus_provisioned"

SystemMetricNameCpusProvisioned represents the SystemMetricName `"cpus_provisioned"`.

const SystemMetricNameRamProvisioned SystemMetricName = "ram_provisioned"

SystemMetricNameRamProvisioned represents the SystemMetricName `"ram_provisioned"`.

const SystemMetricNameVirtualDiskSpaceProvisioned SystemMetricName = "virtual_disk_space_provisioned"

SystemMetricNameVirtualDiskSpaceProvisioned represents the SystemMetricName `"virtual_disk_space_provisioned"`.

type SystemMetricParams added in v0.0.23

type SystemMetricParams struct {
	MetricName SystemMetricName `json:"metric_name,omitempty" yaml:"metric_name,omitempty"`
	EndTime    *time.Time       `json:"end_time,omitempty" yaml:"end_time,omitempty"`
	Limit      int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	Order      PaginationOrder  `json:"order,omitempty" yaml:"order,omitempty"`
	PageToken  string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	StartTime  *time.Time       `json:"start_time,omitempty" yaml:"start_time,omitempty"`
	Silo       NameOrId         `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SystemMetricParams is the request parameters for SystemMetric

Required fields: - EndTime - StartTime - MetricName

func (*SystemMetricParams) Validate added in v0.0.23

func (p *SystemMetricParams) Validate() error

Validate verifies all required fields for SystemMetricParams are set

type SystemPolicyUpdateParams added in v0.0.23

type SystemPolicyUpdateParams struct {
	Body *FleetRolePolicy `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemPolicyUpdateParams is the request parameters for SystemPolicyUpdate

Required fields: - Body

func (*SystemPolicyUpdateParams) Validate added in v0.0.23

func (p *SystemPolicyUpdateParams) Validate() error

Validate verifies all required fields for SystemPolicyUpdateParams are set

type SystemQuotasListParams added in v0.0.23

type SystemQuotasListParams struct {
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

SystemQuotasListParams is the request parameters for SystemQuotasList

func (*SystemQuotasListParams) Validate added in v0.0.23

func (p *SystemQuotasListParams) Validate() error

Validate verifies all required fields for SystemQuotasListParams are set

type SystemTimeseriesQueryParams added in v0.2.0

type SystemTimeseriesQueryParams struct {
	Body *TimeseriesQuery `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemTimeseriesQueryParams is the request parameters for SystemTimeseriesQuery

Required fields: - Body

func (*SystemTimeseriesQueryParams) Validate added in v0.2.0

func (p *SystemTimeseriesQueryParams) Validate() error

Validate verifies all required fields for SystemTimeseriesQueryParams are set

type SystemTimeseriesSchemaListParams added in v0.2.0

type SystemTimeseriesSchemaListParams struct {
	Limit     int    `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

SystemTimeseriesSchemaListParams is the request parameters for SystemTimeseriesSchemaList

func (*SystemTimeseriesSchemaListParams) Validate added in v0.2.0

Validate verifies all required fields for SystemTimeseriesSchemaListParams are set

type Table added in v0.2.0

type Table struct {
	Name       string     `json:"name,omitempty" yaml:"name,omitempty"`
	Timeseries Timeseries `json:"timeseries,omitempty" yaml:"timeseries,omitempty"`
}

Table is a table represents one or more timeseries with the same schema.

A table is the result of an OxQL query. It contains a name, usually the name of the timeseries schema from which the data is derived, and any number of timeseries, which contain the actual data.

Required fields: - Name - Timeseries

type Timeseries added in v0.2.0

type Timeseries struct {
	Fields FieldValue `json:"fields,omitempty" yaml:"fields,omitempty"`
	// Points is timepoints and values for one timeseries.
	Points Points `json:"points,omitempty" yaml:"points,omitempty"`
}

Timeseries is a timeseries contains a timestamped set of values from one source.

This includes the typed key-value pairs that uniquely identify it, and the set of timestamps and data values from it.

Required fields: - Fields - Points

type TimeseriesDescription added in v0.2.0

type TimeseriesDescription struct {
	Metric string `json:"metric,omitempty" yaml:"metric,omitempty"`
	Target string `json:"target,omitempty" yaml:"target,omitempty"`
}

TimeseriesDescription is text descriptions for the target and metric of a timeseries.

Required fields: - Metric - Target

type TimeseriesName

type TimeseriesName string

TimeseriesName is names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words.

type TimeseriesQuery added in v0.2.0

type TimeseriesQuery struct {
	// Query is a timeseries query string, written in the Oximeter query language.
	Query string `json:"query,omitempty" yaml:"query,omitempty"`
}

TimeseriesQuery is a timeseries query string, written in the Oximeter query language.

Required fields: - Query

type TimeseriesQueryParams added in v0.2.0

type TimeseriesQueryParams struct {
	Project NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *TimeseriesQuery `json:"body,omitempty" yaml:"body,omitempty"`
}

TimeseriesQueryParams is the request parameters for TimeseriesQuery

Required fields: - Project - Body

func (*TimeseriesQueryParams) Validate added in v0.2.0

func (p *TimeseriesQueryParams) Validate() error

Validate verifies all required fields for TimeseriesQueryParams are set

type TimeseriesSchema

type TimeseriesSchema struct {
	// AuthzScope is authorization scope for a timeseries.
	//
	// This describes the level at which a user must be authorized to read data from a timeseries. For example, fleet-scoping
	// means the data is only visible to an operator or fleet reader. Project-scoped, on the other hand, indicates that
	// a user will see data limited to the projects on which they have read permissions.
	AuthzScope AuthzScope `json:"authz_scope,omitempty" yaml:"authz_scope,omitempty"`
	Created    *time.Time `json:"created,omitempty" yaml:"created,omitempty"`
	// DatumType is the type of an individual datum of a metric.
	DatumType DatumType `json:"datum_type,omitempty" yaml:"datum_type,omitempty"`
	// Description is text descriptions for the target and metric of a timeseries.
	Description TimeseriesDescription `json:"description,omitempty" yaml:"description,omitempty"`
	FieldSchema []FieldSchema         `json:"field_schema,omitempty" yaml:"field_schema,omitempty"`
	// TimeseriesName is names are constructed by concatenating the target and metric names with ':'. Target and
	// metric names must be lowercase alphanumeric characters with '_' separating words.
	TimeseriesName TimeseriesName `json:"timeseries_name,omitempty" yaml:"timeseries_name,omitempty"`
	// Units is measurement units for timeseries samples.
	Units   Units `json:"units,omitempty" yaml:"units,omitempty"`
	Version int   `json:"version,omitempty" yaml:"version,omitempty"`
}

TimeseriesSchema is the schema for a timeseries.

This includes the name of the timeseries, as well as the datum type of its metric and the schema for each field.

Required fields: - AuthzScope - Created - DatumType - Description - FieldSchema - TimeseriesName - Units - Version

type TimeseriesSchemaResultsPage

type TimeseriesSchemaResultsPage struct {
	// Items is list of items on this page of results
	Items []TimeseriesSchema `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

TimeseriesSchemaResultsPage is a single page of results

Required fields: - Items

type TxEqConfig added in v0.2.0

type TxEqConfig struct {
	// Main is main tap
	Main int `json:"main,omitempty" yaml:"main,omitempty"`
	// Post1 is post-cursor tap1
	Post1 int `json:"post1,omitempty" yaml:"post1,omitempty"`
	// Post2 is post-cursor tap2
	Post2 int `json:"post2,omitempty" yaml:"post2,omitempty"`
	// Pre1 is pre-cursor tap1
	Pre1 int `json:"pre1,omitempty" yaml:"pre1,omitempty"`
	// Pre2 is pre-cursor tap2
	Pre2 int `json:"pre2,omitempty" yaml:"pre2,omitempty"`
}

TxEqConfig is per-port tx-eq overrides. This can be used to fine-tune the transceiver equalization settings to improve signal integrity.

type TypedUuidForSupportBundleKind added in v0.3.0

type TypedUuidForSupportBundleKind string

TypedUuidForSupportBundleKind is the type definition for a TypedUuidForSupportBundleKind.

type UninitializedSled added in v0.0.23

type UninitializedSled struct {
	// Baseboard is properties that uniquely identify an Oxide hardware component
	Baseboard Baseboard `json:"baseboard,omitempty" yaml:"baseboard,omitempty"`
	Cubby     int       `json:"cubby,omitempty" yaml:"cubby,omitempty"`
	RackId    string    `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
}

UninitializedSled is a sled that has not been added to an initialized rack yet

Required fields: - Baseboard - Cubby - RackId

type UninitializedSledId added in v0.2.0

type UninitializedSledId struct {
	Part   string `json:"part,omitempty" yaml:"part,omitempty"`
	Serial string `json:"serial,omitempty" yaml:"serial,omitempty"`
}

UninitializedSledId is the unique hardware ID for a sled

Required fields: - Part - Serial

type UninitializedSledResultsPage added in v0.2.0

type UninitializedSledResultsPage struct {
	// Items is list of items on this page of results
	Items []UninitializedSled `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

UninitializedSledResultsPage is a single page of results

Required fields: - Items

type Units added in v0.2.0

type Units string

Units is the type definition for a Units.

const UnitsAmps Units = "amps"

UnitsAmps represents the Units `"amps"`.

const UnitsBytes Units = "bytes"

UnitsBytes represents the Units `"bytes"`.

const UnitsCount Units = "count"

UnitsCount represents the Units `"count"`.

const UnitsDegreesCelsius Units = "degrees_celsius"

UnitsDegreesCelsius represents the Units `"degrees_celsius"`.

const UnitsNanoseconds Units = "nanoseconds"

UnitsNanoseconds represents the Units `"nanoseconds"`.

const UnitsNone Units = "none"

UnitsNone represents the Units `"none"`.

const UnitsRpm Units = "rpm"

UnitsRpm represents the Units `"rpm"`.

const UnitsSeconds Units = "seconds"

UnitsSeconds represents the Units `"seconds"`.

const UnitsVolts Units = "volts"

UnitsVolts represents the Units `"volts"`.

const UnitsWatts Units = "watts"

UnitsWatts represents the Units `"watts"`.

type User

type User struct {
	// DisplayName is human-readable name that can identify the user
	DisplayName string `json:"display_name,omitempty" yaml:"display_name,omitempty"`
	Id          string `json:"id,omitempty" yaml:"id,omitempty"`
	// SiloId is uuid of the silo to which this user belongs
	SiloId string `json:"silo_id,omitempty" yaml:"silo_id,omitempty"`
}

User is view of a User

Required fields: - DisplayName - Id - SiloId

type UserBuiltin

type UserBuiltin struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

UserBuiltin is view of a Built-in User

Built-in users are identities internal to the system, used when the control plane performs actions autonomously

Required fields: - Description - Id - Name - TimeCreated - TimeModified

type UserBuiltinListParams added in v0.0.23

type UserBuiltinListParams struct {
	Limit     int          `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string       `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    NameSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

UserBuiltinListParams is the request parameters for UserBuiltinList

func (*UserBuiltinListParams) Validate added in v0.0.23

func (p *UserBuiltinListParams) Validate() error

Validate verifies all required fields for UserBuiltinListParams are set

type UserBuiltinResultsPage

type UserBuiltinResultsPage struct {
	// Items is list of items on this page of results
	Items []UserBuiltin `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

UserBuiltinResultsPage is a single page of results

Required fields: - Items

type UserBuiltinViewParams added in v0.0.23

type UserBuiltinViewParams struct {
	User NameOrId `json:"user,omitempty" yaml:"user,omitempty"`
}

UserBuiltinViewParams is the request parameters for UserBuiltinView

Required fields: - User

func (*UserBuiltinViewParams) Validate added in v0.0.23

func (p *UserBuiltinViewParams) Validate() error

Validate verifies all required fields for UserBuiltinViewParams are set

type UserCreate added in v0.0.23

type UserCreate struct {
	// ExternalId is username used to log in
	ExternalId UserId `json:"external_id,omitempty" yaml:"external_id,omitempty"`
	// Password is how to set the user's login password
	Password UserPassword `json:"password,omitempty" yaml:"password,omitempty"`
}

UserCreate is create-time parameters for a `User`

Required fields: - ExternalId - Password

type UserId added in v0.0.23

type UserId string

UserId is usernames must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Usernames cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.

type UserListParams added in v0.0.23

type UserListParams struct {
	Group     string     `json:"group,omitempty" yaml:"group,omitempty"`
	Limit     int        `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string     `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    IdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

UserListParams is the request parameters for UserList

func (*UserListParams) Validate added in v0.0.23

func (p *UserListParams) Validate() error

Validate verifies all required fields for UserListParams are set

type UserPassword added in v0.0.23

type UserPassword struct {
	// Mode is the type definition for a Mode.
	Mode UserPasswordMode `json:"mode,omitempty" yaml:"mode,omitempty"`
	// Value is passwords may be subject to additional constraints.
	Value Password `json:"value,omitempty" yaml:"value,omitempty"`
}

UserPassword is parameters for setting a user's password

type UserPasswordLoginDisallowed added in v0.0.23

type UserPasswordLoginDisallowed struct {
	Mode UserPasswordMode `json:"mode,omitempty" yaml:"mode,omitempty"`
}

UserPasswordLoginDisallowed is invalidates any current password (disabling password authentication)

Required fields: - Mode

type UserPasswordMode added in v0.0.23

type UserPasswordMode string

UserPasswordMode is the type definition for a UserPasswordMode.

const UserPasswordModeLoginDisallowed UserPasswordMode = "login_disallowed"

UserPasswordModeLoginDisallowed represents the UserPasswordMode `"login_disallowed"`.

const UserPasswordModePassword UserPasswordMode = "password"

UserPasswordModePassword represents the UserPasswordMode `"password"`.

type UserPasswordPassword added in v0.0.23

type UserPasswordPassword struct {
	Mode UserPasswordMode `json:"mode,omitempty" yaml:"mode,omitempty"`
	// Value is passwords may be subject to additional constraints.
	Value Password `json:"value,omitempty" yaml:"value,omitempty"`
}

UserPasswordPassword is sets the user's password to the provided value

Required fields: - Mode - Value

type UserResultsPage

type UserResultsPage struct {
	// Items is list of items on this page of results
	Items []User `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

UserResultsPage is a single page of results

Required fields: - Items

type UsernamePasswordCredentials added in v0.0.23

type UsernamePasswordCredentials struct {
	// Password is passwords may be subject to additional constraints.
	Password Password `json:"password,omitempty" yaml:"password,omitempty"`
	// Username is usernames must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII,
	// uppercase ASCII, numbers, and '-', and may not end with a '-'. Usernames cannot be a UUID, but they may contain
	// a UUID. They can be at most 63 characters long.
	Username UserId `json:"username,omitempty" yaml:"username,omitempty"`
}

UsernamePasswordCredentials is credentials for local user login

Required fields: - Password - Username

type Utilization added in v0.0.23

type Utilization struct {
	// Capacity is the total amount of resources that can be provisioned in this silo Actions that would exceed
	// this limit will fail
	Capacity VirtualResourceCounts `json:"capacity,omitempty" yaml:"capacity,omitempty"`
	// Provisioned is accounts for resources allocated to running instances or storage allocated via disks or
	// snapshots Note that CPU and memory resources associated with a stopped instances are not counted here whereas
	// associated disks will still be counted
	Provisioned VirtualResourceCounts `json:"provisioned,omitempty" yaml:"provisioned,omitempty"`
}

Utilization is view of the current silo's resource utilization and capacity

Required fields: - Capacity - Provisioned

type Validator added in v0.0.23

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

Validator is a helper to validate the Client methods

func (*Validator) Error added in v0.0.23

func (v *Validator) Error() string

Error is the string representation of a validation error

func (*Validator) HasRequiredNum added in v0.0.23

func (v *Validator) HasRequiredNum(value int, name string) bool

HasRequiredNum checks that a value is not 0

func (*Validator) HasRequiredObj added in v0.0.23

func (v *Validator) HasRequiredObj(value any, name string) bool

HasRequiredObj checks for a nil value. The argument must be a chan, func, interface, map, pointer, or slice value

func (*Validator) HasRequiredStr added in v0.0.23

func (v *Validator) HasRequiredStr(value, name string) bool

HasRequiredStr checks for an empty string

func (*Validator) IsValid added in v0.0.23

func (v *Validator) IsValid() bool

IsValid returns false if the Validator contains any validation errors

type ValueArray added in v0.2.0

type ValueArray struct {
	// Type is the type definition for a Type.
	Type ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	// Values is the type definition for a Values.
	Values []string `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArray is list of data values for one timeseries.

Each element is an option, where `None` represents a missing sample.

type ValueArrayBoolean added in v0.2.0

type ValueArrayBoolean struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayBoolean is the type definition for a ValueArrayBoolean.

Required fields: - Type - Values

type ValueArrayDouble added in v0.2.0

type ValueArrayDouble struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayDouble is the type definition for a ValueArrayDouble.

Required fields: - Type - Values

type ValueArrayDoubleDistribution added in v0.2.0

type ValueArrayDoubleDistribution struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayDoubleDistribution is the type definition for a ValueArrayDoubleDistribution.

Required fields: - Type - Values

type ValueArrayInteger added in v0.2.0

type ValueArrayInteger struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayInteger is the type definition for a ValueArrayInteger.

Required fields: - Type - Values

type ValueArrayIntegerDistribution added in v0.2.0

type ValueArrayIntegerDistribution struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayIntegerDistribution is the type definition for a ValueArrayIntegerDistribution.

Required fields: - Type - Values

type ValueArrayString added in v0.2.0

type ValueArrayString struct {
	Type   ValueArrayType `json:"type,omitempty" yaml:"type,omitempty"`
	Values []string       `json:"values,omitempty" yaml:"values,omitempty"`
}

ValueArrayString is the type definition for a ValueArrayString.

Required fields: - Type - Values

type ValueArrayType added in v0.2.0

type ValueArrayType string

ValueArrayType is the type definition for a ValueArrayType.

const ValueArrayTypeBoolean ValueArrayType = "boolean"

ValueArrayTypeBoolean represents the ValueArrayType `"boolean"`.

const ValueArrayTypeDouble ValueArrayType = "double"

ValueArrayTypeDouble represents the ValueArrayType `"double"`.

const ValueArrayTypeDoubleDistribution ValueArrayType = "double_distribution"

ValueArrayTypeDoubleDistribution represents the ValueArrayType `"double_distribution"`.

const ValueArrayTypeInteger ValueArrayType = "integer"

ValueArrayTypeInteger represents the ValueArrayType `"integer"`.

const ValueArrayTypeIntegerDistribution ValueArrayType = "integer_distribution"

ValueArrayTypeIntegerDistribution represents the ValueArrayType `"integer_distribution"`.

const ValueArrayTypeString ValueArrayType = "string"

ValueArrayTypeString represents the ValueArrayType `"string"`.

type Values added in v0.2.0

type Values struct {
	// MetricType is the type of this metric.
	MetricType MetricType `json:"metric_type,omitempty" yaml:"metric_type,omitempty"`
	// Values is the data values.
	Values ValueArray `json:"values,omitempty" yaml:"values,omitempty"`
}

Values is a single list of values, for one dimension of a timeseries.

Required fields: - MetricType - Values

type VirtualResourceCounts added in v0.0.23

type VirtualResourceCounts struct {
	// Cpus is number of virtual CPUs
	Cpus int `json:"cpus,omitempty" yaml:"cpus,omitempty"`
	// Memory is amount of memory in bytes
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Storage is amount of disk storage in bytes
	Storage ByteCount `json:"storage,omitempty" yaml:"storage,omitempty"`
}

VirtualResourceCounts is a collection of resource counts used to describe capacity and utilization

Required fields: - Cpus - Memory - Storage

type Vni added in v0.2.0

type Vni uint32

Vni is a Geneve Virtual Network Identifier

type Vpc

type Vpc struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DnsName is the name used for the VPC in DNS.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Ipv6Prefix is the unique local IPv6 address range for subnets in this VPC
	Ipv6Prefix Ipv6Net `json:"ipv6_prefix,omitempty" yaml:"ipv6_prefix,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is id for the project containing this VPC
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// SystemRouterId is id for the system router where subnet default routes are registered
	SystemRouterId string `json:"system_router_id,omitempty" yaml:"system_router_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Vpc is view of a VPC

Required fields: - Description - DnsName - Id - Ipv6Prefix - Name - ProjectId - SystemRouterId - TimeCreated - TimeModified

type VpcCreate

type VpcCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DnsName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty"`
	// Ipv6Prefix is the IPv6 prefix for this VPC
	//
	// All IPv6 subnets created from this VPC must be taken from this range, which should be a Unique Local Address
	// in the range `fd00::/48`. The default VPC Subnet will have the first `/64` range from this prefix.
	Ipv6Prefix Ipv6Net `json:"ipv6_prefix,omitempty" yaml:"ipv6_prefix,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcCreate is create-time parameters for a `Vpc`

Required fields: - Description - DnsName - Name

type VpcCreateParams added in v0.0.23

type VpcCreateParams struct {
	Project NameOrId   `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *VpcCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcCreateParams is the request parameters for VpcCreate

Required fields: - Project - Body

func (*VpcCreateParams) Validate added in v0.0.23

func (p *VpcCreateParams) Validate() error

Validate verifies all required fields for VpcCreateParams are set

type VpcDeleteParams added in v0.0.23

type VpcDeleteParams struct {
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

VpcDeleteParams is the request parameters for VpcDelete

Required fields: - Vpc

func (*VpcDeleteParams) Validate added in v0.0.23

func (p *VpcDeleteParams) Validate() error

Validate verifies all required fields for VpcDeleteParams are set

type VpcFirewallRule

type VpcFirewallRule struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters,omitempty" yaml:"filters,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Priority is the relative priority of this rule
	Priority int `json:"priority,omitempty" yaml:"priority,omitempty"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status,omitempty" yaml:"status,omitempty"`
	// Targets is determine the set of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets,omitempty" yaml:"targets,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which this rule belongs
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

VpcFirewallRule is a single rule in a VPC firewall

Required fields: - Action - Description - Direction - Filters - Id - Name - Priority - Status - Targets - TimeCreated - TimeModified - VpcId

type VpcFirewallRuleAction

type VpcFirewallRuleAction string

VpcFirewallRuleAction is the type definition for a VpcFirewallRuleAction.

const VpcFirewallRuleActionAllow VpcFirewallRuleAction = "allow"

VpcFirewallRuleActionAllow represents the VpcFirewallRuleAction `"allow"`.

const VpcFirewallRuleActionDeny VpcFirewallRuleAction = "deny"

VpcFirewallRuleActionDeny represents the VpcFirewallRuleAction `"deny"`.

type VpcFirewallRuleDirection

type VpcFirewallRuleDirection string

VpcFirewallRuleDirection is the type definition for a VpcFirewallRuleDirection.

const VpcFirewallRuleDirectionInbound VpcFirewallRuleDirection = "inbound"

VpcFirewallRuleDirectionInbound represents the VpcFirewallRuleDirection `"inbound"`.

const VpcFirewallRuleDirectionOutbound VpcFirewallRuleDirection = "outbound"

VpcFirewallRuleDirectionOutbound represents the VpcFirewallRuleDirection `"outbound"`.

type VpcFirewallRuleFilter

type VpcFirewallRuleFilter struct {
	// Hosts is if present, host filters match the "other end" of traffic from the target’s perspective: for
	// an inbound rule, they match the source of traffic. For an outbound rule, they match the destination.
	Hosts []VpcFirewallRuleHostFilter `json:"hosts,omitempty" yaml:"hosts,omitempty"`
	// Ports is if present, the destination ports or port ranges this rule applies to.
	Ports []L4PortRange `json:"ports,omitempty" yaml:"ports,omitempty"`
	// Protocols is if present, the networking protocols this rule applies to.
	Protocols []VpcFirewallRuleProtocol `json:"protocols,omitempty" yaml:"protocols,omitempty"`
}

VpcFirewallRuleFilter is filters reduce the scope of a firewall rule. Without filters, the rule applies to all packets to the targets (or from the targets, if it's an outbound rule). With multiple filters, the rule applies only to packets matching ALL filters. The maximum number of each type of filter is 256.

type VpcFirewallRuleHostFilter

type VpcFirewallRuleHostFilter struct {
	// Type is the type definition for a Type.
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value any `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilter is the `VpcFirewallRuleHostFilter` is used to filter traffic on the basis of its source or destination host.

type VpcFirewallRuleHostFilterInstance

type VpcFirewallRuleHostFilterInstance struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterInstance is the rule applies to traffic from/to this specific instance

Required fields: - Type - Value

type VpcFirewallRuleHostFilterIp

type VpcFirewallRuleHostFilterIp struct {
	Type  VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string                        `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterIp is the rule applies to traffic from/to a specific IP address

Required fields: - Type - Value

type VpcFirewallRuleHostFilterIpNet

type VpcFirewallRuleHostFilterIpNet struct {
	Type  VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                         `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterIpNet is the rule applies to traffic from/to a specific IP subnet

Required fields: - Type - Value

type VpcFirewallRuleHostFilterSubnet

type VpcFirewallRuleHostFilterSubnet struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterSubnet is the rule applies to traffic from/to all instances in the VPC Subnet

Required fields: - Type - Value

type VpcFirewallRuleHostFilterType

type VpcFirewallRuleHostFilterType string

VpcFirewallRuleHostFilterType is the type definition for a VpcFirewallRuleHostFilterType.

const VpcFirewallRuleHostFilterTypeInstance VpcFirewallRuleHostFilterType = "instance"

VpcFirewallRuleHostFilterTypeInstance represents the VpcFirewallRuleHostFilterType `"instance"`.

const VpcFirewallRuleHostFilterTypeIp VpcFirewallRuleHostFilterType = "ip"

VpcFirewallRuleHostFilterTypeIp represents the VpcFirewallRuleHostFilterType `"ip"`.

const VpcFirewallRuleHostFilterTypeIpNet VpcFirewallRuleHostFilterType = "ip_net"

VpcFirewallRuleHostFilterTypeIpNet represents the VpcFirewallRuleHostFilterType `"ip_net"`.

const VpcFirewallRuleHostFilterTypeSubnet VpcFirewallRuleHostFilterType = "subnet"

VpcFirewallRuleHostFilterTypeSubnet represents the VpcFirewallRuleHostFilterType `"subnet"`.

const VpcFirewallRuleHostFilterTypeVpc VpcFirewallRuleHostFilterType = "vpc"

VpcFirewallRuleHostFilterTypeVpc represents the VpcFirewallRuleHostFilterType `"vpc"`.

type VpcFirewallRuleHostFilterVpc

type VpcFirewallRuleHostFilterVpc struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterVpc is the rule applies to traffic from/to all instances in the VPC

Required fields: - Type - Value

type VpcFirewallRuleProtocol

type VpcFirewallRuleProtocol string

VpcFirewallRuleProtocol is the protocols that may be specified in a firewall rule's filter

const VpcFirewallRuleProtocolIcmp VpcFirewallRuleProtocol = "ICMP"

VpcFirewallRuleProtocolIcmp represents the VpcFirewallRuleProtocol `"ICMP"`.

const VpcFirewallRuleProtocolTcp VpcFirewallRuleProtocol = "TCP"

VpcFirewallRuleProtocolTcp represents the VpcFirewallRuleProtocol `"TCP"`.

const VpcFirewallRuleProtocolUdp VpcFirewallRuleProtocol = "UDP"

VpcFirewallRuleProtocolUdp represents the VpcFirewallRuleProtocol `"UDP"`.

type VpcFirewallRuleStatus

type VpcFirewallRuleStatus string

VpcFirewallRuleStatus is the type definition for a VpcFirewallRuleStatus.

const VpcFirewallRuleStatusDisabled VpcFirewallRuleStatus = "disabled"

VpcFirewallRuleStatusDisabled represents the VpcFirewallRuleStatus `"disabled"`.

const VpcFirewallRuleStatusEnabled VpcFirewallRuleStatus = "enabled"

VpcFirewallRuleStatusEnabled represents the VpcFirewallRuleStatus `"enabled"`.

type VpcFirewallRuleTarget

type VpcFirewallRuleTarget struct {
	// Type is the type definition for a Type.
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value any `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTarget is a `VpcFirewallRuleTarget` is used to specify the set of instances to which a firewall rule applies. You can target instances directly by name, or specify a VPC, VPC subnet, IP, or IP subnet, which will apply the rule to traffic going to all matching instances. Targets are additive: the rule applies to instances matching ANY target.

type VpcFirewallRuleTargetInstance

type VpcFirewallRuleTargetInstance struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetInstance is the rule applies to this specific instance

Required fields: - Type - Value

type VpcFirewallRuleTargetIp

type VpcFirewallRuleTargetIp struct {
	Type  VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string                    `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetIp is the rule applies to a specific IP address

Required fields: - Type - Value

type VpcFirewallRuleTargetIpNet

type VpcFirewallRuleTargetIpNet struct {
	Type  VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                     `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetIpNet is the rule applies to a specific IP subnet

Required fields: - Type - Value

type VpcFirewallRuleTargetSubnet

type VpcFirewallRuleTargetSubnet struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetSubnet is the rule applies to all instances in the VPC Subnet

Required fields: - Type - Value

type VpcFirewallRuleTargetType

type VpcFirewallRuleTargetType string

VpcFirewallRuleTargetType is the type definition for a VpcFirewallRuleTargetType.

const VpcFirewallRuleTargetTypeInstance VpcFirewallRuleTargetType = "instance"

VpcFirewallRuleTargetTypeInstance represents the VpcFirewallRuleTargetType `"instance"`.

const VpcFirewallRuleTargetTypeIp VpcFirewallRuleTargetType = "ip"

VpcFirewallRuleTargetTypeIp represents the VpcFirewallRuleTargetType `"ip"`.

const VpcFirewallRuleTargetTypeIpNet VpcFirewallRuleTargetType = "ip_net"

VpcFirewallRuleTargetTypeIpNet represents the VpcFirewallRuleTargetType `"ip_net"`.

const VpcFirewallRuleTargetTypeSubnet VpcFirewallRuleTargetType = "subnet"

VpcFirewallRuleTargetTypeSubnet represents the VpcFirewallRuleTargetType `"subnet"`.

const VpcFirewallRuleTargetTypeVpc VpcFirewallRuleTargetType = "vpc"

VpcFirewallRuleTargetTypeVpc represents the VpcFirewallRuleTargetType `"vpc"`.

type VpcFirewallRuleTargetVpc

type VpcFirewallRuleTargetVpc struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetVpc is the rule applies to all instances in the VPC

Required fields: - Type - Value

type VpcFirewallRuleUpdate

type VpcFirewallRuleUpdate struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters,omitempty" yaml:"filters,omitempty"`
	// Name is name of the rule, unique to this VPC
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Priority is the relative priority of this rule
	Priority int `json:"priority,omitempty" yaml:"priority,omitempty"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status,omitempty" yaml:"status,omitempty"`
	// Targets is determine the set of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets,omitempty" yaml:"targets,omitempty"`
}

VpcFirewallRuleUpdate is a single rule in a VPC firewall

Required fields: - Action - Description - Direction - Filters - Name - Priority - Status - Targets

type VpcFirewallRuleUpdateParams

type VpcFirewallRuleUpdateParams struct {
	Rules []VpcFirewallRuleUpdate `json:"rules" yaml:"rules"`
}

VpcFirewallRuleUpdateParams is updated list of firewall rules. Will replace all existing rules.

Required fields: - Rules

type VpcFirewallRules

type VpcFirewallRules struct {
	Rules []VpcFirewallRule `json:"rules,omitempty" yaml:"rules,omitempty"`
}

VpcFirewallRules is collection of a Vpc's firewall rules

Required fields: - Rules

type VpcFirewallRulesUpdateParams added in v0.0.23

type VpcFirewallRulesUpdateParams struct {
	Project NameOrId                     `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId                     `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *VpcFirewallRuleUpdateParams `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcFirewallRulesUpdateParams is the request parameters for VpcFirewallRulesUpdate

Required fields: - Vpc - Body

func (*VpcFirewallRulesUpdateParams) Validate added in v0.0.23

func (p *VpcFirewallRulesUpdateParams) Validate() error

Validate verifies all required fields for VpcFirewallRulesUpdateParams are set

type VpcFirewallRulesViewParams added in v0.0.23

type VpcFirewallRulesViewParams struct {
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcFirewallRulesViewParams is the request parameters for VpcFirewallRulesView

Required fields: - Vpc

func (*VpcFirewallRulesViewParams) Validate added in v0.0.23

func (p *VpcFirewallRulesViewParams) Validate() error

Validate verifies all required fields for VpcFirewallRulesViewParams are set

type VpcListParams added in v0.0.23

type VpcListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
}

VpcListParams is the request parameters for VpcList

Required fields: - Project

func (*VpcListParams) Validate added in v0.0.23

func (p *VpcListParams) Validate() error

Validate verifies all required fields for VpcListParams are set

type VpcResultsPage

type VpcResultsPage struct {
	// Items is list of items on this page of results
	Items []Vpc `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

VpcResultsPage is a single page of results

Required fields: - Items

type VpcRouter

type VpcRouter struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id   string        `json:"id,omitempty" yaml:"id,omitempty"`
	Kind VpcRouterKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which the router belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

VpcRouter is a VPC router defines a series of rules that indicate where traffic should be sent depending on its destination.

Required fields: - Description - Id - Kind - Name - TimeCreated - TimeModified - VpcId

type VpcRouterCreate

type VpcRouterCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcRouterCreate is create-time parameters for a `VpcRouter`

Required fields: - Description - Name

type VpcRouterCreateParams added in v0.2.0

type VpcRouterCreateParams struct {
	Project NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *VpcRouterCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcRouterCreateParams is the request parameters for VpcRouterCreate

Required fields: - Vpc - Body

func (*VpcRouterCreateParams) Validate added in v0.2.0

func (p *VpcRouterCreateParams) Validate() error

Validate verifies all required fields for VpcRouterCreateParams are set

type VpcRouterDeleteParams added in v0.2.0

type VpcRouterDeleteParams struct {
	Router  NameOrId `json:"router,omitempty" yaml:"router,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterDeleteParams is the request parameters for VpcRouterDelete

Required fields: - Router

func (*VpcRouterDeleteParams) Validate added in v0.2.0

func (p *VpcRouterDeleteParams) Validate() error

Validate verifies all required fields for VpcRouterDeleteParams are set

type VpcRouterKind

type VpcRouterKind string

VpcRouterKind is the type definition for a VpcRouterKind.

const VpcRouterKindCustom VpcRouterKind = "custom"

VpcRouterKindCustom represents the VpcRouterKind `"custom"`.

const VpcRouterKindSystem VpcRouterKind = "system"

VpcRouterKindSystem represents the VpcRouterKind `"system"`.

type VpcRouterListParams added in v0.2.0

type VpcRouterListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterListParams is the request parameters for VpcRouterList

Required fields: - Vpc

func (*VpcRouterListParams) Validate added in v0.2.0

func (p *VpcRouterListParams) Validate() error

Validate verifies all required fields for VpcRouterListParams are set

type VpcRouterResultsPage

type VpcRouterResultsPage struct {
	// Items is list of items on this page of results
	Items []VpcRouter `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

VpcRouterResultsPage is a single page of results

Required fields: - Items

type VpcRouterRouteCreateParams added in v0.2.0

type VpcRouterRouteCreateParams struct {
	Project NameOrId           `json:"project,omitempty" yaml:"project,omitempty"`
	Router  NameOrId           `json:"router,omitempty" yaml:"router,omitempty"`
	Vpc     NameOrId           `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *RouterRouteCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcRouterRouteCreateParams is the request parameters for VpcRouterRouteCreate

Required fields: - Router - Body

func (*VpcRouterRouteCreateParams) Validate added in v0.2.0

func (p *VpcRouterRouteCreateParams) Validate() error

Validate verifies all required fields for VpcRouterRouteCreateParams are set

type VpcRouterRouteDeleteParams added in v0.2.0

type VpcRouterRouteDeleteParams struct {
	Route   NameOrId `json:"route,omitempty" yaml:"route,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Router  NameOrId `json:"router,omitempty" yaml:"router,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterRouteDeleteParams is the request parameters for VpcRouterRouteDelete

Required fields: - Route

func (*VpcRouterRouteDeleteParams) Validate added in v0.2.0

func (p *VpcRouterRouteDeleteParams) Validate() error

Validate verifies all required fields for VpcRouterRouteDeleteParams are set

type VpcRouterRouteListParams added in v0.2.0

type VpcRouterRouteListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Router    NameOrId         `json:"router,omitempty" yaml:"router,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterRouteListParams is the request parameters for VpcRouterRouteList

Required fields: - Router

func (*VpcRouterRouteListParams) Validate added in v0.2.0

func (p *VpcRouterRouteListParams) Validate() error

Validate verifies all required fields for VpcRouterRouteListParams are set

type VpcRouterRouteUpdateParams added in v0.2.0

type VpcRouterRouteUpdateParams struct {
	Route   NameOrId           `json:"route,omitempty" yaml:"route,omitempty"`
	Project NameOrId           `json:"project,omitempty" yaml:"project,omitempty"`
	Router  NameOrId           `json:"router,omitempty" yaml:"router,omitempty"`
	Vpc     NameOrId           `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *RouterRouteUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcRouterRouteUpdateParams is the request parameters for VpcRouterRouteUpdate

Required fields: - Route - Body

func (*VpcRouterRouteUpdateParams) Validate added in v0.2.0

func (p *VpcRouterRouteUpdateParams) Validate() error

Validate verifies all required fields for VpcRouterRouteUpdateParams are set

type VpcRouterRouteViewParams added in v0.2.0

type VpcRouterRouteViewParams struct {
	Route   NameOrId `json:"route,omitempty" yaml:"route,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Router  NameOrId `json:"router,omitempty" yaml:"router,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterRouteViewParams is the request parameters for VpcRouterRouteView

Required fields: - Route - Router

func (*VpcRouterRouteViewParams) Validate added in v0.2.0

func (p *VpcRouterRouteViewParams) Validate() error

Validate verifies all required fields for VpcRouterRouteViewParams are set

type VpcRouterUpdate

type VpcRouterUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcRouterUpdate is updateable properties of a `VpcRouter`

type VpcRouterUpdateParams added in v0.2.0

type VpcRouterUpdateParams struct {
	Router  NameOrId         `json:"router,omitempty" yaml:"router,omitempty"`
	Project NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *VpcRouterUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcRouterUpdateParams is the request parameters for VpcRouterUpdate

Required fields: - Router - Body

func (*VpcRouterUpdateParams) Validate added in v0.2.0

func (p *VpcRouterUpdateParams) Validate() error

Validate verifies all required fields for VpcRouterUpdateParams are set

type VpcRouterViewParams added in v0.2.0

type VpcRouterViewParams struct {
	Router  NameOrId `json:"router,omitempty" yaml:"router,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcRouterViewParams is the request parameters for VpcRouterView

Required fields: - Router

func (*VpcRouterViewParams) Validate added in v0.2.0

func (p *VpcRouterViewParams) Validate() error

Validate verifies all required fields for VpcRouterViewParams are set

type VpcSubnet

type VpcSubnet struct {
	// CustomRouterId is iD for an attached custom router.
	CustomRouterId string `json:"custom_router_id,omitempty" yaml:"custom_router_id,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Ipv4Block is the IPv4 subnet CIDR block.
	Ipv4Block Ipv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty"`
	// Ipv6Block is the IPv6 subnet CIDR block.
	Ipv6Block Ipv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which the subnet belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

VpcSubnet is a VPC subnet represents a logical grouping for instances that allows network traffic between them, within a IPv4 subnetwork or optionally an IPv6 subnetwork.

Required fields: - Description - Id - Ipv4Block - Ipv6Block - Name - TimeCreated - TimeModified - VpcId

type VpcSubnetCreate

type VpcSubnetCreate struct {
	// CustomRouter is an optional router, used to direct packets sent from hosts in this subnet to any destination address.
	//
	//
	// Custom routers apply in addition to the VPC-wide *system* router, and have higher priority than the system router
	// for an otherwise equal-prefix-length match.
	CustomRouter NameOrId `json:"custom_router,omitempty" yaml:"custom_router,omitempty"`
	Description  string   `json:"description,omitempty" yaml:"description,omitempty"`
	// Ipv4Block is the IPv4 address range for this subnet.
	//
	// It must be allocated from an RFC 1918 private address range, and must not overlap with any other existing subnet
	// in the VPC.
	Ipv4Block Ipv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty"`
	// Ipv6Block is the IPv6 address range for this subnet.
	//
	// It must be allocated from the RFC 4193 Unique Local Address range, with the prefix equal to the parent VPC's
	// prefix. A random `/64` block will be assigned if one is not provided. It must not overlap with any existing subnet
	// in the VPC.
	Ipv6Block Ipv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase
	// ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They
	// can be at most 63 characters long.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcSubnetCreate is create-time parameters for a `VpcSubnet`

Required fields: - Description - Ipv4Block - Name

type VpcSubnetCreateParams added in v0.0.23

type VpcSubnetCreateParams struct {
	Project NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *VpcSubnetCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcSubnetCreateParams is the request parameters for VpcSubnetCreate

Required fields: - Vpc - Body

func (*VpcSubnetCreateParams) Validate added in v0.0.23

func (p *VpcSubnetCreateParams) Validate() error

Validate verifies all required fields for VpcSubnetCreateParams are set

type VpcSubnetDeleteParams added in v0.0.23

type VpcSubnetDeleteParams struct {
	Subnet  NameOrId `json:"subnet,omitempty" yaml:"subnet,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcSubnetDeleteParams is the request parameters for VpcSubnetDelete

Required fields: - Subnet

func (*VpcSubnetDeleteParams) Validate added in v0.0.23

func (p *VpcSubnetDeleteParams) Validate() error

Validate verifies all required fields for VpcSubnetDeleteParams are set

type VpcSubnetListNetworkInterfacesParams added in v0.0.23

type VpcSubnetListNetworkInterfacesParams struct {
	Subnet    NameOrId         `json:"subnet,omitempty" yaml:"subnet,omitempty"`
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcSubnetListNetworkInterfacesParams is the request parameters for VpcSubnetListNetworkInterfaces

Required fields: - Subnet

func (*VpcSubnetListNetworkInterfacesParams) Validate added in v0.0.23

Validate verifies all required fields for VpcSubnetListNetworkInterfacesParams are set

type VpcSubnetListParams added in v0.0.23

type VpcSubnetListParams struct {
	Limit     int              `json:"limit,omitempty" yaml:"limit,omitempty"`
	PageToken string           `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Project   NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	SortBy    NameOrIdSortMode `json:"sort_by,omitempty" yaml:"sort_by,omitempty"`
	Vpc       NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcSubnetListParams is the request parameters for VpcSubnetList

Required fields: - Vpc

func (*VpcSubnetListParams) Validate added in v0.0.23

func (p *VpcSubnetListParams) Validate() error

Validate verifies all required fields for VpcSubnetListParams are set

type VpcSubnetResultsPage

type VpcSubnetResultsPage struct {
	// Items is list of items on this page of results
	Items []VpcSubnet `json:"items,omitempty" yaml:"items,omitempty"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty"`
}

VpcSubnetResultsPage is a single page of results

Required fields: - Items

type VpcSubnetUpdate

type VpcSubnetUpdate struct {
	// CustomRouter is an optional router, used to direct packets sent from hosts in this subnet to any destination address.
	//
	CustomRouter NameOrId `json:"custom_router,omitempty" yaml:"custom_router,omitempty"`
	Description  string   `json:"description,omitempty" yaml:"description,omitempty"`
	Name         Name     `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcSubnetUpdate is updateable properties of a `VpcSubnet`

type VpcSubnetUpdateParams added in v0.0.23

type VpcSubnetUpdateParams struct {
	Subnet  NameOrId         `json:"subnet,omitempty" yaml:"subnet,omitempty"`
	Project NameOrId         `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId         `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Body    *VpcSubnetUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcSubnetUpdateParams is the request parameters for VpcSubnetUpdate

Required fields: - Subnet - Body

func (*VpcSubnetUpdateParams) Validate added in v0.0.23

func (p *VpcSubnetUpdateParams) Validate() error

Validate verifies all required fields for VpcSubnetUpdateParams are set

type VpcSubnetViewParams added in v0.0.23

type VpcSubnetViewParams struct {
	Subnet  NameOrId `json:"subnet,omitempty" yaml:"subnet,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
}

VpcSubnetViewParams is the request parameters for VpcSubnetView

Required fields: - Subnet

func (*VpcSubnetViewParams) Validate added in v0.0.23

func (p *VpcSubnetViewParams) Validate() error

Validate verifies all required fields for VpcSubnetViewParams are set

type VpcUpdate

type VpcUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	DnsName     Name   `json:"dns_name,omitempty" yaml:"dns_name,omitempty"`
	Name        Name   `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcUpdate is updateable properties of a `Vpc`

type VpcUpdateParams added in v0.0.23

type VpcUpdateParams struct {
	Vpc     NameOrId   `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Project NameOrId   `json:"project,omitempty" yaml:"project,omitempty"`
	Body    *VpcUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

VpcUpdateParams is the request parameters for VpcUpdate

Required fields: - Vpc - Body

func (*VpcUpdateParams) Validate added in v0.0.23

func (p *VpcUpdateParams) Validate() error

Validate verifies all required fields for VpcUpdateParams are set

type VpcViewParams added in v0.0.23

type VpcViewParams struct {
	Vpc     NameOrId `json:"vpc,omitempty" yaml:"vpc,omitempty"`
	Project NameOrId `json:"project,omitempty" yaml:"project,omitempty"`
}

VpcViewParams is the request parameters for VpcView

Required fields: - Vpc

func (*VpcViewParams) Validate added in v0.0.23

func (p *VpcViewParams) Validate() error

Validate verifies all required fields for VpcViewParams are set

Jump to

Keyboard shortcuts

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