oxide

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2026 License: MPL-2.0 Imports: 19 Imported by: 2

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"

	// ProfileEnvVar is the environment variable that contains the credentials profile to use.
	ProfileEnvVar = "OXIDE_PROFILE"
)

Variables

AddressAllocatorTypeCollection is the collection of all AddressAllocatorType values.

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

AddressLotKindCollection is the collection of all AddressLotKind values.

View Source
var AffinityGroupMemberTypeCollection = []AffinityGroupMemberType{
	AffinityGroupMemberTypeInstance,
}

AffinityGroupMemberTypeCollection is the collection of all AffinityGroupMemberType values.

View Source
var AffinityPolicyCollection = []AffinityPolicy{
	AffinityPolicyAllow,
	AffinityPolicyFail,
}

AffinityPolicyCollection is the collection of all AffinityPolicy values.

AlertDeliveryStateCollection is the collection of all AlertDeliveryState values.

AlertDeliveryTriggerCollection is the collection of all AlertDeliveryTrigger values.

View Source
var AlertReceiverKindKindCollection = []AlertReceiverKindKind{
	AlertReceiverKindKindWebhook,
}

AlertReceiverKindKindCollection is the collection of all AlertReceiverKindKind values.

AllowedSourceIpsAllowCollection is the collection of all AllowedSourceIpsAllow values.

View Source
var AntiAffinityGroupMemberTypeCollection = []AntiAffinityGroupMemberType{
	AntiAffinityGroupMemberTypeInstance,
}

AntiAffinityGroupMemberTypeCollection is the collection of all AntiAffinityGroupMemberType values.

AuditLogEntryActorKindCollection is the collection of all AuditLogEntryActorKind values.

AuditLogEntryResultKindCollection is the collection of all AuditLogEntryResultKind values.

AuthMethodCollection is the collection of all AuthMethod 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.

DiskBackendTypeCollection is the collection of all DiskBackendType values.

DiskSourceTypeCollection is the collection of all DiskSourceType values.

DiskStateStateCollection is the collection of all DiskStateState values.

View Source
var DiskTypeCollection = []DiskType{
	DiskTypeDistributed,
	DiskTypeLocal,
}

DiskTypeCollection is the collection of all DiskType values.

ExternalIpCreateTypeCollection is the collection of all ExternalIpCreateType values.

ExternalIpKindCollection is the collection of all ExternalIpKind values.

ExternalSubnetAllocatorTypeCollection is the collection of all ExternalSubnetAllocatorType values.

View Source
var FailureDomainCollection = []FailureDomain{
	FailureDomainSled,
}

FailureDomainCollection is the collection of all FailureDomain 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.

View Source
var ImageSourceTypeCollection = []ImageSourceType{
	ImageSourceTypeSnapshot,
}

ImageSourceTypeCollection is the collection of all ImageSourceType values.

ImportExportPolicyTypeCollection is the collection of all ImportExportPolicyType values.

InstanceAutoRestartPolicyCollection is the collection of all InstanceAutoRestartPolicy values.

InstanceCpuPlatformCollection is the collection of all InstanceCpuPlatform 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 IpPoolTypeCollection = []IpPoolType{
	IpPoolTypeMulticast,
	IpPoolTypeUnicast,
}

IpPoolTypeCollection is the collection of all IpPoolType values.

View Source
var IpVersionCollection = []IpVersion{
	IpVersionV4,
	IpVersionV6,
}

IpVersionCollection is the collection of all IpVersion values.

Ipv4AssignmentTypeCollection is the collection of all Ipv4AssignmentType values.

Ipv6AssignmentTypeCollection is the collection of all Ipv6AssignmentType 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.

PoolSelectorTypeCollection is the collection of all PoolSelectorType values.

PrivateIpConfigTypeCollection is the collection of all PrivateIpConfigType values.

PrivateIpStackCreateTypeCollection is the collection of all PrivateIpStackCreateType values.

PrivateIpStackTypeCollection is the collection of all PrivateIpStackType values.

ProbeExternalIpKindCollection is the collection of all ProbeExternalIpKind values.

ProjectRoleCollection is the collection of all ProjectRole values.

RackMembershipChangeStateCollection is the collection of all RackMembershipChangeState 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.

SwitchPortGeometry2Collection is the collection of all SwitchPortGeometry2 values.

SwitchPortGeometryCollection is the collection of all SwitchPortGeometry values.

View Source
var SwitchSlotCollection = []SwitchSlot{
	SwitchSlotSwitch0,
	SwitchSlotSwitch1,
}

SwitchSlotCollection is the collection of all SwitchSlot values.

SystemMetricNameCollection is the collection of all SystemMetricName values.

TimeAndIdSortModeCollection is the collection of all TimeAndIdSortMode values.

TufRepoUploadStatusCollection is the collection of all TufRepoUploadStatus 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.

VersionSortModeCollection is the collection of all VersionSortMode 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.

VpcFirewallRuleProtocolTypeCollection is the collection of all VpcFirewallRuleProtocolType 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.

WebhookDeliveryAttemptResultCollection is the collection of all WebhookDeliveryAttemptResult values.

Functions

func DetectIpv4Format added in v0.8.0

func DetectIpv4Format(s string) bool

DetectIpv4Format returns true if s is a valid IPv4 address.

func DetectIpv6Format added in v0.8.0

func DetectIpv6Format(s string) bool

DetectIpv6Format returns true if s is a valid IPv6 address.

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.

func PointerIntToStr added in v0.4.0

func PointerIntToStr(i *int) string

PointerIntToStr converts an *int into a string. If nil, an empty string is returned.

func PointerTimeToStr added in v0.9.0

func PointerTimeToStr(t *time.Time) string

PointerTimeToStr converts a *time.Time into an RFC3339 string. If nil, an empty string is returned.

func PointerUint64ToStr added in v0.9.0

func PointerUint64ToStr(i *uint64) string

PointerUint64ToStr converts a *uint64 into a string. If nil, an empty string is returned.

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" yaml:"address"`
	// AddressLot is the address lot this address is drawn from.
	AddressLot NameOrId `json:"address_lot" yaml:"address_lot"`
	// 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 AddressAllocator added in v0.8.0

type AddressAllocator struct {
	Value addressAllocatorVariant
}

AddressAllocator is specify how to allocate a floating IP address.

func (AddressAllocator) AsAuto added in v0.8.0

AsAuto attempts to convert the AddressAllocator to a AddressAllocatorAuto. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AddressAllocator) AsExplicit added in v0.8.0

func (v AddressAllocator) AsExplicit() (*AddressAllocatorExplicit, bool)

AsExplicit attempts to convert the AddressAllocator to a AddressAllocatorExplicit. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AddressAllocator) MarshalJSON added in v0.8.0

func (v AddressAllocator) MarshalJSON() ([]byte, error)

func (AddressAllocator) Type added in v0.8.0

func (*AddressAllocator) UnmarshalJSON added in v0.8.0

func (v *AddressAllocator) UnmarshalJSON(data []byte) error

type AddressAllocatorAuto added in v0.8.0

type AddressAllocatorAuto struct {
	// PoolSelector is pool selection.
	//
	// If omitted, the silo's default pool is used. If the silo has default pools for both IPv4 and
	// IPv6, the request
	// will fail unless `ip_version` is specified.
	PoolSelector PoolSelector `json:"pool_selector,omitempty" yaml:"pool_selector,omitempty"`
}

AddressAllocatorAuto is a variant of AddressAllocator.

type AddressAllocatorExplicit added in v0.8.0

type AddressAllocatorExplicit struct {
	// Ip is the IP address to reserve.
	Ip string `json:"ip" yaml:"ip"`
}

AddressAllocatorExplicit is a variant of AddressAllocator.

type AddressAllocatorType added in v0.8.0

type AddressAllocatorType string

AddressAllocatorType is the type definition for a AddressAllocatorType.

const AddressAllocatorTypeAuto AddressAllocatorType = "auto"

AddressAllocatorTypeAuto represents the AddressAllocatorType `"auto"`.

const AddressAllocatorTypeExplicit AddressAllocatorType = "explicit"

AddressAllocatorTypeExplicit represents the AddressAllocatorType `"explicit"`.

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" yaml:"addresses"`
	// LinkName is link to assign the addresses to. 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.
	LinkName Name `json:"link_name" yaml:"link_name"`
}

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

Required fields: - Addresses - LinkName

type AddressLot added in v0.0.23

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

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" yaml:"first_address"`
	// Id is the id of the address lot block.
	Id string `json:"id" yaml:"id"`
	// LastAddress is the last address of the block (inclusive).
	LastAddress string `json:"last_address" yaml:"last_address"`
}

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" yaml:"first_address"`
	// LastAddress is the last address in the lot (inclusive).
	LastAddress string `json:"last_address" yaml:"last_address"`
}

AddressLotBlockCreate is parameters for creating an address lot block. First 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" yaml:"items"`
	// 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"      yaml:"blocks"`
	Description string                  `json:"description" yaml:"description"`
	// Kind is the kind of address lot to create.
	Kind AddressLotKind `json:"kind" yaml:"kind"`
	// 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" yaml:"name"`
}

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" yaml:"blocks"`
	// Lot is the address lot that was created.
	Lot AddressLot `json:"lot" yaml:"lot"`
}

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" yaml:"items"`
	// 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 AddressLotViewResponse added in v0.6.0

type AddressLotViewResponse struct {
	// Blocks is the address lot blocks.
	Blocks []AddressLotBlock `json:"blocks" yaml:"blocks"`
	// Lot is the address lot.
	Lot AddressLot `json:"lot" yaml:"lot"`
}

AddressLotViewResponse is an address lot and associated blocks resulting from viewing an address lot.

Required fields: - Blocks - Lot

type AffinityGroup added in v0.4.0

type AffinityGroup struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// FailureDomain is describes the scope of affinity for the purposes of co-location.
	FailureDomain FailureDomain `json:"failure_domain" yaml:"failure_domain"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Policy is affinity policy used to describe "what to do when a request cannot be satisfied"
	//
	// Used for both Affinity and Anti-Affinity Groups
	Policy    AffinityPolicy `json:"policy"     yaml:"policy"`
	ProjectId string         `json:"project_id" yaml:"project_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

AffinityGroup is view of an Affinity Group

Required fields: - Description - FailureDomain - Id - Name - Policy - ProjectId - TimeCreated - TimeModified

type AffinityGroupCreate added in v0.4.0

type AffinityGroupCreate struct {
	Description string `json:"description" yaml:"description"`
	// FailureDomain is describes the scope of affinity for the purposes of co-location.
	FailureDomain FailureDomain `json:"failure_domain" yaml:"failure_domain"`
	// 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" yaml:"name"`
	// Policy is affinity policy used to describe "what to do when a request cannot be satisfied"
	//
	// Used for both Affinity and Anti-Affinity Groups
	Policy AffinityPolicy `json:"policy" yaml:"policy"`
}

AffinityGroupCreate is create-time parameters for an `AffinityGroup`

Required fields: - Description - FailureDomain - Name - Policy

type AffinityGroupCreateParams added in v0.4.0

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

AffinityGroupCreateParams is the request parameters for AffinityGroupCreate

Required fields: - Project - Body

func (*AffinityGroupCreateParams) Validate added in v0.4.0

func (p *AffinityGroupCreateParams) Validate() error

Validate verifies all required fields for AffinityGroupCreateParams are set

type AffinityGroupDeleteParams added in v0.4.0

type AffinityGroupDeleteParams struct {
	Project       NameOrId `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
}

AffinityGroupDeleteParams is the request parameters for AffinityGroupDelete

Required fields: - AffinityGroup

func (*AffinityGroupDeleteParams) Validate added in v0.4.0

func (p *AffinityGroupDeleteParams) Validate() error

Validate verifies all required fields for AffinityGroupDeleteParams are set

type AffinityGroupListParams added in v0.4.0

type AffinityGroupListParams 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"`
}

AffinityGroupListParams is the request parameters for AffinityGroupList

Required fields: - Project

func (*AffinityGroupListParams) Validate added in v0.4.0

func (p *AffinityGroupListParams) Validate() error

Validate verifies all required fields for AffinityGroupListParams are set

type AffinityGroupMember added in v0.4.0

type AffinityGroupMember struct {
	Value affinityGroupMemberVariant
}

AffinityGroupMember is a member of an Affinity Group

Membership in a group is not exclusive - members may belong to multiple affinity / anti-affinity groups.

Affinity Groups can contain up to 32 members.

func (AffinityGroupMember) AsInstance added in v0.8.0

AsInstance attempts to convert the AffinityGroupMember to a AffinityGroupMemberInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AffinityGroupMember) MarshalJSON added in v0.8.0

func (v AffinityGroupMember) MarshalJSON() ([]byte, error)

func (AffinityGroupMember) Type added in v0.4.0

func (*AffinityGroupMember) UnmarshalJSON added in v0.8.0

func (v *AffinityGroupMember) UnmarshalJSON(data []byte) error

type AffinityGroupMemberInstance added in v0.4.0

type AffinityGroupMemberInstance struct {
	Value AffinityGroupMemberInstanceValue `json:"value" yaml:"value"`
}

AffinityGroupMemberInstance is a variant of AffinityGroupMember.

type AffinityGroupMemberInstanceAddParams added in v0.4.0

type AffinityGroupMemberInstanceAddParams struct {
	Project       NameOrId `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
	Instance      NameOrId `json:"instance,omitempty"       yaml:"instance,omitempty"`
}

AffinityGroupMemberInstanceAddParams is the request parameters for AffinityGroupMemberInstanceAdd

Required fields: - AffinityGroup - Instance

func (*AffinityGroupMemberInstanceAddParams) Validate added in v0.4.0

Validate verifies all required fields for AffinityGroupMemberInstanceAddParams are set

type AffinityGroupMemberInstanceDeleteParams added in v0.4.0

type AffinityGroupMemberInstanceDeleteParams struct {
	Project       NameOrId `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
	Instance      NameOrId `json:"instance,omitempty"       yaml:"instance,omitempty"`
}

AffinityGroupMemberInstanceDeleteParams is the request parameters for AffinityGroupMemberInstanceDelete

Required fields: - AffinityGroup - Instance

func (*AffinityGroupMemberInstanceDeleteParams) Validate added in v0.4.0

Validate verifies all required fields for AffinityGroupMemberInstanceDeleteParams are set

type AffinityGroupMemberInstanceValue added in v0.8.0

type AffinityGroupMemberInstanceValue struct {
	Id string `json:"id" yaml:"id"`
	// 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" yaml:"name"`
	// 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" yaml:"run_state"`
}

AffinityGroupMemberInstanceValue is the type definition for a AffinityGroupMemberInstanceValue.

Required fields: - Id - Name - RunState

type AffinityGroupMemberInstanceViewParams added in v0.4.0

type AffinityGroupMemberInstanceViewParams struct {
	Project       NameOrId `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
	Instance      NameOrId `json:"instance,omitempty"       yaml:"instance,omitempty"`
}

AffinityGroupMemberInstanceViewParams is the request parameters for AffinityGroupMemberInstanceView

Required fields: - AffinityGroup - Instance

func (*AffinityGroupMemberInstanceViewParams) Validate added in v0.4.0

Validate verifies all required fields for AffinityGroupMemberInstanceViewParams are set

type AffinityGroupMemberListParams added in v0.4.0

type AffinityGroupMemberListParams 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"`
	AffinityGroup NameOrId         `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
}

AffinityGroupMemberListParams is the request parameters for AffinityGroupMemberList

Required fields: - AffinityGroup

func (*AffinityGroupMemberListParams) Validate added in v0.4.0

func (p *AffinityGroupMemberListParams) Validate() error

Validate verifies all required fields for AffinityGroupMemberListParams are set

type AffinityGroupMemberResultsPage added in v0.4.0

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

AffinityGroupMemberResultsPage is a single page of results

Required fields: - Items

type AffinityGroupMemberType added in v0.4.0

type AffinityGroupMemberType string

AffinityGroupMemberType is the type definition for a AffinityGroupMemberType.

const AffinityGroupMemberTypeInstance AffinityGroupMemberType = "instance"

AffinityGroupMemberTypeInstance represents the AffinityGroupMemberType `"instance"`.

type AffinityGroupResultsPage added in v0.4.0

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

AffinityGroupResultsPage is a single page of results

Required fields: - Items

type AffinityGroupUpdate added in v0.4.0

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

AffinityGroupUpdate is updateable properties of an `AffinityGroup`

type AffinityGroupUpdateParams added in v0.4.0

type AffinityGroupUpdateParams struct {
	Project       NameOrId             `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId             `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
	Body          *AffinityGroupUpdate `json:"body,omitempty"           yaml:"body,omitempty"`
}

AffinityGroupUpdateParams is the request parameters for AffinityGroupUpdate

Required fields: - AffinityGroup - Body

func (*AffinityGroupUpdateParams) Validate added in v0.4.0

func (p *AffinityGroupUpdateParams) Validate() error

Validate verifies all required fields for AffinityGroupUpdateParams are set

type AffinityGroupViewParams added in v0.4.0

type AffinityGroupViewParams struct {
	Project       NameOrId `json:"project,omitempty"        yaml:"project,omitempty"`
	AffinityGroup NameOrId `json:"affinity_group,omitempty" yaml:"affinity_group,omitempty"`
}

AffinityGroupViewParams is the request parameters for AffinityGroupView

Required fields: - AffinityGroup

func (*AffinityGroupViewParams) Validate added in v0.4.0

func (p *AffinityGroupViewParams) Validate() error

Validate verifies all required fields for AffinityGroupViewParams are set

type AffinityPolicy added in v0.4.0

type AffinityPolicy string

AffinityPolicy is if the affinity request cannot be satisfied, allow it anyway.

This enables a "best-effort" attempt to satisfy the affinity policy.

const AffinityPolicyAllow AffinityPolicy = "allow"

AffinityPolicyAllow represents the AffinityPolicy `"allow"`.

const AffinityPolicyFail AffinityPolicy = "fail"

AffinityPolicyFail represents the AffinityPolicy `"fail"`.

type AggregateBgpMessageHistory added in v0.2.0

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

AggregateBgpMessageHistory is bGP message history for rack switches.

Required fields: - SwitchHistories

type AlertClass added in v0.5.0

type AlertClass struct {
	// Description is a description of what this alert class represents.
	Description string `json:"description" yaml:"description"`
	// Name is the name of the alert class.
	Name string `json:"name" yaml:"name"`
}

AlertClass is an alert class.

Required fields: - Description - Name

type AlertClassListParams added in v0.5.0

type AlertClassListParams struct {
	Limit     *int              `json:"limit,omitempty"      yaml:"limit,omitempty"`
	PageToken string            `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	Filter    AlertSubscription `json:"filter,omitempty"     yaml:"filter,omitempty"`
}

AlertClassListParams is the request parameters for AlertClassList

func (*AlertClassListParams) Validate added in v0.5.0

func (p *AlertClassListParams) Validate() error

Validate verifies all required fields for AlertClassListParams are set

type AlertClassResultsPage added in v0.5.0

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

AlertClassResultsPage is a single page of results

Required fields: - Items

type AlertDelivery added in v0.5.0

type AlertDelivery struct {
	// AlertClass is the event class.
	AlertClass string `json:"alert_class" yaml:"alert_class"`
	// AlertId is the UUID of the event.
	AlertId string `json:"alert_id" yaml:"alert_id"`
	// Attempts is individual attempts to deliver this webhook event, and their outcomes.
	Attempts AlertDeliveryAttempts `json:"attempts" yaml:"attempts"`
	// Id is the UUID of this delivery attempt.
	Id string `json:"id" yaml:"id"`
	// ReceiverId is the UUID of the alert receiver that this event was delivered to.
	ReceiverId string `json:"receiver_id" yaml:"receiver_id"`
	// State is the state of this delivery.
	State AlertDeliveryState `json:"state" yaml:"state"`
	// TimeStarted is the time at which this delivery began (i.e. the event was dispatched to the
	// receiver).
	TimeStarted *time.Time `json:"time_started" yaml:"time_started"`
	// Trigger is why this delivery was performed.
	Trigger AlertDeliveryTrigger `json:"trigger" yaml:"trigger"`
}

AlertDelivery is a delivery of a webhook event.

Required fields: - AlertClass - AlertId - Attempts - Id - ReceiverId - State - TimeStarted - Trigger

type AlertDeliveryAttempts added in v0.5.0

type AlertDeliveryAttempts struct {
	// Webhook is the type definition for a Webhook.
	Webhook []WebhookDeliveryAttempt `json:"webhook,omitempty" yaml:"webhook,omitempty"`
}

AlertDeliveryAttempts is a list of attempts to deliver an alert to a receiver.

The type of the delivery attempt model depends on the receiver type, as it may contain information specific to that delivery mechanism. For example, webhook delivery attempts contain the HTTP status code of the webhook request.

type AlertDeliveryAttemptsWebhook added in v0.5.0

type AlertDeliveryAttemptsWebhook struct {
	Webhook []WebhookDeliveryAttempt `json:"webhook" yaml:"webhook"`
}

AlertDeliveryAttemptsWebhook is a list of attempts to deliver an alert to a webhook receiver.

Required fields: - Webhook

type AlertDeliveryId added in v0.5.0

type AlertDeliveryId struct {
	DeliveryId string `json:"delivery_id" yaml:"delivery_id"`
}

AlertDeliveryId is the type definition for a AlertDeliveryId.

Required fields: - DeliveryId

type AlertDeliveryListParams added in v0.5.0

type AlertDeliveryListParams struct {
	Receiver  NameOrId          `json:"receiver,omitempty"   yaml:"receiver,omitempty"`
	Delivered *bool             `json:"delivered,omitempty"  yaml:"delivered,omitempty"`
	Failed    *bool             `json:"failed,omitempty"     yaml:"failed,omitempty"`
	Pending   *bool             `json:"pending,omitempty"    yaml:"pending,omitempty"`
	Limit     *int              `json:"limit,omitempty"      yaml:"limit,omitempty"`
	PageToken string            `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    TimeAndIdSortMode `json:"sort_by,omitempty"    yaml:"sort_by,omitempty"`
}

AlertDeliveryListParams is the request parameters for AlertDeliveryList

Required fields: - Receiver

func (*AlertDeliveryListParams) Validate added in v0.5.0

func (p *AlertDeliveryListParams) Validate() error

Validate verifies all required fields for AlertDeliveryListParams are set

type AlertDeliveryResendParams added in v0.5.0

type AlertDeliveryResendParams struct {
	AlertId  string   `json:"alert_id,omitempty" yaml:"alert_id,omitempty"`
	Receiver NameOrId `json:"receiver,omitempty" yaml:"receiver,omitempty"`
}

AlertDeliveryResendParams is the request parameters for AlertDeliveryResend

Required fields: - AlertId - Receiver

func (*AlertDeliveryResendParams) Validate added in v0.5.0

func (p *AlertDeliveryResendParams) Validate() error

Validate verifies all required fields for AlertDeliveryResendParams are set

type AlertDeliveryResultsPage added in v0.5.0

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

AlertDeliveryResultsPage is a single page of results

Required fields: - Items

type AlertDeliveryState added in v0.5.0

type AlertDeliveryState string

AlertDeliveryState is the webhook event has not yet been delivered successfully.

Either no delivery attempts have yet been performed, or the delivery has failed at least once but has retries remaining.

const AlertDeliveryStateDelivered AlertDeliveryState = "delivered"

AlertDeliveryStateDelivered represents the AlertDeliveryState `"delivered"`.

const AlertDeliveryStateFailed AlertDeliveryState = "failed"

AlertDeliveryStateFailed represents the AlertDeliveryState `"failed"`.

const AlertDeliveryStatePending AlertDeliveryState = "pending"

AlertDeliveryStatePending represents the AlertDeliveryState `"pending"`.

type AlertDeliveryTrigger added in v0.5.0

type AlertDeliveryTrigger string

AlertDeliveryTrigger is delivery was triggered by the alert itself.

const AlertDeliveryTriggerAlert AlertDeliveryTrigger = "alert"

AlertDeliveryTriggerAlert represents the AlertDeliveryTrigger `"alert"`.

const AlertDeliveryTriggerProbe AlertDeliveryTrigger = "probe"

AlertDeliveryTriggerProbe represents the AlertDeliveryTrigger `"probe"`.

const AlertDeliveryTriggerResend AlertDeliveryTrigger = "resend"

AlertDeliveryTriggerResend represents the AlertDeliveryTrigger `"resend"`.

type AlertProbeResult added in v0.5.0

type AlertProbeResult struct {
	// Probe is the outcome of the probe delivery.
	Probe AlertDelivery `json:"probe" yaml:"probe"`
	// ResendsStarted is if the probe request succeeded, and resending failed deliveries on success
	// was requested, the number of new delivery attempts started. Otherwise, if the probe did not
	// succeed, or resending failed deliveries
	// was not requested, this is null.
	//
	// Note that this may be 0, if there were no events found which had not been delivered
	// successfully to this receiver.
	//
	ResendsStarted *int `json:"resends_started,omitempty" yaml:"resends_started,omitempty"`
}

AlertProbeResult is data describing the result of an alert receiver liveness probe attempt.

Required fields: - Probe

type AlertReceiver added in v0.5.0

type AlertReceiver struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Kind is configuration specific to the kind of alert receiver that this is.
	Kind AlertReceiverKind `json:"kind" yaml:"kind"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Subscriptions is the list of alert classes to which this receiver is subscribed.
	Subscriptions []AlertSubscription `json:"subscriptions" yaml:"subscriptions"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

AlertReceiver is the configuration for an alert receiver.

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

type AlertReceiverDeleteParams added in v0.5.0

type AlertReceiverDeleteParams struct {
	Receiver NameOrId `json:"receiver,omitempty" yaml:"receiver,omitempty"`
}

AlertReceiverDeleteParams is the request parameters for AlertReceiverDelete

Required fields: - Receiver

func (*AlertReceiverDeleteParams) Validate added in v0.5.0

func (p *AlertReceiverDeleteParams) Validate() error

Validate verifies all required fields for AlertReceiverDeleteParams are set

type AlertReceiverKind added in v0.5.0

type AlertReceiverKind struct {
	Value alertReceiverKindVariant
}

AlertReceiverKind is the possible alert delivery mechanisms for an alert receiver.

func (AlertReceiverKind) AsWebhook added in v0.8.0

AsWebhook attempts to convert the AlertReceiverKind to a AlertReceiverKindWebhook. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AlertReceiverKind) Kind added in v0.5.0

func (AlertReceiverKind) MarshalJSON added in v0.8.0

func (v AlertReceiverKind) MarshalJSON() ([]byte, error)

func (*AlertReceiverKind) UnmarshalJSON added in v0.8.0

func (v *AlertReceiverKind) UnmarshalJSON(data []byte) error

type AlertReceiverKindKind added in v0.5.0

type AlertReceiverKindKind string

AlertReceiverKindKind is the type definition for a AlertReceiverKindKind.

const AlertReceiverKindKindWebhook AlertReceiverKindKind = "webhook"

AlertReceiverKindKindWebhook represents the AlertReceiverKindKind `"webhook"`.

type AlertReceiverKindWebhook added in v0.5.0

type AlertReceiverKindWebhook struct {
	// Endpoint is the URL that webhook notification requests are sent to.
	Endpoint string `json:"endpoint" yaml:"endpoint"`
	// Secrets is a list containing the IDs of the secret keys used to sign payloads sent to this
	// receiver.
	Secrets []WebhookSecret `json:"secrets" yaml:"secrets"`
}

AlertReceiverKindWebhook is a variant of AlertReceiverKind.

type AlertReceiverListParams added in v0.5.0

type AlertReceiverListParams 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"`
}

AlertReceiverListParams is the request parameters for AlertReceiverList

func (*AlertReceiverListParams) Validate added in v0.5.0

func (p *AlertReceiverListParams) Validate() error

Validate verifies all required fields for AlertReceiverListParams are set

type AlertReceiverProbeParams added in v0.5.0

type AlertReceiverProbeParams struct {
	Receiver NameOrId `json:"receiver,omitempty" yaml:"receiver,omitempty"`
	Resend   *bool    `json:"resend,omitempty"   yaml:"resend,omitempty"`
}

AlertReceiverProbeParams is the request parameters for AlertReceiverProbe

Required fields: - Receiver

func (*AlertReceiverProbeParams) Validate added in v0.5.0

func (p *AlertReceiverProbeParams) Validate() error

Validate verifies all required fields for AlertReceiverProbeParams are set

type AlertReceiverResultsPage added in v0.5.0

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

AlertReceiverResultsPage is a single page of results

Required fields: - Items

type AlertReceiverSubscriptionAddParams added in v0.5.0

type AlertReceiverSubscriptionAddParams struct {
	Receiver NameOrId                 `json:"receiver,omitempty" yaml:"receiver,omitempty"`
	Body     *AlertSubscriptionCreate `json:"body,omitempty"     yaml:"body,omitempty"`
}

AlertReceiverSubscriptionAddParams is the request parameters for AlertReceiverSubscriptionAdd

Required fields: - Receiver - Body

func (*AlertReceiverSubscriptionAddParams) Validate added in v0.5.0

Validate verifies all required fields for AlertReceiverSubscriptionAddParams are set

type AlertReceiverSubscriptionRemoveParams added in v0.5.0

type AlertReceiverSubscriptionRemoveParams struct {
	Receiver     NameOrId          `json:"receiver,omitempty"     yaml:"receiver,omitempty"`
	Subscription AlertSubscription `json:"subscription,omitempty" yaml:"subscription,omitempty"`
}

AlertReceiverSubscriptionRemoveParams is the request parameters for AlertReceiverSubscriptionRemove

Required fields: - Receiver - Subscription

func (*AlertReceiverSubscriptionRemoveParams) Validate added in v0.5.0

Validate verifies all required fields for AlertReceiverSubscriptionRemoveParams are set

type AlertReceiverViewParams added in v0.5.0

type AlertReceiverViewParams struct {
	Receiver NameOrId `json:"receiver,omitempty" yaml:"receiver,omitempty"`
}

AlertReceiverViewParams is the request parameters for AlertReceiverView

Required fields: - Receiver

func (*AlertReceiverViewParams) Validate added in v0.5.0

func (p *AlertReceiverViewParams) Validate() error

Validate verifies all required fields for AlertReceiverViewParams are set

type AlertSubscription added in v0.5.0

type AlertSubscription string

AlertSubscription is a webhook event class subscription matches either a single event class exactly, or a glob pattern including wildcards that may match multiple event classes

type AlertSubscriptionCreate added in v0.5.0

type AlertSubscriptionCreate struct {
	// Subscription is the event class pattern to subscribe to.
	Subscription AlertSubscription `json:"subscription" yaml:"subscription"`
}

AlertSubscriptionCreate is the type definition for a AlertSubscriptionCreate.

Required fields: - Subscription

type AlertSubscriptionCreated added in v0.5.0

type AlertSubscriptionCreated struct {
	// Subscription is the new subscription added to the receiver.
	Subscription AlertSubscription `json:"subscription" yaml:"subscription"`
}

AlertSubscriptionCreated is the type definition for a AlertSubscriptionCreated.

Required fields: - Subscription

type AllowList added in v0.2.0

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

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" yaml:"allowed_ips"`
}

AllowListUpdate is parameters for updating allowed source IPs

Required fields: - AllowedIps

type AllowedSourceIps added in v0.2.0

type AllowedSourceIps struct {
	Value allowedSourceIpsVariant
}

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

func (AllowedSourceIps) Allow added in v0.2.0

func (AllowedSourceIps) AsAny added in v0.8.0

AsAny attempts to convert the AllowedSourceIps to a AllowedSourceIpsAny. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AllowedSourceIps) AsList added in v0.8.0

AsList attempts to convert the AllowedSourceIps to a AllowedSourceIpsList. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AllowedSourceIps) MarshalJSON added in v0.8.0

func (v AllowedSourceIps) MarshalJSON() ([]byte, error)

func (*AllowedSourceIps) UnmarshalJSON added in v0.8.0

func (v *AllowedSourceIps) UnmarshalJSON(data []byte) error

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 {
}

AllowedSourceIpsAny is a variant of AllowedSourceIps.

type AllowedSourceIpsList added in v0.2.0

type AllowedSourceIpsList struct {
	Ips []IpNet `json:"ips" yaml:"ips"`
}

AllowedSourceIpsList is a variant of AllowedSourceIps.

type AntiAffinityGroup added in v0.4.0

type AntiAffinityGroup struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// FailureDomain is describes the scope of affinity for the purposes of co-location.
	FailureDomain FailureDomain `json:"failure_domain" yaml:"failure_domain"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Policy is affinity policy used to describe "what to do when a request cannot be satisfied"
	//
	// Used for both Affinity and Anti-Affinity Groups
	Policy    AffinityPolicy `json:"policy"     yaml:"policy"`
	ProjectId string         `json:"project_id" yaml:"project_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

AntiAffinityGroup is view of an Anti-Affinity Group

Required fields: - Description - FailureDomain - Id - Name - Policy - ProjectId - TimeCreated - TimeModified

type AntiAffinityGroupCreate added in v0.4.0

type AntiAffinityGroupCreate struct {
	Description string `json:"description" yaml:"description"`
	// FailureDomain is describes the scope of affinity for the purposes of co-location.
	FailureDomain FailureDomain `json:"failure_domain" yaml:"failure_domain"`
	// 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" yaml:"name"`
	// Policy is affinity policy used to describe "what to do when a request cannot be satisfied"
	//
	// Used for both Affinity and Anti-Affinity Groups
	Policy AffinityPolicy `json:"policy" yaml:"policy"`
}

AntiAffinityGroupCreate is create-time parameters for an `AntiAffinityGroup`

Required fields: - Description - FailureDomain - Name - Policy

type AntiAffinityGroupCreateParams added in v0.4.0

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

AntiAffinityGroupCreateParams is the request parameters for AntiAffinityGroupCreate

Required fields: - Project - Body

func (*AntiAffinityGroupCreateParams) Validate added in v0.4.0

func (p *AntiAffinityGroupCreateParams) Validate() error

Validate verifies all required fields for AntiAffinityGroupCreateParams are set

type AntiAffinityGroupDeleteParams added in v0.4.0

type AntiAffinityGroupDeleteParams struct {
	Project           NameOrId `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
}

AntiAffinityGroupDeleteParams is the request parameters for AntiAffinityGroupDelete

Required fields: - AntiAffinityGroup

func (*AntiAffinityGroupDeleteParams) Validate added in v0.4.0

func (p *AntiAffinityGroupDeleteParams) Validate() error

Validate verifies all required fields for AntiAffinityGroupDeleteParams are set

type AntiAffinityGroupListParams added in v0.4.0

type AntiAffinityGroupListParams 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"`
}

AntiAffinityGroupListParams is the request parameters for AntiAffinityGroupList

Required fields: - Project

func (*AntiAffinityGroupListParams) Validate added in v0.4.0

func (p *AntiAffinityGroupListParams) Validate() error

Validate verifies all required fields for AntiAffinityGroupListParams are set

type AntiAffinityGroupMember added in v0.4.0

type AntiAffinityGroupMember struct {
	Value antiAffinityGroupMemberVariant
}

AntiAffinityGroupMember is a member of an Anti-Affinity Group

Membership in a group is not exclusive - members may belong to multiple affinity / anti-affinity groups.

Anti-Affinity Groups can contain up to 32 members.

func (AntiAffinityGroupMember) AsInstance added in v0.8.0

AsInstance attempts to convert the AntiAffinityGroupMember to a AntiAffinityGroupMemberInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AntiAffinityGroupMember) MarshalJSON added in v0.8.0

func (v AntiAffinityGroupMember) MarshalJSON() ([]byte, error)

func (AntiAffinityGroupMember) Type added in v0.4.0

func (*AntiAffinityGroupMember) UnmarshalJSON added in v0.8.0

func (v *AntiAffinityGroupMember) UnmarshalJSON(data []byte) error

type AntiAffinityGroupMemberInstance added in v0.4.0

type AntiAffinityGroupMemberInstance struct {
	Value AntiAffinityGroupMemberInstanceValue `json:"value" yaml:"value"`
}

AntiAffinityGroupMemberInstance is a variant of AntiAffinityGroupMember.

type AntiAffinityGroupMemberInstanceAddParams added in v0.4.0

type AntiAffinityGroupMemberInstanceAddParams struct {
	Project           NameOrId `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
	Instance          NameOrId `json:"instance,omitempty"            yaml:"instance,omitempty"`
}

AntiAffinityGroupMemberInstanceAddParams is the request parameters for AntiAffinityGroupMemberInstanceAdd

Required fields: - AntiAffinityGroup - Instance

func (*AntiAffinityGroupMemberInstanceAddParams) Validate added in v0.4.0

Validate verifies all required fields for AntiAffinityGroupMemberInstanceAddParams are set

type AntiAffinityGroupMemberInstanceDeleteParams added in v0.4.0

type AntiAffinityGroupMemberInstanceDeleteParams struct {
	Project           NameOrId `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
	Instance          NameOrId `json:"instance,omitempty"            yaml:"instance,omitempty"`
}

AntiAffinityGroupMemberInstanceDeleteParams is the request parameters for AntiAffinityGroupMemberInstanceDelete

Required fields: - AntiAffinityGroup - Instance

func (*AntiAffinityGroupMemberInstanceDeleteParams) Validate added in v0.4.0

Validate verifies all required fields for AntiAffinityGroupMemberInstanceDeleteParams are set

type AntiAffinityGroupMemberInstanceValue added in v0.8.0

type AntiAffinityGroupMemberInstanceValue struct {
	Id string `json:"id" yaml:"id"`
	// 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" yaml:"name"`
	// 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" yaml:"run_state"`
}

AntiAffinityGroupMemberInstanceValue is the type definition for a AntiAffinityGroupMemberInstanceValue.

Required fields: - Id - Name - RunState

type AntiAffinityGroupMemberInstanceViewParams added in v0.4.0

type AntiAffinityGroupMemberInstanceViewParams struct {
	Project           NameOrId `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
	Instance          NameOrId `json:"instance,omitempty"            yaml:"instance,omitempty"`
}

AntiAffinityGroupMemberInstanceViewParams is the request parameters for AntiAffinityGroupMemberInstanceView

Required fields: - AntiAffinityGroup - Instance

func (*AntiAffinityGroupMemberInstanceViewParams) Validate added in v0.4.0

Validate verifies all required fields for AntiAffinityGroupMemberInstanceViewParams are set

type AntiAffinityGroupMemberListParams added in v0.4.0

type AntiAffinityGroupMemberListParams 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"`
	AntiAffinityGroup NameOrId         `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
}

AntiAffinityGroupMemberListParams is the request parameters for AntiAffinityGroupMemberList

Required fields: - AntiAffinityGroup

func (*AntiAffinityGroupMemberListParams) Validate added in v0.4.0

Validate verifies all required fields for AntiAffinityGroupMemberListParams are set

type AntiAffinityGroupMemberResultsPage added in v0.4.0

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

AntiAffinityGroupMemberResultsPage is a single page of results

Required fields: - Items

type AntiAffinityGroupMemberType added in v0.4.0

type AntiAffinityGroupMemberType string

AntiAffinityGroupMemberType is the type definition for a AntiAffinityGroupMemberType.

const AntiAffinityGroupMemberTypeInstance AntiAffinityGroupMemberType = "instance"

AntiAffinityGroupMemberTypeInstance represents the AntiAffinityGroupMemberType `"instance"`.

type AntiAffinityGroupResultsPage added in v0.4.0

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

AntiAffinityGroupResultsPage is a single page of results

Required fields: - Items

type AntiAffinityGroupUpdate added in v0.4.0

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

AntiAffinityGroupUpdate is updateable properties of an `AntiAffinityGroup`

type AntiAffinityGroupUpdateParams added in v0.4.0

type AntiAffinityGroupUpdateParams struct {
	Project           NameOrId                 `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId                 `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
	Body              *AntiAffinityGroupUpdate `json:"body,omitempty"                yaml:"body,omitempty"`
}

AntiAffinityGroupUpdateParams is the request parameters for AntiAffinityGroupUpdate

Required fields: - AntiAffinityGroup - Body

func (*AntiAffinityGroupUpdateParams) Validate added in v0.4.0

func (p *AntiAffinityGroupUpdateParams) Validate() error

Validate verifies all required fields for AntiAffinityGroupUpdateParams are set

type AntiAffinityGroupViewParams added in v0.4.0

type AntiAffinityGroupViewParams struct {
	Project           NameOrId `json:"project,omitempty"             yaml:"project,omitempty"`
	AntiAffinityGroup NameOrId `json:"anti_affinity_group,omitempty" yaml:"anti_affinity_group,omitempty"`
}

AntiAffinityGroupViewParams is the request parameters for AntiAffinityGroupView

Required fields: - AntiAffinityGroup

func (*AntiAffinityGroupViewParams) Validate added in v0.4.0

func (p *AntiAffinityGroupViewParams) Validate() error

Validate verifies all required fields for AntiAffinityGroupViewParams are set

type AuditLogEntry added in v0.6.0

type AuditLogEntry struct {
	Actor AuditLogEntryActor `json:"actor" yaml:"actor"`
	// AuthMethod is how the user authenticated the request (access token, session, or SCIM token).
	// Null for
	// unauthenticated requests like login attempts.
	AuthMethod AuthMethod `json:"auth_method,omitempty" yaml:"auth_method,omitempty"`
	// CredentialId is iD of the credential used for authentication. Null for unauthenticated
	// requests. The value of `auth_method` indicates what kind of credential it is (access token,
	// session, or SCIM token).
	CredentialId string `json:"credential_id,omitempty" yaml:"credential_id,omitempty"`
	// Id is unique identifier for the audit log entry
	Id string `json:"id" yaml:"id"`
	// OperationId is aPI endpoint ID, e.g., `project_create`
	OperationId string `json:"operation_id" yaml:"operation_id"`
	// RequestId is request ID for tracing requests through the system
	RequestId string `json:"request_id" yaml:"request_id"`
	// RequestUri is uRI of the request, truncated to 512 characters. Will only include host and
	// scheme for HTTP/2
	// requests. For HTTP/1.1, the URI will consist of only the path and query.
	RequestUri string `json:"request_uri" yaml:"request_uri"`
	// Result is result of the operation
	Result AuditLogEntryResult `json:"result" yaml:"result"`
	// SourceIp is iP address that made the request
	SourceIp string `json:"source_ip" yaml:"source_ip"`
	// TimeCompleted is time operation completed
	TimeCompleted *time.Time `json:"time_completed" yaml:"time_completed"`
	// TimeStarted is when the request was received
	TimeStarted *time.Time `json:"time_started" yaml:"time_started"`
	// UserAgent is user agent string from the request, truncated to 256 characters.
	UserAgent string `json:"user_agent,omitempty" yaml:"user_agent,omitempty"`
}

AuditLogEntry is audit log entry

Required fields: - Actor - Id - OperationId - RequestId - RequestUri - Result - SourceIp - TimeCompleted - TimeStarted

type AuditLogEntryActor added in v0.6.0

type AuditLogEntryActor struct {
	Value auditLogEntryActorVariant
}

AuditLogEntryActor is the type definition for a AuditLogEntryActor.

func (AuditLogEntryActor) AsScim added in v0.8.0

AsScim attempts to convert the AuditLogEntryActor to a AuditLogEntryActorScim. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryActor) AsSiloUser added in v0.8.0

AsSiloUser attempts to convert the AuditLogEntryActor to a AuditLogEntryActorSiloUser. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryActor) AsUnauthenticated added in v0.8.0

func (v AuditLogEntryActor) AsUnauthenticated() (*AuditLogEntryActorUnauthenticated, bool)

AsUnauthenticated attempts to convert the AuditLogEntryActor to a AuditLogEntryActorUnauthenticated. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryActor) AsUserBuiltin added in v0.8.0

AsUserBuiltin attempts to convert the AuditLogEntryActor to a AuditLogEntryActorUserBuiltin. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryActor) Kind added in v0.6.0

func (AuditLogEntryActor) MarshalJSON added in v0.8.0

func (v AuditLogEntryActor) MarshalJSON() ([]byte, error)

func (*AuditLogEntryActor) UnmarshalJSON added in v0.8.0

func (v *AuditLogEntryActor) UnmarshalJSON(data []byte) error

type AuditLogEntryActorKind added in v0.6.0

type AuditLogEntryActorKind string

AuditLogEntryActorKind is the type definition for a AuditLogEntryActorKind.

const AuditLogEntryActorKindScim AuditLogEntryActorKind = "scim"

AuditLogEntryActorKindScim represents the AuditLogEntryActorKind `"scim"`.

const AuditLogEntryActorKindSiloUser AuditLogEntryActorKind = "silo_user"

AuditLogEntryActorKindSiloUser represents the AuditLogEntryActorKind `"silo_user"`.

const AuditLogEntryActorKindUnauthenticated AuditLogEntryActorKind = "unauthenticated"

AuditLogEntryActorKindUnauthenticated represents the AuditLogEntryActorKind `"unauthenticated"`.

const AuditLogEntryActorKindUserBuiltin AuditLogEntryActorKind = "user_builtin"

AuditLogEntryActorKindUserBuiltin represents the AuditLogEntryActorKind `"user_builtin"`.

type AuditLogEntryActorScim added in v0.7.0

type AuditLogEntryActorScim struct {
	SiloId string `json:"silo_id" yaml:"silo_id"`
}

AuditLogEntryActorScim is a variant of AuditLogEntryActor.

type AuditLogEntryActorSiloUser added in v0.6.0

type AuditLogEntryActorSiloUser struct {
	SiloId     string `json:"silo_id"      yaml:"silo_id"`
	SiloUserId string `json:"silo_user_id" yaml:"silo_user_id"`
}

AuditLogEntryActorSiloUser is a variant of AuditLogEntryActor.

type AuditLogEntryActorUnauthenticated added in v0.6.0

type AuditLogEntryActorUnauthenticated struct {
}

AuditLogEntryActorUnauthenticated is a variant of AuditLogEntryActor.

type AuditLogEntryActorUserBuiltin added in v0.6.0

type AuditLogEntryActorUserBuiltin struct {
	UserBuiltinId string `json:"user_builtin_id" yaml:"user_builtin_id"`
}

AuditLogEntryActorUserBuiltin is a variant of AuditLogEntryActor.

type AuditLogEntryResult added in v0.6.0

type AuditLogEntryResult struct {
	Value auditLogEntryResultVariant
}

AuditLogEntryResult is result of an audit log entry

func (AuditLogEntryResult) AsError added in v0.8.0

AsError attempts to convert the AuditLogEntryResult to a AuditLogEntryResultError. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryResult) AsSuccess added in v0.8.0

AsSuccess attempts to convert the AuditLogEntryResult to a AuditLogEntryResultSuccess. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryResult) AsUnknown added in v0.8.0

AsUnknown attempts to convert the AuditLogEntryResult to a AuditLogEntryResultUnknown. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (AuditLogEntryResult) Kind added in v0.6.0

func (AuditLogEntryResult) MarshalJSON added in v0.8.0

func (v AuditLogEntryResult) MarshalJSON() ([]byte, error)

func (*AuditLogEntryResult) UnmarshalJSON added in v0.8.0

func (v *AuditLogEntryResult) UnmarshalJSON(data []byte) error

type AuditLogEntryResultError added in v0.6.0

type AuditLogEntryResultError struct {
	ErrorCode    string `json:"error_code,omitempty" yaml:"error_code,omitempty"`
	ErrorMessage string `json:"error_message"        yaml:"error_message"`
	// HttpStatusCode is hTTP status code
	HttpStatusCode *int `json:"http_status_code" yaml:"http_status_code"`
}

AuditLogEntryResultError is a variant of AuditLogEntryResult.

type AuditLogEntryResultKind added in v0.6.0

type AuditLogEntryResultKind string

AuditLogEntryResultKind is the type definition for a AuditLogEntryResultKind.

const AuditLogEntryResultKindError AuditLogEntryResultKind = "error"

AuditLogEntryResultKindError represents the AuditLogEntryResultKind `"error"`.

const AuditLogEntryResultKindSuccess AuditLogEntryResultKind = "success"

AuditLogEntryResultKindSuccess represents the AuditLogEntryResultKind `"success"`.

const AuditLogEntryResultKindUnknown AuditLogEntryResultKind = "unknown"

AuditLogEntryResultKindUnknown represents the AuditLogEntryResultKind `"unknown"`.

type AuditLogEntryResultSuccess added in v0.6.0

type AuditLogEntryResultSuccess struct {
	// HttpStatusCode is hTTP status code
	HttpStatusCode *int `json:"http_status_code" yaml:"http_status_code"`
}

AuditLogEntryResultSuccess is a variant of AuditLogEntryResult.

type AuditLogEntryResultUnknown added in v0.6.0

type AuditLogEntryResultUnknown struct {
}

AuditLogEntryResultUnknown is a variant of AuditLogEntryResult.

type AuditLogEntryResultsPage added in v0.6.0

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

AuditLogEntryResultsPage is a single page of results

Required fields: - Items

type AuditLogListParams added in v0.6.0

type AuditLogListParams struct {
	EndTime   *time.Time        `json:"end_time,omitempty"   yaml:"end_time,omitempty"`
	Limit     *int              `json:"limit,omitempty"      yaml:"limit,omitempty"`
	PageToken string            `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    TimeAndIdSortMode `json:"sort_by,omitempty"    yaml:"sort_by,omitempty"`
	StartTime *time.Time        `json:"start_time,omitempty" yaml:"start_time,omitempty"`
}

AuditLogListParams is the request parameters for AuditLogList

Required fields: - StartTime

func (*AuditLogListParams) Validate added in v0.6.0

func (p *AuditLogListParams) Validate() error

Validate verifies all required fields for AuditLogListParams are set

type AuthMethod added in v0.8.0

type AuthMethod string

AuthMethod is console session cookie

const AuthMethodAccessToken AuthMethod = "access_token"

AuthMethodAccessToken represents the AuthMethod `"access_token"`.

const AuthMethodScimToken AuthMethod = "scim_token"

AuthMethodScimToken represents the AuthMethod `"scim_token"`.

const AuthMethodSessionCookie AuthMethod = "session_cookie"

AuthMethodSessionCookie represents the AuthMethod `"session_cookie"`.

type AuthSettingsUpdateParams added in v0.5.0

type AuthSettingsUpdateParams struct {
	Body *SiloAuthSettingsUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

AuthSettingsUpdateParams is the request parameters for AuthSettingsUpdate

Required fields: - Body

func (*AuthSettingsUpdateParams) Validate added in v0.5.0

func (p *AuthSettingsUpdateParams) Validate() error

Validate verifies all required fields for AuthSettingsUpdateParams are set

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"     yaml:"part"`
	Revision *int   `json:"revision" yaml:"revision"`
	Serial   string `json:"serial"   yaml:"serial"`
}

Baseboard is properties that uniquely identify an Oxide hardware component

Required fields: - Part - Revision - Serial

type BaseboardId added in v0.8.0

type BaseboardId struct {
	// PartNumber is oxide Part Number
	PartNumber string `json:"part_number" yaml:"part_number"`
	// SerialNumber is serial number (unique for a given part number)
	SerialNumber string `json:"serial_number" yaml:"serial_number"`
}

BaseboardId is a representation of a Baseboard ID as used in the inventory subsystem.

This type is essentially the same as a `Baseboard` except it doesn't have a revision or HW type (Gimlet, PC, Unknown).

Required fields: - PartNumber - SerialNumber

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" yaml:"remote"`
	// SwitchSlot is the slot of the switch within the rack to disable this session on.
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

BfdSessionDisable is information needed to disable a BFD session

Required fields: - Remote - SwitchSlot

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" yaml:"detection_threshold"`
	// 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" yaml:"mode"`
	// Remote is address of the remote peer to establish a BFD session with.
	Remote string `json:"remote" yaml:"remote"`
	// RequiredRx is the minimum interval, in microseconds, between received BFD Control packets
	// that this system
	// requires
	RequiredRx *uint64 `json:"required_rx" yaml:"required_rx"`
	// SwitchSlot is the slot of the switch within the rack to enable this session on.
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

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

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

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" yaml:"detection_threshold"`
	Local              string `json:"local,omitempty"     yaml:"local,omitempty"`
	// Mode is bFD connection mode.
	Mode       BfdMode  `json:"mode"        yaml:"mode"`
	Peer       string   `json:"peer"        yaml:"peer"`
	RequiredRx *uint64  `json:"required_rx" yaml:"required_rx"`
	State      BfdState `json:"state"       yaml:"state"`
	// SwitchSlot is identifies switch physical location
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

BfdStatus is the type definition for a BfdStatus.

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

type BgpAnnounceSet added in v0.0.23

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

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" yaml:"announcement"`
	Description  string                  `json:"description"  yaml:"description"`
	// 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" yaml:"name"`
}

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" yaml:"address_lot_block_id"`
	// AnnounceSetId is the id of the set this announcement is a part of.
	AnnounceSetId string `json:"announce_set_id" yaml:"announce_set_id"`
	// Network is the IP network being announced.
	Network IpNet `json:"network" yaml:"network"`
}

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" yaml:"address_lot_block"`
	// Network is the network being announced.
	Network IpNet `json:"network" yaml:"network"`
}

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" yaml:"asn"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// MaxPaths is maximum number of paths to use when multiple "best paths" exist
	MaxPaths MaxPathConfig `json:"max_paths" yaml:"max_paths"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// 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 - MaxPaths - 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"                 yaml:"asn"`
	BgpAnnounceSetId NameOrId `json:"bgp_announce_set_id" yaml:"bgp_announce_set_id"`
	Description      string   `json:"description"         yaml:"description"`
	// MaxPaths is maximum number of paths to use when multiple "best paths" exist
	MaxPaths MaxPathConfig `json:"max_paths,omitempty" yaml:"max_paths,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" yaml:"name"`
	// 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 an 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" yaml:"items"`
	// 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 {
	// PeerId is identifier for the BGP peer.
	PeerId string `json:"peer_id" yaml:"peer_id"`
	// Prefix is the destination network prefix.
	Prefix IpNet `json:"prefix" yaml:"prefix"`
	// Switch is switch the route is exported from.
	Switch SwitchSlot `json:"switch" yaml:"switch"`
}

BgpExported is route exported to a peer.

Required fields: - PeerId - Prefix - Switch

type BgpImported added in v0.8.0

type BgpImported struct {
	// Id is bGP identifier of the originating router.
	Id *int `json:"id" yaml:"id"`
	// Nexthop is the nexthop the prefix is reachable through.
	Nexthop string `json:"nexthop" yaml:"nexthop"`
	// Prefix is the destination network prefix.
	Prefix IpNet `json:"prefix" yaml:"prefix"`
	// Switch is switch the route is imported into.
	Switch SwitchSlot `json:"switch" yaml:"switch"`
}

BgpImported 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. If not provided, this is an unnumbered BGP
	// session that will
	// be established over the interface specified by `interface_name`.
	Addr string `json:"addr,omitempty" yaml:"addr,omitempty"`
	// AllowedExport is define export policy for a peer.
	AllowedExport ImportExportPolicy `json:"allowed_export" yaml:"allowed_export"`
	// AllowedImport is define import policy for a peer.
	AllowedImport ImportExportPolicy `json:"allowed_import" yaml:"allowed_import"`
	// BgpConfig is the global BGP configuration used for establishing a session with this peer.
	BgpConfig NameOrId `json:"bgp_config" yaml:"bgp_config"`
	// Communities is include the provided communities in updates sent to the peer.
	Communities []int `json:"communities" yaml:"communities"`
	// ConnectRetry is how long to to wait between TCP connection retries (seconds).
	ConnectRetry *int `json:"connect_retry" yaml:"connect_retry"`
	// DelayOpen is how long to delay sending an open request after establishing a TCP session
	// (seconds).
	DelayOpen *int `json:"delay_open" yaml:"delay_open"`
	// EnforceFirstAs is enforce that the first AS in paths received from this peer is the peer's
	// AS.
	EnforceFirstAs *bool `json:"enforce_first_as" yaml:"enforce_first_as"`
	// HoldTime is how long to hold peer connections between keepalives (seconds).
	HoldTime *int `json:"hold_time" yaml:"hold_time"`
	// IdleHoldTime is how long to hold a peer in idle before attempting a new session (seconds).
	IdleHoldTime *int `json:"idle_hold_time" yaml:"idle_hold_time"`
	// 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 Name `json:"interface_name" yaml:"interface_name"`
	// Keepalive is how often to send keepalive requests (seconds).
	Keepalive *int `json:"keepalive" yaml:"keepalive"`
	// 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"`
	// RouterLifetime is router lifetime in seconds for unnumbered BGP peers.
	RouterLifetime *int `json:"router_lifetime" yaml:"router_lifetime"`
	// 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: - AllowedExport - AllowedImport - BgpConfig - Communities - ConnectRetry - DelayOpen - EnforceFirstAs - HoldTime - IdleHoldTime - InterfaceName - Keepalive - RouterLifetime

type BgpPeerConfig added in v0.0.23

type BgpPeerConfig struct {
	// LinkName is link that the peer is reachable on. 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.
	LinkName Name      `json:"link_name" yaml:"link_name"`
	Peers    []BgpPeer `json:"peers"     yaml:"peers"`
}

BgpPeerConfig is the type definition for a BgpPeerConfig.

Required fields: - LinkName - 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 BgpPeerStateConnectionCollision BgpPeerState = "connection_collision"

BgpPeerStateConnectionCollision represents the BgpPeerState `"connection_collision"`.

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" yaml:"addr"`
	// LocalAsn is local autonomous system number.
	LocalAsn *int `json:"local_asn" yaml:"local_asn"`
	// PeerId is interface name
	PeerId string `json:"peer_id" yaml:"peer_id"`
	// RemoteAsn is remote autonomous system number.
	RemoteAsn *int `json:"remote_asn" yaml:"remote_asn"`
	// State is state of the peer.
	State BgpPeerState `json:"state" yaml:"state"`
	// StateDurationMillis is time of last state change.
	StateDurationMillis *uint64 `json:"state_duration_millis" yaml:"state_duration_millis"`
	// Switch is switch with the peer session.
	Switch SwitchSlot `json:"switch" yaml:"switch"`
}

BgpPeerStatus is the current status of a BGP peer.

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

type BinRangedouble

type BinRangedouble struct {
	Value binRangedoubleVariant
}

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.

func (BinRangedouble) AsRange added in v0.8.0

func (v BinRangedouble) AsRange() (*BinRangedoubleRange, bool)

AsRange attempts to convert the BinRangedouble to a BinRangedoubleRange. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangedouble) AsRangeFrom added in v0.8.0

func (v BinRangedouble) AsRangeFrom() (*BinRangedoubleRangeFrom, bool)

AsRangeFrom attempts to convert the BinRangedouble to a BinRangedoubleRangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangedouble) AsRangeTo added in v0.8.0

func (v BinRangedouble) AsRangeTo() (*BinRangedoubleRangeTo, bool)

AsRangeTo attempts to convert the BinRangedouble to a BinRangedoubleRangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangedouble) MarshalJSON added in v0.8.0

func (v BinRangedouble) MarshalJSON() ([]byte, error)

func (BinRangedouble) Type

func (*BinRangedouble) UnmarshalJSON added in v0.8.0

func (v *BinRangedouble) UnmarshalJSON(data []byte) error

type BinRangedoubleRange

type BinRangedoubleRange struct {
	End   float64 `json:"end"   yaml:"end"`
	Start float64 `json:"start" yaml:"start"`
}

BinRangedoubleRange is a variant of BinRangedouble.

type BinRangedoubleRangeFrom

type BinRangedoubleRangeFrom struct {
	Start float64 `json:"start" yaml:"start"`
}

BinRangedoubleRangeFrom is a variant of BinRangedouble.

type BinRangedoubleRangeTo

type BinRangedoubleRangeTo struct {
	End float64 `json:"end" yaml:"end"`
}

BinRangedoubleRangeTo is a variant of BinRangedouble.

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 {
	Value binRangefloatVariant
}

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.

func (BinRangefloat) AsRange added in v0.8.0

func (v BinRangefloat) AsRange() (*BinRangefloatRange, bool)

AsRange attempts to convert the BinRangefloat to a BinRangefloatRange. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangefloat) AsRangeFrom added in v0.8.0

func (v BinRangefloat) AsRangeFrom() (*BinRangefloatRangeFrom, bool)

AsRangeFrom attempts to convert the BinRangefloat to a BinRangefloatRangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangefloat) AsRangeTo added in v0.8.0

func (v BinRangefloat) AsRangeTo() (*BinRangefloatRangeTo, bool)

AsRangeTo attempts to convert the BinRangefloat to a BinRangefloatRangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangefloat) MarshalJSON added in v0.8.0

func (v BinRangefloat) MarshalJSON() ([]byte, error)

func (BinRangefloat) Type added in v0.0.23

func (*BinRangefloat) UnmarshalJSON added in v0.8.0

func (v *BinRangefloat) UnmarshalJSON(data []byte) error

type BinRangefloatRange added in v0.0.23

type BinRangefloatRange struct {
	End   float64 `json:"end"   yaml:"end"`
	Start float64 `json:"start" yaml:"start"`
}

BinRangefloatRange is a variant of BinRangefloat.

type BinRangefloatRangeFrom added in v0.0.23

type BinRangefloatRangeFrom struct {
	Start float64 `json:"start" yaml:"start"`
}

BinRangefloatRangeFrom is a variant of BinRangefloat.

type BinRangefloatRangeTo added in v0.0.23

type BinRangefloatRangeTo struct {
	End float64 `json:"end" yaml:"end"`
}

BinRangefloatRangeTo is a variant of BinRangefloat.

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 BinRangeint8 added in v0.0.23

type BinRangeint8 struct {
	Value binRangeint8Variant
}

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.

func (BinRangeint8) AsRange added in v0.8.0

func (v BinRangeint8) AsRange() (*BinRangeint8Range, bool)

AsRange attempts to convert the BinRangeint8 to a BinRangeint8Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint8) AsRangeFrom added in v0.8.0

func (v BinRangeint8) AsRangeFrom() (*BinRangeint8RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeint8 to a BinRangeint8RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint8) AsRangeTo added in v0.8.0

func (v BinRangeint8) AsRangeTo() (*BinRangeint8RangeTo, bool)

AsRangeTo attempts to convert the BinRangeint8 to a BinRangeint8RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint8) MarshalJSON added in v0.8.0

func (v BinRangeint8) MarshalJSON() ([]byte, error)

func (BinRangeint8) Type added in v0.0.23

func (v BinRangeint8) Type() BinRangeint8Type

func (*BinRangeint8) UnmarshalJSON added in v0.8.0

func (v *BinRangeint8) UnmarshalJSON(data []byte) error

type BinRangeint8Range added in v0.0.23

type BinRangeint8Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeint8Range is a variant of BinRangeint8.

type BinRangeint8RangeFrom added in v0.0.23

type BinRangeint8RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeint8RangeFrom is a variant of BinRangeint8.

type BinRangeint8RangeTo added in v0.0.23

type BinRangeint8RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeint8RangeTo is a variant of BinRangeint8.

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 BinRangeint16 added in v0.0.23

type BinRangeint16 struct {
	Value binRangeint16Variant
}

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.

func (BinRangeint16) AsRange added in v0.8.0

func (v BinRangeint16) AsRange() (*BinRangeint16Range, bool)

AsRange attempts to convert the BinRangeint16 to a BinRangeint16Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint16) AsRangeFrom added in v0.8.0

func (v BinRangeint16) AsRangeFrom() (*BinRangeint16RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeint16 to a BinRangeint16RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint16) AsRangeTo added in v0.8.0

func (v BinRangeint16) AsRangeTo() (*BinRangeint16RangeTo, bool)

AsRangeTo attempts to convert the BinRangeint16 to a BinRangeint16RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint16) MarshalJSON added in v0.8.0

func (v BinRangeint16) MarshalJSON() ([]byte, error)

func (BinRangeint16) Type added in v0.0.23

func (*BinRangeint16) UnmarshalJSON added in v0.8.0

func (v *BinRangeint16) UnmarshalJSON(data []byte) error

type BinRangeint16Range added in v0.0.23

type BinRangeint16Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeint16Range is a variant of BinRangeint16.

type BinRangeint16RangeFrom added in v0.0.23

type BinRangeint16RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeint16RangeFrom is a variant of BinRangeint16.

type BinRangeint16RangeTo added in v0.0.23

type BinRangeint16RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeint16RangeTo is a variant of BinRangeint16.

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 {
	Value binRangeint32Variant
}

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.

func (BinRangeint32) AsRange added in v0.8.0

func (v BinRangeint32) AsRange() (*BinRangeint32Range, bool)

AsRange attempts to convert the BinRangeint32 to a BinRangeint32Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint32) AsRangeFrom added in v0.8.0

func (v BinRangeint32) AsRangeFrom() (*BinRangeint32RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeint32 to a BinRangeint32RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint32) AsRangeTo added in v0.8.0

func (v BinRangeint32) AsRangeTo() (*BinRangeint32RangeTo, bool)

AsRangeTo attempts to convert the BinRangeint32 to a BinRangeint32RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint32) MarshalJSON added in v0.8.0

func (v BinRangeint32) MarshalJSON() ([]byte, error)

func (BinRangeint32) Type added in v0.0.23

func (*BinRangeint32) UnmarshalJSON added in v0.8.0

func (v *BinRangeint32) UnmarshalJSON(data []byte) error

type BinRangeint32Range added in v0.0.23

type BinRangeint32Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeint32Range is a variant of BinRangeint32.

type BinRangeint32RangeFrom added in v0.0.23

type BinRangeint32RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeint32RangeFrom is a variant of BinRangeint32.

type BinRangeint32RangeTo added in v0.0.23

type BinRangeint32RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeint32RangeTo is a variant of BinRangeint32.

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 {
	Value binRangeint64Variant
}

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.

func (BinRangeint64) AsRange added in v0.8.0

func (v BinRangeint64) AsRange() (*BinRangeint64Range, bool)

AsRange attempts to convert the BinRangeint64 to a BinRangeint64Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint64) AsRangeFrom added in v0.8.0

func (v BinRangeint64) AsRangeFrom() (*BinRangeint64RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeint64 to a BinRangeint64RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint64) AsRangeTo added in v0.8.0

func (v BinRangeint64) AsRangeTo() (*BinRangeint64RangeTo, bool)

AsRangeTo attempts to convert the BinRangeint64 to a BinRangeint64RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeint64) MarshalJSON added in v0.8.0

func (v BinRangeint64) MarshalJSON() ([]byte, error)

func (BinRangeint64) Type

func (*BinRangeint64) UnmarshalJSON added in v0.8.0

func (v *BinRangeint64) UnmarshalJSON(data []byte) error

type BinRangeint64Range

type BinRangeint64Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeint64Range is a variant of BinRangeint64.

type BinRangeint64RangeFrom

type BinRangeint64RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeint64RangeFrom is a variant of BinRangeint64.

type BinRangeint64RangeTo

type BinRangeint64RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeint64RangeTo is a variant of BinRangeint64.

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 BinRangeuint8 added in v0.0.23

type BinRangeuint8 struct {
	Value binRangeuint8Variant
}

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.

func (BinRangeuint8) AsRange added in v0.8.0

func (v BinRangeuint8) AsRange() (*BinRangeuint8Range, bool)

AsRange attempts to convert the BinRangeuint8 to a BinRangeuint8Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint8) AsRangeFrom added in v0.8.0

func (v BinRangeuint8) AsRangeFrom() (*BinRangeuint8RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeuint8 to a BinRangeuint8RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint8) AsRangeTo added in v0.8.0

func (v BinRangeuint8) AsRangeTo() (*BinRangeuint8RangeTo, bool)

AsRangeTo attempts to convert the BinRangeuint8 to a BinRangeuint8RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint8) MarshalJSON added in v0.8.0

func (v BinRangeuint8) MarshalJSON() ([]byte, error)

func (BinRangeuint8) Type added in v0.0.23

func (*BinRangeuint8) UnmarshalJSON added in v0.8.0

func (v *BinRangeuint8) UnmarshalJSON(data []byte) error

type BinRangeuint8Range added in v0.0.23

type BinRangeuint8Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint8Range is a variant of BinRangeuint8.

type BinRangeuint8RangeFrom added in v0.0.23

type BinRangeuint8RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint8RangeFrom is a variant of BinRangeuint8.

type BinRangeuint8RangeTo added in v0.0.23

type BinRangeuint8RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeuint8RangeTo is a variant of BinRangeuint8.

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 BinRangeuint16 added in v0.0.23

type BinRangeuint16 struct {
	Value binRangeuint16Variant
}

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.

func (BinRangeuint16) AsRange added in v0.8.0

func (v BinRangeuint16) AsRange() (*BinRangeuint16Range, bool)

AsRange attempts to convert the BinRangeuint16 to a BinRangeuint16Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint16) AsRangeFrom added in v0.8.0

func (v BinRangeuint16) AsRangeFrom() (*BinRangeuint16RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeuint16 to a BinRangeuint16RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint16) AsRangeTo added in v0.8.0

func (v BinRangeuint16) AsRangeTo() (*BinRangeuint16RangeTo, bool)

AsRangeTo attempts to convert the BinRangeuint16 to a BinRangeuint16RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint16) MarshalJSON added in v0.8.0

func (v BinRangeuint16) MarshalJSON() ([]byte, error)

func (BinRangeuint16) Type added in v0.0.23

func (*BinRangeuint16) UnmarshalJSON added in v0.8.0

func (v *BinRangeuint16) UnmarshalJSON(data []byte) error

type BinRangeuint16Range added in v0.0.23

type BinRangeuint16Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint16Range is a variant of BinRangeuint16.

type BinRangeuint16RangeFrom added in v0.0.23

type BinRangeuint16RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint16RangeFrom is a variant of BinRangeuint16.

type BinRangeuint16RangeTo added in v0.0.23

type BinRangeuint16RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeuint16RangeTo is a variant of BinRangeuint16.

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 {
	Value binRangeuint32Variant
}

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.

func (BinRangeuint32) AsRange added in v0.8.0

func (v BinRangeuint32) AsRange() (*BinRangeuint32Range, bool)

AsRange attempts to convert the BinRangeuint32 to a BinRangeuint32Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint32) AsRangeFrom added in v0.8.0

func (v BinRangeuint32) AsRangeFrom() (*BinRangeuint32RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeuint32 to a BinRangeuint32RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint32) AsRangeTo added in v0.8.0

func (v BinRangeuint32) AsRangeTo() (*BinRangeuint32RangeTo, bool)

AsRangeTo attempts to convert the BinRangeuint32 to a BinRangeuint32RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint32) MarshalJSON added in v0.8.0

func (v BinRangeuint32) MarshalJSON() ([]byte, error)

func (BinRangeuint32) Type added in v0.0.23

func (*BinRangeuint32) UnmarshalJSON added in v0.8.0

func (v *BinRangeuint32) UnmarshalJSON(data []byte) error

type BinRangeuint32Range added in v0.0.23

type BinRangeuint32Range struct {
	End   *int `json:"end"   yaml:"end"`
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint32Range is a variant of BinRangeuint32.

type BinRangeuint32RangeFrom added in v0.0.23

type BinRangeuint32RangeFrom struct {
	Start *int `json:"start" yaml:"start"`
}

BinRangeuint32RangeFrom is a variant of BinRangeuint32.

type BinRangeuint32RangeTo added in v0.0.23

type BinRangeuint32RangeTo struct {
	End *int `json:"end" yaml:"end"`
}

BinRangeuint32RangeTo is a variant of BinRangeuint32.

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 {
	Value binRangeuint64Variant
}

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.

func (BinRangeuint64) AsRange added in v0.8.0

func (v BinRangeuint64) AsRange() (*BinRangeuint64Range, bool)

AsRange attempts to convert the BinRangeuint64 to a BinRangeuint64Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint64) AsRangeFrom added in v0.8.0

func (v BinRangeuint64) AsRangeFrom() (*BinRangeuint64RangeFrom, bool)

AsRangeFrom attempts to convert the BinRangeuint64 to a BinRangeuint64RangeFrom. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint64) AsRangeTo added in v0.8.0

func (v BinRangeuint64) AsRangeTo() (*BinRangeuint64RangeTo, bool)

AsRangeTo attempts to convert the BinRangeuint64 to a BinRangeuint64RangeTo. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (BinRangeuint64) MarshalJSON added in v0.8.0

func (v BinRangeuint64) MarshalJSON() ([]byte, error)

func (BinRangeuint64) Type added in v0.0.23

func (*BinRangeuint64) UnmarshalJSON added in v0.8.0

func (v *BinRangeuint64) UnmarshalJSON(data []byte) error

type BinRangeuint64Range added in v0.0.23

type BinRangeuint64Range struct {
	End   *uint64 `json:"end"   yaml:"end"`
	Start *uint64 `json:"start" yaml:"start"`
}

BinRangeuint64Range is a variant of BinRangeuint64.

type BinRangeuint64RangeFrom added in v0.0.23

type BinRangeuint64RangeFrom struct {
	Start *uint64 `json:"start" yaml:"start"`
}

BinRangeuint64RangeFrom is a variant of BinRangeuint64.

type BinRangeuint64RangeTo added in v0.0.23

type BinRangeuint64RangeTo struct {
	End *uint64 `json:"end" yaml:"end"`
}

BinRangeuint64RangeTo is a variant of BinRangeuint64.

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 Bindouble

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

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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangefloat `json:"range" yaml:"range"`
}

Binfloat 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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint8 `json:"range" yaml:"range"`
}

Binint8 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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint16 `json:"range" yaml:"range"`
}

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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint32 `json:"range" yaml:"range"`
}

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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeint64 `json:"range" yaml:"range"`
}

Binint64 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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint8 `json:"range" yaml:"range"`
}

Binuint8 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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint16 `json:"range" yaml:"range"`
}

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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint32 `json:"range" yaml:"range"`
}

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 *uint64 `json:"count" yaml:"count"`
	// Range is the range of the support covered by this bin.
	Range BinRangeuint64 `json:"range" yaml:"range"`
}

Binuint64 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" yaml:"cert"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Service is the service using this certificate
	Service ServiceUsingCertificate `json:"service" yaml:"service"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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"        yaml:"cert"`
	Description string `json:"description" yaml:"description"`
	// Key is pEM-formatted string containing private key
	Key string `json:"key" yaml:"key"`
	// 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" yaml:"name"`
	// Service is the service using this certificate
	Service ServiceUsingCertificate `json:"service" yaml:"service"`
}

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" yaml:"items"`
	// 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(opts ...ClientOption) (*Client, error)

NewClient creates an Oxide API client. When called with no options, it reads configuration from environment variables `OXIDE_HOST` and `OXIDE_TOKEN`, or `OXIDE_PROFILE`. When called with one or more ClientOption, it configure the client accordingly, overriding values from environment variables. When the same ClientOption is passed multiple times, the last argument wins.

The WithHost and WithToken options are mutually exclusive with WithProfile and WithDefaultProfile.

func (*Client) AlertClassList added in v0.5.0

func (c *Client) AlertClassList(
	ctx context.Context,
	params AlertClassListParams,
) (*AlertClassResultsPage, error)

AlertClassList: List alert classes

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

func (*Client) AlertClassListAllPages added in v0.5.0

func (c *Client) AlertClassListAllPages(
	ctx context.Context,
	params AlertClassListParams,
) ([]AlertClass, error)

AlertClassListAllPages: List alert classes

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

func (*Client) AlertDeliveryList added in v0.5.0

func (c *Client) AlertDeliveryList(
	ctx context.Context,
	params AlertDeliveryListParams,
) (*AlertDeliveryResultsPage, error)

AlertDeliveryList: List delivery attempts to alert receiver Optional query parameters to this endpoint may be used to filter deliveries by state. If none of the `failed`, `pending` or `delivered` query parameters are present, all deliveries are returned. If one or more of these parameters are provided, only those which are set to "true" are included in the response.

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

func (*Client) AlertDeliveryListAllPages added in v0.5.0

func (c *Client) AlertDeliveryListAllPages(
	ctx context.Context,
	params AlertDeliveryListParams,
) ([]AlertDelivery, error)

AlertDeliveryListAllPages: List delivery attempts to alert receiver Optional query parameters to this endpoint may be used to filter deliveries by state. If none of the `failed`, `pending` or `delivered` query parameters are present, all deliveries are returned. If one or more of these parameters are provided, only those which are set to "true" are included in the response.

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

func (*Client) AlertDeliveryResend added in v0.5.0

func (c *Client) AlertDeliveryResend(
	ctx context.Context,
	params AlertDeliveryResendParams,
) (*AlertDeliveryId, error)

AlertDeliveryResend: Request re-delivery of alert

func (*Client) AlertReceiverDelete added in v0.5.0

func (c *Client) AlertReceiverDelete(ctx context.Context, params AlertReceiverDeleteParams) error

AlertReceiverDelete: Delete alert receiver

func (*Client) AlertReceiverList added in v0.5.0

func (c *Client) AlertReceiverList(
	ctx context.Context,
	params AlertReceiverListParams,
) (*AlertReceiverResultsPage, error)

AlertReceiverList: List alert receivers

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

func (*Client) AlertReceiverListAllPages added in v0.5.0

func (c *Client) AlertReceiverListAllPages(
	ctx context.Context,
	params AlertReceiverListParams,
) ([]AlertReceiver, error)

AlertReceiverListAllPages: List alert receivers

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

func (*Client) AlertReceiverProbe added in v0.5.0

func (c *Client) AlertReceiverProbe(
	ctx context.Context,
	params AlertReceiverProbeParams,
) (*AlertProbeResult, error)

AlertReceiverProbe: Send liveness probe to alert receiver This endpoint synchronously sends a liveness probe to the selected alert receiver. The response message describes the outcome of the probe: either the successful response (as appropriate), or indication of why the probe failed.

The result of the probe is represented as an `AlertDelivery` model. Details relating to the status of the probe depend on the alert delivery mechanism, and are included in the `AlertDeliveryAttempts` model. For example, webhook receiver liveness probes include the HTTP status code returned by the receiver endpoint.

Note that the response status is `200 OK` as long as a probe request was able to be sent to the receiver endpoint. If an HTTP-based receiver, such as a webhook, responds to the another status code, including an error, this will be indicated by the response body, *not* the status of the response.

The `resend` query parameter can be used to request re-delivery of failed events if the liveness probe succeeds. If it is set to true and the liveness probe succeeds, any alerts for which delivery to this receiver has failed will be queued for re-delivery.

func (*Client) AlertReceiverSubscriptionAdd added in v0.5.0

func (c *Client) AlertReceiverSubscriptionAdd(
	ctx context.Context,
	params AlertReceiverSubscriptionAddParams,
) (*AlertSubscriptionCreated, error)

AlertReceiverSubscriptionAdd: Add alert receiver subscription

func (*Client) AlertReceiverSubscriptionRemove added in v0.5.0

func (c *Client) AlertReceiverSubscriptionRemove(
	ctx context.Context,
	params AlertReceiverSubscriptionRemoveParams,
) error

AlertReceiverSubscriptionRemove: Remove alert receiver subscription

func (*Client) AlertReceiverView added in v0.5.0

func (c *Client) AlertReceiverView(
	ctx context.Context,
	params AlertReceiverViewParams,
) (*AlertReceiver, error)

AlertReceiverView: Fetch alert receiver

func (*Client) AntiAffinityGroupCreate added in v0.4.0

func (c *Client) AntiAffinityGroupCreate(
	ctx context.Context,
	params AntiAffinityGroupCreateParams,
) (*AntiAffinityGroup, error)

AntiAffinityGroupCreate: Create anti-affinity group

func (*Client) AntiAffinityGroupDelete added in v0.4.0

func (c *Client) AntiAffinityGroupDelete(
	ctx context.Context,
	params AntiAffinityGroupDeleteParams,
) error

AntiAffinityGroupDelete: Delete anti-affinity group

func (*Client) AntiAffinityGroupList added in v0.4.0

func (c *Client) AntiAffinityGroupList(
	ctx context.Context,
	params AntiAffinityGroupListParams,
) (*AntiAffinityGroupResultsPage, error)

AntiAffinityGroupList: List anti-affinity groups

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

func (*Client) AntiAffinityGroupListAllPages added in v0.4.0

func (c *Client) AntiAffinityGroupListAllPages(
	ctx context.Context,
	params AntiAffinityGroupListParams,
) ([]AntiAffinityGroup, error)

AntiAffinityGroupListAllPages: List anti-affinity groups

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

func (*Client) AntiAffinityGroupMemberInstanceAdd added in v0.4.0

func (c *Client) AntiAffinityGroupMemberInstanceAdd(
	ctx context.Context,
	params AntiAffinityGroupMemberInstanceAddParams,
) (*AntiAffinityGroupMember, error)

AntiAffinityGroupMemberInstanceAdd: Add member to anti-affinity group

func (*Client) AntiAffinityGroupMemberInstanceDelete added in v0.4.0

func (c *Client) AntiAffinityGroupMemberInstanceDelete(
	ctx context.Context,
	params AntiAffinityGroupMemberInstanceDeleteParams,
) error

AntiAffinityGroupMemberInstanceDelete: Remove member from anti-affinity group

func (*Client) AntiAffinityGroupMemberInstanceView added in v0.4.0

func (c *Client) AntiAffinityGroupMemberInstanceView(
	ctx context.Context,
	params AntiAffinityGroupMemberInstanceViewParams,
) (*AntiAffinityGroupMember, error)

AntiAffinityGroupMemberInstanceView: Fetch anti-affinity group member

func (*Client) AntiAffinityGroupMemberList added in v0.4.0

func (c *Client) AntiAffinityGroupMemberList(
	ctx context.Context,
	params AntiAffinityGroupMemberListParams,
) (*AntiAffinityGroupMemberResultsPage, error)

AntiAffinityGroupMemberList: List anti-affinity group members

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

func (*Client) AntiAffinityGroupMemberListAllPages added in v0.4.0

func (c *Client) AntiAffinityGroupMemberListAllPages(
	ctx context.Context,
	params AntiAffinityGroupMemberListParams,
) ([]AntiAffinityGroupMember, error)

AntiAffinityGroupMemberListAllPages: List anti-affinity group members

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

func (*Client) AntiAffinityGroupUpdate added in v0.4.0

func (c *Client) AntiAffinityGroupUpdate(
	ctx context.Context,
	params AntiAffinityGroupUpdateParams,
) (*AntiAffinityGroup, error)

AntiAffinityGroupUpdate: Update anti-affinity group

func (*Client) AntiAffinityGroupView added in v0.4.0

func (c *Client) AntiAffinityGroupView(
	ctx context.Context,
	params AntiAffinityGroupViewParams,
) (*AntiAffinityGroup, error)

AntiAffinityGroupView: Fetch anti-affinity group

func (*Client) AuditLogList added in v0.6.0

func (c *Client) AuditLogList(
	ctx context.Context,
	params AuditLogListParams,
) (*AuditLogEntryResultsPage, error)

AuditLogList: View audit log A single item in the audit log represents both the beginning and end of the logged operation (represented by `time_started` and `time_completed`) so that clients do not have to find multiple entries and match them up by request ID to get the full picture of an operation. Because timestamps may not be unique, entries have also have a unique `id` that can be used to deduplicate items fetched from overlapping time intervals.

Audit log entries are designed to be immutable: once you see an entry, fetching it again will never get you a different result. The list is ordered by `time_completed`, not `time_started`. If you fetch the audit log for a time range that is fully in the past, the resulting list is guaranteed to be complete, i.e., fetching the same timespan again later will always produce the same set of entries.

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

func (*Client) AuditLogListAllPages added in v0.6.0

func (c *Client) AuditLogListAllPages(
	ctx context.Context,
	params AuditLogListParams,
) ([]AuditLogEntry, error)

AuditLogListAllPages: View audit log A single item in the audit log represents both the beginning and end of the logged operation (represented by `time_started` and `time_completed`) so that clients do not have to find multiple entries and match them up by request ID to get the full picture of an operation. Because timestamps may not be unique, entries have also have a unique `id` that can be used to deduplicate items fetched from overlapping time intervals.

Audit log entries are designed to be immutable: once you see an entry, fetching it again will never get you a different result. The list is ordered by `time_completed`, not `time_started`. If you fetch the audit log for a time range that is fully in the past, the resulting list is guaranteed to be complete, i.e., fetching the same timespan again later will always produce the same set of entries.

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

func (*Client) AuthSettingsUpdate added in v0.5.0

func (c *Client) AuthSettingsUpdate(
	ctx context.Context,
	params AuthSettingsUpdateParams,
) (*SiloAuthSettings, error)

AuthSettingsUpdate: Update current silo's auth settings

func (*Client) AuthSettingsView added in v0.5.0

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

AuthSettingsView: Fetch current silo's auth settings

func (*Client) CertificateCreate added in v0.0.23

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

CertificateCreate: Create 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) CurrentUserAccessTokenDelete added in v0.5.0

func (c *Client) CurrentUserAccessTokenDelete(
	ctx context.Context,
	params CurrentUserAccessTokenDeleteParams,
) error

CurrentUserAccessTokenDelete: Delete access token Delete a device access token for the currently authenticated user.

func (*Client) CurrentUserAccessTokenList added in v0.5.0

func (c *Client) CurrentUserAccessTokenList(
	ctx context.Context,
	params CurrentUserAccessTokenListParams,
) (*DeviceAccessTokenResultsPage, error)

CurrentUserAccessTokenList: List access tokens List device access tokens for the currently authenticated user.

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

func (*Client) CurrentUserAccessTokenListAllPages added in v0.5.0

func (c *Client) CurrentUserAccessTokenListAllPages(
	ctx context.Context,
	params CurrentUserAccessTokenListParams,
) ([]DeviceAccessToken, error)

CurrentUserAccessTokenListAllPages: List access tokens List device access tokens for the currently authenticated user.

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

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 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) DiskView

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

DiskView: Fetch disk

func (*Client) ExperimentalAffinityGroupCreate added in v0.8.0

func (c *Client) ExperimentalAffinityGroupCreate(
	ctx context.Context,
	params AffinityGroupCreateParams,
) (*AffinityGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupCreate: Create affinity group

func (*Client) ExperimentalAffinityGroupDelete added in v0.8.0

func (c *Client) ExperimentalAffinityGroupDelete(
	ctx context.Context,
	params AffinityGroupDeleteParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupDelete: Delete affinity group

func (*Client) ExperimentalAffinityGroupList added in v0.8.0

func (c *Client) ExperimentalAffinityGroupList(
	ctx context.Context,
	params AffinityGroupListParams,
) (*AffinityGroupResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupList: List affinity groups

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

func (*Client) ExperimentalAffinityGroupListAllPages added in v0.8.0

func (c *Client) ExperimentalAffinityGroupListAllPages(
	ctx context.Context,
	params AffinityGroupListParams,
) ([]AffinityGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupListAllPages: List affinity groups

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

func (*Client) ExperimentalAffinityGroupMemberInstanceAdd added in v0.8.0

func (c *Client) ExperimentalAffinityGroupMemberInstanceAdd(
	ctx context.Context,
	params AffinityGroupMemberInstanceAddParams,
) (*AffinityGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupMemberInstanceAdd: Add member to affinity group

func (*Client) ExperimentalAffinityGroupMemberInstanceDelete added in v0.8.0

func (c *Client) ExperimentalAffinityGroupMemberInstanceDelete(
	ctx context.Context,
	params AffinityGroupMemberInstanceDeleteParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupMemberInstanceDelete: Remove member from affinity group

func (*Client) ExperimentalAffinityGroupMemberInstanceView added in v0.8.0

func (c *Client) ExperimentalAffinityGroupMemberInstanceView(
	ctx context.Context,
	params AffinityGroupMemberInstanceViewParams,
) (*AffinityGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupMemberInstanceView: Fetch affinity group member

func (*Client) ExperimentalAffinityGroupMemberList added in v0.8.0

func (c *Client) ExperimentalAffinityGroupMemberList(
	ctx context.Context,
	params AffinityGroupMemberListParams,
) (*AffinityGroupMemberResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupMemberList: List affinity group members

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

func (*Client) ExperimentalAffinityGroupMemberListAllPages added in v0.8.0

func (c *Client) ExperimentalAffinityGroupMemberListAllPages(
	ctx context.Context,
	params AffinityGroupMemberListParams,
) ([]AffinityGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupMemberListAllPages: List affinity group members

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

func (*Client) ExperimentalAffinityGroupUpdate added in v0.8.0

func (c *Client) ExperimentalAffinityGroupUpdate(
	ctx context.Context,
	params AffinityGroupUpdateParams,
) (*AffinityGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupUpdate: Update affinity group

func (*Client) ExperimentalAffinityGroupView added in v0.8.0

func (c *Client) ExperimentalAffinityGroupView(
	ctx context.Context,
	params AffinityGroupViewParams,
) (*AffinityGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalAffinityGroupView: Fetch affinity group

func (*Client) ExperimentalInstanceAffinityGroupList added in v0.8.0

func (c *Client) ExperimentalInstanceAffinityGroupList(
	ctx context.Context,
	params InstanceAffinityGroupListParams,
) (*AffinityGroupResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceAffinityGroupList: List affinity groups containing instance

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

func (*Client) ExperimentalInstanceAffinityGroupListAllPages added in v0.8.0

func (c *Client) ExperimentalInstanceAffinityGroupListAllPages(
	ctx context.Context,
	params InstanceAffinityGroupListParams,
) ([]AffinityGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceAffinityGroupListAllPages: List affinity groups containing instance

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

func (*Client) ExperimentalInstanceMulticastGroupJoin added in v0.8.0

func (c *Client) ExperimentalInstanceMulticastGroupJoin(
	ctx context.Context,
	params InstanceMulticastGroupJoinParams,
) (*MulticastGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceMulticastGroupJoin: Join multicast group by name, IP address, or UUID Groups can be referenced by name, IP address, or UUID. If the group doesn't exist, it's implicitly created with an auto-allocated IP from a multicast pool linked to the caller's silo. When referencing by UUID, the group must already exist.

Source IPs are optional for ASM addresses but required for SSM addresses (232.0.0.0/8 for IPv4, ff3x::/32 for IPv6). Duplicate IPs in the request are automatically deduplicated, with a maximum of 64 source IPs allowed.

func (*Client) ExperimentalInstanceMulticastGroupLeave added in v0.8.0

func (c *Client) ExperimentalInstanceMulticastGroupLeave(
	ctx context.Context,
	params InstanceMulticastGroupLeaveParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceMulticastGroupLeave: Leave multicast group by name, IP address, or UUID

func (*Client) ExperimentalInstanceMulticastGroupList added in v0.8.0

func (c *Client) ExperimentalInstanceMulticastGroupList(
	ctx context.Context,
	params InstanceMulticastGroupListParams,
) (*MulticastGroupMemberResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceMulticastGroupList: List multicast groups for an instance

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

func (*Client) ExperimentalInstanceMulticastGroupListAllPages added in v0.8.0

func (c *Client) ExperimentalInstanceMulticastGroupListAllPages(
	ctx context.Context,
	params InstanceMulticastGroupListParams,
) ([]MulticastGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalInstanceMulticastGroupListAllPages: List multicast groups for an instance

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

func (*Client) ExperimentalMulticastGroupList added in v0.8.0

func (c *Client) ExperimentalMulticastGroupList(
	ctx context.Context,
	params MulticastGroupListParams,
) (*MulticastGroupResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalMulticastGroupList: List multicast groups

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

func (*Client) ExperimentalMulticastGroupListAllPages added in v0.8.0

func (c *Client) ExperimentalMulticastGroupListAllPages(
	ctx context.Context,
	params MulticastGroupListParams,
) ([]MulticastGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalMulticastGroupListAllPages: List multicast groups

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

func (*Client) ExperimentalMulticastGroupMemberList added in v0.8.0

func (c *Client) ExperimentalMulticastGroupMemberList(
	ctx context.Context,
	params MulticastGroupMemberListParams,
) (*MulticastGroupMemberResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalMulticastGroupMemberList: List members of multicast group The group can be specified by name, UUID, or multicast IP address.

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

func (*Client) ExperimentalMulticastGroupMemberListAllPages added in v0.8.0

func (c *Client) ExperimentalMulticastGroupMemberListAllPages(
	ctx context.Context,
	params MulticastGroupMemberListParams,
) ([]MulticastGroupMember, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalMulticastGroupMemberListAllPages: List members of multicast group The group can be specified by name, UUID, or multicast IP address.

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

func (*Client) ExperimentalMulticastGroupView added in v0.8.0

func (c *Client) ExperimentalMulticastGroupView(
	ctx context.Context,
	params MulticastGroupViewParams,
) (*MulticastGroup, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalMulticastGroupView: Fetch multicast group The group can be specified by name, UUID, or multicast IP address. (e.g., "224.1.2.3" or "ff38::1").

func (*Client) ExperimentalProbeCreate added in v0.8.0

func (c *Client) ExperimentalProbeCreate(
	ctx context.Context,
	params ProbeCreateParams,
) (*Probe, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalProbeCreate: Create instrumentation probe

func (*Client) ExperimentalProbeDelete added in v0.8.0

func (c *Client) ExperimentalProbeDelete(ctx context.Context, params ProbeDeleteParams) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalProbeDelete: Delete instrumentation probe

func (*Client) ExperimentalProbeList added in v0.8.0

func (c *Client) ExperimentalProbeList(
	ctx context.Context,
	params ProbeListParams,
) (*ProbeInfoResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalProbeList: List instrumentation probes

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

func (*Client) ExperimentalProbeListAllPages added in v0.8.0

func (c *Client) ExperimentalProbeListAllPages(
	ctx context.Context,
	params ProbeListParams,
) ([]ProbeInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalProbeListAllPages: List instrumentation probes

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

func (*Client) ExperimentalProbeView added in v0.8.0

func (c *Client) ExperimentalProbeView(
	ctx context.Context,
	params ProbeViewParams,
) (*ProbeInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalProbeView: View instrumentation probe

func (*Client) ExperimentalRackMembershipAbort added in v0.8.0

func (c *Client) ExperimentalRackMembershipAbort(
	ctx context.Context,
	params RackMembershipAbortParams,
) (*RackMembershipStatus, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalRackMembershipAbort: Abort the latest rack membership change This operation is synchronous. Upon returning from the API call, a success response indicates that the prior membership change was aborted. An error response indicates that there is no active membership change in progress (previous changes have completed) or that the current membership change could not be aborted.

func (*Client) ExperimentalRackMembershipAddSleds added in v0.8.0

func (c *Client) ExperimentalRackMembershipAddSleds(
	ctx context.Context,
	params RackMembershipAddSledsParams,
) (*RackMembershipStatus, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalRackMembershipAddSleds: Add new sleds to rack membership

func (*Client) ExperimentalRackMembershipStatus added in v0.8.0

func (c *Client) ExperimentalRackMembershipStatus(
	ctx context.Context,
	params RackMembershipStatusParams,
) (*RackMembershipStatus, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalRackMembershipStatus: Fetch rack cluster membership status Returns the status for the most recent change, or a specific version if one is specified.

func (*Client) ExperimentalSupportBundleCreate added in v0.8.0

func (c *Client) ExperimentalSupportBundleCreate(
	ctx context.Context,
	params SupportBundleCreateParams,
) (*SupportBundleInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleCreate: Create support bundle

func (*Client) ExperimentalSupportBundleDelete added in v0.8.0

func (c *Client) ExperimentalSupportBundleDelete(
	ctx context.Context,
	params SupportBundleDeleteParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleDelete: Delete support bundle May also be used to cancel a support bundle which is currently being collected, or to remove metadata for a support bundle that has failed.

func (*Client) ExperimentalSupportBundleDownload added in v0.8.0

func (c *Client) ExperimentalSupportBundleDownload(
	ctx context.Context,
	params SupportBundleDownloadParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleDownload: Download support bundle contents

func (*Client) ExperimentalSupportBundleDownloadFile added in v0.8.0

func (c *Client) ExperimentalSupportBundleDownloadFile(
	ctx context.Context,
	params SupportBundleDownloadFileParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleDownloadFile: Download file from support bundle

func (*Client) ExperimentalSupportBundleHead added in v0.8.0

func (c *Client) ExperimentalSupportBundleHead(
	ctx context.Context,
	params SupportBundleHeadParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleHead: Download support bundle metadata

func (*Client) ExperimentalSupportBundleHeadFile added in v0.8.0

func (c *Client) ExperimentalSupportBundleHeadFile(
	ctx context.Context,
	params SupportBundleHeadFileParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleHeadFile: Download metadata of file in support bundle

func (*Client) ExperimentalSupportBundleIndex added in v0.8.0

func (c *Client) ExperimentalSupportBundleIndex(
	ctx context.Context,
	params SupportBundleIndexParams,
) error

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleIndex: Download support bundle index

func (*Client) ExperimentalSupportBundleList added in v0.8.0

func (c *Client) ExperimentalSupportBundleList(
	ctx context.Context,
	params SupportBundleListParams,
) (*SupportBundleInfoResultsPage, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleList: List all support bundles

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

func (*Client) ExperimentalSupportBundleListAllPages added in v0.8.0

func (c *Client) ExperimentalSupportBundleListAllPages(
	ctx context.Context,
	params SupportBundleListParams,
) ([]SupportBundleInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleListAllPages: List all support bundles

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

func (*Client) ExperimentalSupportBundleUpdate added in v0.8.0

func (c *Client) ExperimentalSupportBundleUpdate(
	ctx context.Context,
	params SupportBundleUpdateParams,
) (*SupportBundleInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleUpdate: Update support bundle

func (*Client) ExperimentalSupportBundleView added in v0.8.0

func (c *Client) ExperimentalSupportBundleView(
	ctx context.Context,
	params SupportBundleViewParams,
) (*SupportBundleInfo, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalSupportBundleView: View support bundle

func (*Client) ExperimentalTimeseriesQuery added in v0.8.0

func (c *Client) ExperimentalTimeseriesQuery(
	ctx context.Context,
	params TimeseriesQueryParams,
) (*OxqlQueryResult, error)

EXPERIMENTAL: This operation is not yet stable and may change or be removed without notice.

ExperimentalTimeseriesQuery: Run project-scoped timeseries query Queries are written in OxQL. Project must be specified by name or ID in URL query parameter. The OxQL query will only return timeseries data from the specified project.

func (*Client) ExternalSubnetAttach added in v0.8.0

func (c *Client) ExternalSubnetAttach(
	ctx context.Context,
	params ExternalSubnetAttachParams,
) (*ExternalSubnet, error)

ExternalSubnetAttach: Attach external subnet to instance

func (*Client) ExternalSubnetCreate added in v0.8.0

func (c *Client) ExternalSubnetCreate(
	ctx context.Context,
	params ExternalSubnetCreateParams,
) (*ExternalSubnet, error)

ExternalSubnetCreate: Create external subnet

func (*Client) ExternalSubnetDelete added in v0.8.0

func (c *Client) ExternalSubnetDelete(
	ctx context.Context,
	params ExternalSubnetDeleteParams,
) error

ExternalSubnetDelete: Delete external subnet

func (*Client) ExternalSubnetDetach added in v0.8.0

func (c *Client) ExternalSubnetDetach(
	ctx context.Context,
	params ExternalSubnetDetachParams,
) (*ExternalSubnet, error)

ExternalSubnetDetach: Detach external subnet from instance

func (*Client) ExternalSubnetList added in v0.8.0

func (c *Client) ExternalSubnetList(
	ctx context.Context,
	params ExternalSubnetListParams,
) (*ExternalSubnetResultsPage, error)

ExternalSubnetList: List external subnets

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

func (*Client) ExternalSubnetListAllPages added in v0.8.0

func (c *Client) ExternalSubnetListAllPages(
	ctx context.Context,
	params ExternalSubnetListParams,
) ([]ExternalSubnet, error)

ExternalSubnetListAllPages: List external subnets

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

func (*Client) ExternalSubnetUpdate added in v0.8.0

func (c *Client) ExternalSubnetUpdate(
	ctx context.Context,
	params ExternalSubnetUpdateParams,
) (*ExternalSubnet, error)

ExternalSubnetUpdate: Update external subnet

func (*Client) ExternalSubnetView added in v0.8.0

func (c *Client) ExternalSubnetView(
	ctx context.Context,
	params ExternalSubnetViewParams,
) (*ExternalSubnet, error)

ExternalSubnetView: Fetch external subnet

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 A specific IP address can be reserved, or an IP can be auto-allocated from a specific pool or the silo's default pool.

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) Host added in v0.9.0

func (c *Client) Host() string

Host returns the base URL of the Oxide API.

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) InstanceAntiAffinityGroupList added in v0.4.0

func (c *Client) InstanceAntiAffinityGroupList(
	ctx context.Context,
	params InstanceAntiAffinityGroupListParams,
) (*AntiAffinityGroupResultsPage, error)

InstanceAntiAffinityGroupList: List anti-affinity groups containing instance

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

func (*Client) InstanceAntiAffinityGroupListAllPages added in v0.4.0

func (c *Client) InstanceAntiAffinityGroupListAllPages(
	ctx context.Context,
	params InstanceAntiAffinityGroupListParams,
) ([]AntiAffinityGroup, error)

InstanceAntiAffinityGroupListAllPages: List anti-affinity groups containing instance

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

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 When an instance has both IPv4 and IPv6 ephemeral IPs, the `ip_version` query parameter must be specified to identify which IP to detach.

func (*Client) InstanceExternalIpList

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

InstanceExternalIpList: List external IP addresses

func (*Client) InstanceExternalSubnetList added in v0.8.0

func (c *Client) InstanceExternalSubnetList(
	ctx context.Context,
	params InstanceExternalSubnetListParams,
) (*ExternalSubnetResultsPage, error)

InstanceExternalSubnetList: List external subnets attached to instance

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 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) IpPoolList

func (c *Client) IpPoolList(
	ctx context.Context,
	params IpPoolListParams,
) (*SiloIpPoolResultsPage, 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,
) ([]SiloIpPool, error)

IpPoolListAllPages: List IP pools

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

func (*Client) IpPoolView

func (c *Client) IpPoolView(ctx context.Context, params IpPoolViewParams) (*SiloIpPool, 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 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 user via SAML

func (*Client) MakeRequest added in v0.7.0

func (c *Client) MakeRequest(ctx context.Context, req Request) (*http.Response, error)

MakeRequest takes a `Request` that defines the desired API request, builds the URI using the configured API host, and sends the request to the API.

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) NetworkingAddressLotView added in v0.6.0

func (c *Client) NetworkingAddressLotView(
	ctx context.Context,
	params NetworkingAddressLotViewParams,
) (*AddressLotViewResponse, error)

NetworkingAddressLotView: Fetch address lot

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 BFD session

func (*Client) NetworkingBfdEnable added in v0.2.0

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

NetworkingBfdEnable: Enable 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 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: List BGP exported routes

func (*Client) NetworkingBgpImported added in v0.8.0

func (c *Client) NetworkingBgpImported(
	ctx context.Context,
	params NetworkingBgpImportedParams,
) (*[]BgpImported, error)

NetworkingBgpImported: 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) NetworkingInboundIcmpUpdate added in v0.6.0

func (c *Client) NetworkingInboundIcmpUpdate(
	ctx context.Context,
	params NetworkingInboundIcmpUpdateParams,
) error

NetworkingInboundIcmpUpdate: Set whether API services can receive limited ICMP traffic

func (*Client) NetworkingInboundIcmpView added in v0.6.0

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

NetworkingInboundIcmpView: Return whether API services can receive limited ICMP traffic

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 LLDP configuration for switch port

func (*Client) NetworkingSwitchPortLldpConfigView added in v0.3.0

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

NetworkingSwitchPortLldpConfigView: Fetch LLDP configuration for switch port

func (*Client) NetworkingSwitchPortLldpNeighbors added in v0.3.0

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

NetworkingSwitchPortLldpNeighbors: Fetch LLDP neighbors for 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 LLDP neighbors for 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,
) (*SwitchPortSettings, 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,
) (*SwitchPortSettingsIdentityResultsPage, 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,
) ([]SwitchPortSettingsIdentity, 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,
) (*SwitchPortSettings, 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 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) 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 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) SamlIdentityProviderCreate added in v0.0.23

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

SamlIdentityProviderCreate: Create SAML identity provider

func (*Client) SamlIdentityProviderView added in v0.0.23

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

SamlIdentityProviderView: Fetch SAML identity provider

func (*Client) ScimTokenCreate added in v0.7.0

func (c *Client) ScimTokenCreate(
	ctx context.Context,
	params ScimTokenCreateParams,
) (*ScimClientBearerTokenValue, error)

ScimTokenCreate: Create SCIM token Specify the silo by name or ID using the `silo` query parameter. Be sure to save the bearer token in the response. It will not be retrievable later through the token view and list endpoints.

func (*Client) ScimTokenDelete added in v0.7.0

func (c *Client) ScimTokenDelete(ctx context.Context, params ScimTokenDeleteParams) error

ScimTokenDelete: Delete SCIM token Specify the silo by name or ID using the `silo` query parameter.

func (*Client) ScimTokenList added in v0.7.0

func (c *Client) ScimTokenList(
	ctx context.Context,
	params ScimTokenListParams,
) (*[]ScimClientBearerToken, error)

ScimTokenList: List SCIM tokens Specify the silo by name or ID using the `silo` query parameter.

func (*Client) ScimTokenView added in v0.7.0

func (c *Client) ScimTokenView(
	ctx context.Context,
	params ScimTokenViewParams,
) (*ScimClientBearerToken, error)

ScimTokenView: Fetch SCIM token Specify the silo by name or ID using the `silo` query parameter.

func (*Client) SiloCreate

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

SiloCreate: Create silo

func (*Client) SiloDelete

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

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

func (*Client) SiloIdentityProviderList

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

SiloIdentityProviderList: List identity providers for silo List identity providers for silo by silo name or ID.

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 identity providers for silo List identity providers for silo by silo name or ID.

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) SiloSubnetPoolList added in v0.8.0

func (c *Client) SiloSubnetPoolList(
	ctx context.Context,
	params SiloSubnetPoolListParams,
) (*SiloSubnetPoolResultsPage, error)

SiloSubnetPoolList: List subnet pools linked to a silo

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

func (*Client) SiloSubnetPoolListAllPages added in v0.8.0

func (c *Client) SiloSubnetPoolListAllPages(
	ctx context.Context,
	params SiloSubnetPoolListParams,
) ([]SiloSubnetPool, error)

SiloSubnetPoolListAllPages: List subnet pools linked to a silo

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

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) 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) SubnetPoolList added in v0.8.0

func (c *Client) SubnetPoolList(
	ctx context.Context,
	params SubnetPoolListParams,
) (*SiloSubnetPoolResultsPage, error)

SubnetPoolList: List subnet pools

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

func (*Client) SubnetPoolListAllPages added in v0.8.0

func (c *Client) SubnetPoolListAllPages(
	ctx context.Context,
	params SubnetPoolListParams,
) ([]SiloSubnetPool, error)

SubnetPoolListAllPages: List subnet pools

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

func (*Client) SubnetPoolView added in v0.8.0

func (c *Client) SubnetPoolView(
	ctx context.Context,
	params SubnetPoolViewParams,
) (*SiloSubnetPool, error)

SubnetPoolView: Fetch subnet pool

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) SystemIpPoolCreate added in v0.8.0

func (c *Client) SystemIpPoolCreate(
	ctx context.Context,
	params SystemIpPoolCreateParams,
) (*IpPool, error)

SystemIpPoolCreate: Create IP pool

func (*Client) SystemIpPoolDelete added in v0.8.0

func (c *Client) SystemIpPoolDelete(ctx context.Context, params SystemIpPoolDeleteParams) error

SystemIpPoolDelete: Delete IP pool

func (*Client) SystemIpPoolList added in v0.8.0

func (c *Client) SystemIpPoolList(
	ctx context.Context,
	params SystemIpPoolListParams,
) (*IpPoolResultsPage, error)

SystemIpPoolList: List IP pools

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

func (*Client) SystemIpPoolListAllPages added in v0.8.0

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

SystemIpPoolListAllPages: List IP pools

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

func (*Client) SystemIpPoolRangeAdd added in v0.8.0

func (c *Client) SystemIpPoolRangeAdd(
	ctx context.Context,
	params SystemIpPoolRangeAddParams,
) (*IpPoolRange, error)

SystemIpPoolRangeAdd: Add range to IP pool For multicast pools, all ranges must be either Any-Source Multicast (ASM) or Source-Specific Multicast (SSM), but not both. Mixing ASM and SSM ranges in the same pool is not allowed.

ASM: IPv4 addresses outside 232.0.0.0/8, IPv6 addresses with flag field != 3 SSM: IPv4 addresses in 232.0.0.0/8, IPv6 addresses with flag field = 3

func (*Client) SystemIpPoolRangeList added in v0.8.0

func (c *Client) SystemIpPoolRangeList(
	ctx context.Context,
	params SystemIpPoolRangeListParams,
) (*IpPoolRangeResultsPage, error)

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

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

func (*Client) SystemIpPoolRangeListAllPages added in v0.8.0

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

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

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

func (*Client) SystemIpPoolRangeRemove added in v0.8.0

func (c *Client) SystemIpPoolRangeRemove(
	ctx context.Context,
	params SystemIpPoolRangeRemoveParams,
) error

SystemIpPoolRangeRemove: Remove range from IP pool

func (*Client) SystemIpPoolServiceRangeAdd added in v0.8.0

func (c *Client) SystemIpPoolServiceRangeAdd(
	ctx context.Context,
	params SystemIpPoolServiceRangeAddParams,
) (*IpPoolRange, error)

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

func (*Client) SystemIpPoolServiceRangeList added in v0.8.0

func (c *Client) SystemIpPoolServiceRangeList(
	ctx context.Context,
	params SystemIpPoolServiceRangeListParams,
) (*IpPoolRangeResultsPage, error)

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

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

func (*Client) SystemIpPoolServiceRangeListAllPages added in v0.8.0

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

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

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

func (*Client) SystemIpPoolServiceRangeRemove added in v0.8.0

func (c *Client) SystemIpPoolServiceRangeRemove(
	ctx context.Context,
	params SystemIpPoolServiceRangeRemoveParams,
) error

SystemIpPoolServiceRangeRemove: Remove IP range from Oxide service pool

func (*Client) SystemIpPoolServiceView added in v0.8.0

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

SystemIpPoolServiceView: Fetch Oxide service IP pool

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

SystemIpPoolSiloLink: 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) SystemIpPoolSiloList added in v0.8.0

func (c *Client) SystemIpPoolSiloList(
	ctx context.Context,
	params SystemIpPoolSiloListParams,
) (*IpPoolSiloLinkResultsPage, error)

SystemIpPoolSiloList: List IP pool's linked silos

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

func (*Client) SystemIpPoolSiloListAllPages added in v0.8.0

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

SystemIpPoolSiloListAllPages: List IP pool's linked silos

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

func (c *Client) SystemIpPoolSiloUnlink(
	ctx context.Context,
	params SystemIpPoolSiloUnlinkParams,
) error

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

func (*Client) SystemIpPoolSiloUpdate added in v0.8.0

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

SystemIpPoolSiloUpdate: 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) SystemIpPoolUpdate added in v0.8.0

func (c *Client) SystemIpPoolUpdate(
	ctx context.Context,
	params SystemIpPoolUpdateParams,
) (*IpPool, error)

SystemIpPoolUpdate: Update IP pool

func (*Client) SystemIpPoolUtilizationView added in v0.8.0

func (c *Client) SystemIpPoolUtilizationView(
	ctx context.Context,
	params SystemIpPoolUtilizationViewParams,
) (*IpPoolUtilization, error)

SystemIpPoolUtilizationView: Fetch IP pool utilization

func (*Client) SystemIpPoolView added in v0.8.0

func (c *Client) SystemIpPoolView(
	ctx context.Context,
	params SystemIpPoolViewParams,
) (*IpPool, error)

SystemIpPoolView: Fetch IP pool

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: List 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: List resource quotas for all silos

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

func (*Client) SystemSubnetPoolCreate added in v0.8.0

func (c *Client) SystemSubnetPoolCreate(
	ctx context.Context,
	params SystemSubnetPoolCreateParams,
) (*SubnetPool, error)

SystemSubnetPoolCreate: Create subnet pool

func (*Client) SystemSubnetPoolDelete added in v0.8.0

func (c *Client) SystemSubnetPoolDelete(
	ctx context.Context,
	params SystemSubnetPoolDeleteParams,
) error

SystemSubnetPoolDelete: Delete subnet pool

func (*Client) SystemSubnetPoolList added in v0.8.0

func (c *Client) SystemSubnetPoolList(
	ctx context.Context,
	params SystemSubnetPoolListParams,
) (*SubnetPoolResultsPage, error)

SystemSubnetPoolList: List subnet pools

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

func (*Client) SystemSubnetPoolListAllPages added in v0.8.0

func (c *Client) SystemSubnetPoolListAllPages(
	ctx context.Context,
	params SystemSubnetPoolListParams,
) ([]SubnetPool, error)

SystemSubnetPoolListAllPages: List subnet pools

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

func (*Client) SystemSubnetPoolMemberAdd added in v0.8.0

func (c *Client) SystemSubnetPoolMemberAdd(
	ctx context.Context,
	params SystemSubnetPoolMemberAddParams,
) (*SubnetPoolMember, error)

SystemSubnetPoolMemberAdd: Add member to subnet pool

func (*Client) SystemSubnetPoolMemberList added in v0.8.0

func (c *Client) SystemSubnetPoolMemberList(
	ctx context.Context,
	params SystemSubnetPoolMemberListParams,
) (*SubnetPoolMemberResultsPage, error)

SystemSubnetPoolMemberList: List members in subnet pool

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

func (*Client) SystemSubnetPoolMemberListAllPages added in v0.8.0

func (c *Client) SystemSubnetPoolMemberListAllPages(
	ctx context.Context,
	params SystemSubnetPoolMemberListParams,
) ([]SubnetPoolMember, error)

SystemSubnetPoolMemberListAllPages: List members in subnet pool

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

func (*Client) SystemSubnetPoolMemberRemove added in v0.8.0

func (c *Client) SystemSubnetPoolMemberRemove(
	ctx context.Context,
	params SystemSubnetPoolMemberRemoveParams,
) error

SystemSubnetPoolMemberRemove: Remove member from subnet pool

func (c *Client) SystemSubnetPoolSiloLink(
	ctx context.Context,
	params SystemSubnetPoolSiloLinkParams,
) (*SubnetPoolSiloLink, error)

SystemSubnetPoolSiloLink: Link subnet pool to silo

func (*Client) SystemSubnetPoolSiloList added in v0.8.0

func (c *Client) SystemSubnetPoolSiloList(
	ctx context.Context,
	params SystemSubnetPoolSiloListParams,
) (*SubnetPoolSiloLinkResultsPage, error)

SystemSubnetPoolSiloList: List silos linked to subnet pool

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

func (*Client) SystemSubnetPoolSiloListAllPages added in v0.8.0

func (c *Client) SystemSubnetPoolSiloListAllPages(
	ctx context.Context,
	params SystemSubnetPoolSiloListParams,
) ([]SubnetPoolSiloLink, error)

SystemSubnetPoolSiloListAllPages: List silos linked to subnet pool

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

func (c *Client) SystemSubnetPoolSiloUnlink(
	ctx context.Context,
	params SystemSubnetPoolSiloUnlinkParams,
) error

SystemSubnetPoolSiloUnlink: Unlink subnet pool from silo

func (*Client) SystemSubnetPoolSiloUpdate added in v0.8.0

func (c *Client) SystemSubnetPoolSiloUpdate(
	ctx context.Context,
	params SystemSubnetPoolSiloUpdateParams,
) (*SubnetPoolSiloLink, error)

SystemSubnetPoolSiloUpdate: Update subnet pool's link to silo

func (*Client) SystemSubnetPoolUpdate added in v0.8.0

func (c *Client) SystemSubnetPoolUpdate(
	ctx context.Context,
	params SystemSubnetPoolUpdateParams,
) (*SubnetPool, error)

SystemSubnetPoolUpdate: Update subnet pool

func (*Client) SystemSubnetPoolUtilizationView added in v0.8.0

func (c *Client) SystemSubnetPoolUtilizationView(
	ctx context.Context,
	params SystemSubnetPoolUtilizationViewParams,
) (*SubnetPoolUtilization, error)

SystemSubnetPoolUtilizationView: Fetch subnet pool utilization

func (*Client) SystemSubnetPoolView added in v0.8.0

func (c *Client) SystemSubnetPoolView(
	ctx context.Context,
	params SystemSubnetPoolViewParams,
) (*SubnetPool, error)

SystemSubnetPoolView: Fetch subnet pool

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) SystemUpdateRecoveryFinish added in v0.9.0

func (c *Client) SystemUpdateRecoveryFinish(
	ctx context.Context,
	params SystemUpdateRecoveryFinishParams,
) error

SystemUpdateRecoveryFinish: Clear system recovery status Instructs the system that a system recovery operation ("mupdate") was completed using the software in the specified release.

The system recovery operation is used to bypass the control plane to deploy known-working software when the control plane itself is not functioning or otherwise unable to update itself. When the control plane detects this, it stops making any changes to deployed software to avoid reverting the recovery itself. This operation puts the control plane back in charge of determining what software should be deployed, instructing it that the specified software (which is also what's currently running) is what's supposed to be deployed.

If the provided version does not match what's currently running, the control plane will continue to avoid changing deployed software until this operation is invoked with the correct version.

This endpoint should only be called at the direction of Oxide support.

func (*Client) SystemUpdateRepositoryList added in v0.7.0

func (c *Client) SystemUpdateRepositoryList(
	ctx context.Context,
	params SystemUpdateRepositoryListParams,
) (*TufRepoResultsPage, error)

SystemUpdateRepositoryList: List all TUF repositories Returns a paginated list of all TUF repositories ordered by system version (newest first by default).

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

func (*Client) SystemUpdateRepositoryListAllPages added in v0.7.0

func (c *Client) SystemUpdateRepositoryListAllPages(
	ctx context.Context,
	params SystemUpdateRepositoryListParams,
) ([]TufRepo, error)

SystemUpdateRepositoryListAllPages: List all TUF repositories Returns a paginated list of all TUF repositories ordered by system version (newest first by default).

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

func (*Client) SystemUpdateRepositoryUpload added in v0.7.0

func (c *Client) SystemUpdateRepositoryUpload(
	ctx context.Context,
	params SystemUpdateRepositoryUploadParams,
) (*TufRepoUpload, error)

SystemUpdateRepositoryUpload: Upload system release repository System release repositories are verified by the updates trust store.

func (*Client) SystemUpdateRepositoryView added in v0.7.0

func (c *Client) SystemUpdateRepositoryView(
	ctx context.Context,
	params SystemUpdateRepositoryViewParams,
) (*TufRepo, error)

SystemUpdateRepositoryView: Fetch system release repository by version

func (*Client) SystemUpdateStatus added in v0.7.0

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

SystemUpdateStatus: Fetch system update status Returns information about the current target release and the progress of system software updates.

func (*Client) SystemUpdateTrustRootCreate added in v0.7.0

func (c *Client) SystemUpdateTrustRootCreate(
	ctx context.Context,
	params SystemUpdateTrustRootCreateParams,
) (*UpdatesTrustRoot, error)

SystemUpdateTrustRootCreate: Add trusted root role to updates trust store

func (*Client) SystemUpdateTrustRootDelete added in v0.7.0

func (c *Client) SystemUpdateTrustRootDelete(
	ctx context.Context,
	params SystemUpdateTrustRootDeleteParams,
) error

SystemUpdateTrustRootDelete: Delete trusted root role Note that this method does not currently check for any uploaded system release repositories that would become untrusted after deleting the root role.

func (*Client) SystemUpdateTrustRootList added in v0.7.0

func (c *Client) SystemUpdateTrustRootList(
	ctx context.Context,
	params SystemUpdateTrustRootListParams,
) (*UpdatesTrustRootResultsPage, error)

SystemUpdateTrustRootList: List root roles in the updates trust store A root role is a JSON document describing the cryptographic keys that are trusted to sign system release repositories, as described by The Update Framework. Uploading a repository requires its metadata to be signed by keys trusted by the trust store.

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

func (*Client) SystemUpdateTrustRootListAllPages added in v0.7.0

func (c *Client) SystemUpdateTrustRootListAllPages(
	ctx context.Context,
	params SystemUpdateTrustRootListParams,
) ([]UpdatesTrustRoot, error)

SystemUpdateTrustRootListAllPages: List root roles in the updates trust store A root role is a JSON document describing the cryptographic keys that are trusted to sign system release repositories, as described by The Update Framework. Uploading a repository requires its metadata to be signed by keys trusted by the trust store.

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

func (*Client) SystemUpdateTrustRootView added in v0.7.0

func (c *Client) SystemUpdateTrustRootView(
	ctx context.Context,
	params SystemUpdateTrustRootViewParams,
) (*UpdatesTrustRoot, error)

SystemUpdateTrustRootView: Fetch trusted root role

func (*Client) TargetReleaseUpdate added in v0.7.0

func (c *Client) TargetReleaseUpdate(ctx context.Context, params TargetReleaseUpdateParams) error

TargetReleaseUpdate: Set target release Set the current target release of the rack's system software. The rack reconfigurator will treat the software specified here as a goal state for the rack's software, and attempt to asynchronously update to that release. Use the update status endpoint to view the current target release.

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) UserLogout added in v0.6.0

func (c *Client) UserLogout(ctx context.Context, params UserLogoutParams) error

UserLogout: Log user out Silo admins can use this endpoint to log the specified user out by deleting all of their tokens AND sessions. This cannot be undone.

func (*Client) UserSessionList added in v0.6.0

func (c *Client) UserSessionList(
	ctx context.Context,
	params UserSessionListParams,
) (*ConsoleSessionResultsPage, error)

UserSessionList: List user's console sessions

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

func (*Client) UserSessionListAllPages added in v0.6.0

func (c *Client) UserSessionListAllPages(
	ctx context.Context,
	params UserSessionListParams,
) ([]ConsoleSession, error)

UserSessionListAllPages: List user's console sessions

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

func (*Client) UserTokenList added in v0.6.0

func (c *Client) UserTokenList(
	ctx context.Context,
	params UserTokenListParams,
) (*DeviceAccessTokenResultsPage, error)

UserTokenList: List user's access tokens

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

func (*Client) UserTokenListAllPages added in v0.6.0

func (c *Client) UserTokenListAllPages(
	ctx context.Context,
	params UserTokenListParams,
) ([]DeviceAccessToken, error)

UserTokenListAllPages: List user's access tokens

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

func (*Client) UserView added in v0.6.0

func (c *Client) UserView(ctx context.Context, params UserViewParams) (*User, error)

UserView: Fetch user

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 VPC

func (*Client) VpcView

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

VpcView: Fetch VPC

func (*Client) WebhookReceiverCreate added in v0.5.0

func (c *Client) WebhookReceiverCreate(
	ctx context.Context,
	params WebhookReceiverCreateParams,
) (*WebhookReceiver, error)

WebhookReceiverCreate: Create webhook receiver

func (*Client) WebhookReceiverUpdate added in v0.5.0

func (c *Client) WebhookReceiverUpdate(
	ctx context.Context,
	params WebhookReceiverUpdateParams,
) error

WebhookReceiverUpdate: Update webhook receiver Note that receiver secrets are NOT added or removed using this endpoint. Instead, use the `/v1/webhooks/{secrets}/?receiver={receiver}` endpoint to add and remove secrets.

func (*Client) WebhookSecretsAdd added in v0.5.0

func (c *Client) WebhookSecretsAdd(
	ctx context.Context,
	params WebhookSecretsAddParams,
) (*WebhookSecret, error)

WebhookSecretsAdd: Add secret to webhook receiver

func (*Client) WebhookSecretsDelete added in v0.5.0

func (c *Client) WebhookSecretsDelete(
	ctx context.Context,
	params WebhookSecretsDeleteParams,
) error

WebhookSecretsDelete: Remove secret from webhook receiver

func (*Client) WebhookSecretsList added in v0.5.0

func (c *Client) WebhookSecretsList(
	ctx context.Context,
	params WebhookSecretsListParams,
) (*WebhookSecrets, error)

WebhookSecretsList: List webhook receiver secret IDs

type ClientOption added in v0.8.0

type ClientOption interface {
	// contains filtered or unexported methods
}

ClientOption configures Client during calls to NewClient.

func WithConfigDir added in v0.8.0

func WithConfigDir(dir string) ClientOption

WithConfigDir sets the directory to search for the Oxide credentials file.

func WithDefaultProfile added in v0.8.0

func WithDefaultProfile() ClientOption

WithDefaultProfile uses the default profile within the credentials file to use for authentication. This is mutually exclusive with WithHost, WithToken, and WithProfile.

func WithHTTPClient added in v0.8.0

func WithHTTPClient(client *http.Client) ClientOption

WithHTTPClient sets a custom HTTP client, replacing the default HTTP client entirely. This overrides WithTimeout and WithInsecureSkipVerify if called after those options, and should only be used in advanced use cases such as configuring a proxy or changing TLS configuration.

func WithHost added in v0.8.0

func WithHost(host string) ClientOption

WithHost sets the Oxide host for Client (e.g., https://oxide.sys.example.com).

func WithInsecureSkipVerify added in v0.8.0

func WithInsecureSkipVerify() ClientOption

WithInsecureSkipVerify disables TLS certificate verification. This is insecure and should only be used for testing or in controlled environments. This option is overridden if WithHTTPClient is set after this option.

func WithProfile added in v0.8.0

func WithProfile(profile string) ClientOption

WithProfile sets the profile name within the credentials file to use for authentication. This is mutually exclusive with WithHost, WithToken, and WithDefaultProfile.

func WithTimeout added in v0.8.0

func WithTimeout(timeout time.Duration) ClientOption

WithTimeout sets the timeout for the HTTP client. This option is overridden if WithHTTPClient is set after this option.

func WithToken added in v0.8.0

func WithToken(token string) ClientOption

WithToken sets the API token for Client.

func WithUserAgent added in v0.8.0

func WithUserAgent(userAgent string) ClientOption

WithUserAgent sets the user agent string for the client.

type ConsoleSession added in v0.6.0

type ConsoleSession struct {
	// Id is a unique, immutable, system-controlled identifier for the session
	Id           string     `json:"id"             yaml:"id"`
	TimeCreated  *time.Time `json:"time_created"   yaml:"time_created"`
	TimeLastUsed *time.Time `json:"time_last_used" yaml:"time_last_used"`
}

ConsoleSession is view of a console session

Required fields: - Id - TimeCreated - TimeLastUsed

type ConsoleSessionResultsPage added in v0.6.0

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

ConsoleSessionResultsPage is a single page of results

Required fields: - Items

type Cumulativedouble

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

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" yaml:"start_time"`
	Value     float64    `json:"value"      yaml:"value"`
}

Cumulativefloat is a cumulative or counter data type.

Required fields: - StartTime - Value

type Cumulativeint64

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

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" yaml:"start_time"`
	Value     *uint64    `json:"value"      yaml:"value"`
}

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" yaml:"display_name"`
	// FleetViewer is whether this user has the viewer role on the fleet. Used by the web console to
	// determine whether
	// to show system-level UI.
	FleetViewer *bool  `json:"fleet_viewer" yaml:"fleet_viewer"`
	Id          string `json:"id"           yaml:"id"`
	// SiloAdmin is whether this user has the admin role on their silo. Used by the web console to
	// determine whether
	// to show admin-only UI elements.
	SiloAdmin *bool `json:"silo_admin" yaml:"silo_admin"`
	// SiloId is uuid of the silo to which this user belongs
	SiloId string `json:"silo_id" yaml:"silo_id"`
	// SiloName is name of the silo to which this user belongs.
	SiloName Name `json:"silo_name" yaml:"silo_name"`
	// TimeCreated is timestamp when this user was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this user was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

CurrentUser is info about the current user

Required fields: - DisplayName - FleetViewer - Id - SiloAdmin - SiloId - SiloName - TimeCreated - TimeModified

type CurrentUserAccessTokenDeleteParams added in v0.5.0

type CurrentUserAccessTokenDeleteParams struct {
	TokenId string `json:"token_id,omitempty" yaml:"token_id,omitempty"`
}

CurrentUserAccessTokenDeleteParams is the request parameters for CurrentUserAccessTokenDelete

Required fields: - TokenId

func (*CurrentUserAccessTokenDeleteParams) Validate added in v0.5.0

Validate verifies all required fields for CurrentUserAccessTokenDeleteParams are set

type CurrentUserAccessTokenListParams added in v0.5.0

type CurrentUserAccessTokenListParams 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"`
}

CurrentUserAccessTokenListParams is the request parameters for CurrentUserAccessTokenList

func (*CurrentUserAccessTokenListParams) Validate added in v0.5.0

Validate verifies all required fields for CurrentUserAccessTokenListParams are set

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 {
	Value datumVariant
}

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

func (Datum) AsBool added in v0.8.0

func (v Datum) AsBool() (*DatumBool, bool)

AsBool attempts to convert the Datum to a DatumBool. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsBytes added in v0.8.0

func (v Datum) AsBytes() (*DatumBytes, bool)

AsBytes attempts to convert the Datum to a DatumBytes. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsCumulativeF32 added in v0.8.0

func (v Datum) AsCumulativeF32() (*DatumCumulativeF32, bool)

AsCumulativeF32 attempts to convert the Datum to a DatumCumulativeF32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsCumulativeF64 added in v0.8.0

func (v Datum) AsCumulativeF64() (*DatumCumulativeF64, bool)

AsCumulativeF64 attempts to convert the Datum to a DatumCumulativeF64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsCumulativeI64 added in v0.8.0

func (v Datum) AsCumulativeI64() (*DatumCumulativeI64, bool)

AsCumulativeI64 attempts to convert the Datum to a DatumCumulativeI64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsCumulativeU64 added in v0.8.0

func (v Datum) AsCumulativeU64() (*DatumCumulativeU64, bool)

AsCumulativeU64 attempts to convert the Datum to a DatumCumulativeU64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsF32 added in v0.8.0

func (v Datum) AsF32() (*DatumF32, bool)

AsF32 attempts to convert the Datum to a DatumF32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsF64 added in v0.8.0

func (v Datum) AsF64() (*DatumF64, bool)

AsF64 attempts to convert the Datum to a DatumF64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramF32 added in v0.8.0

func (v Datum) AsHistogramF32() (*DatumHistogramF32, bool)

AsHistogramF32 attempts to convert the Datum to a DatumHistogramF32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramF64 added in v0.8.0

func (v Datum) AsHistogramF64() (*DatumHistogramF64, bool)

AsHistogramF64 attempts to convert the Datum to a DatumHistogramF64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramI8 added in v0.8.0

func (v Datum) AsHistogramI8() (*DatumHistogramI8, bool)

AsHistogramI8 attempts to convert the Datum to a DatumHistogramI8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramI16 added in v0.8.0

func (v Datum) AsHistogramI16() (*DatumHistogramI16, bool)

AsHistogramI16 attempts to convert the Datum to a DatumHistogramI16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramI32 added in v0.8.0

func (v Datum) AsHistogramI32() (*DatumHistogramI32, bool)

AsHistogramI32 attempts to convert the Datum to a DatumHistogramI32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramI64 added in v0.8.0

func (v Datum) AsHistogramI64() (*DatumHistogramI64, bool)

AsHistogramI64 attempts to convert the Datum to a DatumHistogramI64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramU8 added in v0.8.0

func (v Datum) AsHistogramU8() (*DatumHistogramU8, bool)

AsHistogramU8 attempts to convert the Datum to a DatumHistogramU8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramU16 added in v0.8.0

func (v Datum) AsHistogramU16() (*DatumHistogramU16, bool)

AsHistogramU16 attempts to convert the Datum to a DatumHistogramU16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramU32 added in v0.8.0

func (v Datum) AsHistogramU32() (*DatumHistogramU32, bool)

AsHistogramU32 attempts to convert the Datum to a DatumHistogramU32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsHistogramU64 added in v0.8.0

func (v Datum) AsHistogramU64() (*DatumHistogramU64, bool)

AsHistogramU64 attempts to convert the Datum to a DatumHistogramU64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsI8 added in v0.8.0

func (v Datum) AsI8() (*DatumI8, bool)

AsI8 attempts to convert the Datum to a DatumI8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsI16 added in v0.8.0

func (v Datum) AsI16() (*DatumI16, bool)

AsI16 attempts to convert the Datum to a DatumI16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsI32 added in v0.8.0

func (v Datum) AsI32() (*DatumI32, bool)

AsI32 attempts to convert the Datum to a DatumI32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsI64 added in v0.8.0

func (v Datum) AsI64() (*DatumI64, bool)

AsI64 attempts to convert the Datum to a DatumI64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsMissing added in v0.8.0

func (v Datum) AsMissing() (*DatumMissing, bool)

AsMissing attempts to convert the Datum to a DatumMissing. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsString added in v0.8.0

func (v Datum) AsString() (*DatumString, bool)

AsString attempts to convert the Datum to a DatumString. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsU8 added in v0.8.0

func (v Datum) AsU8() (*DatumU8, bool)

AsU8 attempts to convert the Datum to a DatumU8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsU16 added in v0.8.0

func (v Datum) AsU16() (*DatumU16, bool)

AsU16 attempts to convert the Datum to a DatumU16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsU32 added in v0.8.0

func (v Datum) AsU32() (*DatumU32, bool)

AsU32 attempts to convert the Datum to a DatumU32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) AsU64 added in v0.8.0

func (v Datum) AsU64() (*DatumU64, bool)

AsU64 attempts to convert the Datum to a DatumU64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Datum) MarshalJSON added in v0.8.0

func (v Datum) MarshalJSON() ([]byte, error)

func (Datum) Type

func (v Datum) Type() DatumType

func (*Datum) UnmarshalJSON added in v0.8.0

func (v *Datum) UnmarshalJSON(data []byte) error

type DatumBool

type DatumBool struct {
	Datum *bool `json:"datum" yaml:"datum"`
}

DatumBool is a variant of Datum.

type DatumBytes

type DatumBytes struct {
	Datum []int `json:"datum" yaml:"datum"`
}

DatumBytes is a variant of Datum.

type DatumCumulativeF32 added in v0.0.23

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

DatumCumulativeF32 is a variant of Datum.

type DatumCumulativeF64

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

DatumCumulativeF64 is a variant of Datum.

type DatumCumulativeI64

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

DatumCumulativeI64 is a variant of Datum.

type DatumCumulativeU64 added in v0.0.23

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

DatumCumulativeU64 is a variant of Datum.

type DatumF32 added in v0.0.23

type DatumF32 struct {
	Datum float64 `json:"datum" yaml:"datum"`
}

DatumF32 is a variant of Datum.

type DatumF64

type DatumF64 struct {
	Datum float64 `json:"datum" yaml:"datum"`
}

DatumF64 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramF32 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramF64 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramI8 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramI16 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramI32 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramI64 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramU8 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramU16 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramU32 is a variant of Datum.

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" yaml:"datum"`
}

DatumHistogramU64 is a variant of Datum.

type DatumI8 added in v0.0.23

type DatumI8 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumI8 is a variant of Datum.

type DatumI16 added in v0.0.23

type DatumI16 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumI16 is a variant of Datum.

type DatumI32 added in v0.0.23

type DatumI32 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumI32 is a variant of Datum.

type DatumI64

type DatumI64 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumI64 is a variant of Datum.

type DatumMissing added in v0.0.23

type DatumMissing struct {
	Datum MissingDatum `json:"datum" yaml:"datum"`
}

DatumMissing is a variant of Datum.

type DatumString

type DatumString struct {
	Datum string `json:"datum" yaml:"datum"`
}

DatumString is a variant of Datum.

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 DatumU8 added in v0.0.23

type DatumU8 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumU8 is a variant of Datum.

type DatumU16 added in v0.0.23

type DatumU16 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumU16 is a variant of Datum.

type DatumU32 added in v0.0.23

type DatumU32 struct {
	Datum *int `json:"datum" yaml:"datum"`
}

DatumU32 is a variant of Datum.

type DatumU64 added in v0.0.23

type DatumU64 struct {
	Datum *uint64 `json:"datum" yaml:"datum"`
}

DatumU64 is a variant of Datum.

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" yaml:"private_key"`
	// PublicCert is request signing public certificate (base64 encoded DER file)
	PublicCert string `json:"public_cert" yaml:"public_cert"`
}

DerEncodedKeyPair is the type definition for a DerEncodedKeyPair.

Required fields: - PrivateKey - PublicCert

type DeviceAccessToken added in v0.5.0

type DeviceAccessToken struct {
	// Id is a unique, immutable, system-controlled identifier for the token.
	//
	// Note that this ID is not the bearer token itself, which starts with "oxide-token-".
	Id          string     `json:"id"           yaml:"id"`
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeExpires is expiration timestamp. A null value means the token does not automatically
	// expire.
	TimeExpires *time.Time `json:"time_expires,omitempty" yaml:"time_expires,omitempty"`
}

DeviceAccessToken is view of a device access token

Required fields: - Id - TimeCreated

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"   yaml:"client_id"`
	DeviceCode string `json:"device_code" yaml:"device_code"`
	GrantType  string `json:"grant_type"  yaml:"grant_type"`
}

DeviceAccessTokenRequest is the type definition for a DeviceAccessTokenRequest.

Required fields: - ClientId - DeviceCode - GrantType

type DeviceAccessTokenResultsPage added in v0.5.0

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

DeviceAccessTokenResultsPage is a single page of results

Required fields: - Items

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" yaml:"client_id"`
	// TtlSeconds is optional lifetime for the access token in seconds.
	//
	// This value will be validated during the confirmation step. If not specified, it defaults to
	// the silo's max TTL, which can be seen at `/v1/auth-settings`.  If specified, must not exceed
	// the silo's max TTL.
	//
	// Some special logic applies when authenticating the confirmation request with an existing
	// device token: the requested TTL must not produce an expiration time later than the
	// authenticating token's expiration. If no TTL is specified, the expiration will be the lesser
	// of the silo max and the authenticating token's expiration time. To get the longest allowed
	// lifetime, omit the TTL and authenticate with a web console session.
	TtlSeconds *int `json:"ttl_seconds,omitempty" yaml:"ttl_seconds,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" yaml:"user_code"`
}

DeviceAuthVerify is the type definition for a DeviceAuthVerify.

Required fields: - UserCode

type Digest

type Digest struct {
	Value digestVariant
}

Digest is the type definition for a Digest.

func (Digest) AsSha256 added in v0.8.0

func (v Digest) AsSha256() (*DigestSha256, bool)

AsSha256 attempts to convert the Digest to a DigestSha256. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Digest) MarshalJSON added in v0.8.0

func (v Digest) MarshalJSON() ([]byte, error)

func (Digest) Type

func (v Digest) Type() DigestType

func (*Digest) UnmarshalJSON added in v0.8.0

func (v *Digest) UnmarshalJSON(data []byte) error

type DigestSha256

type DigestSha256 struct {
	Value string `json:"value" yaml:"value"`
}

DigestSha256 is a variant of Digest.

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" yaml:"block_size"`
	// Description is human-readable free-form text about a resource
	Description string   `json:"description" yaml:"description"`
	DevicePath  string   `json:"device_path" yaml:"device_path"`
	DiskType    DiskType `json:"disk_type"   yaml:"disk_type"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// 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"       yaml:"name"`
	ProjectId string `json:"project_id" yaml:"project_id"`
	// ReadOnly is whether or not this disk is read-only.
	ReadOnly *bool `json:"read_only" yaml:"read_only"`
	// Size is byte count to express memory or storage capacity.
	Size ByteCount `json:"size" yaml:"size"`
	// 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" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

Disk is view of a Disk

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

type DiskBackend added in v0.8.0

type DiskBackend struct {
	Value diskBackendVariant
}

DiskBackend is the source of a `Disk`'s blocks

func (DiskBackend) AsDistributed added in v0.8.0

func (v DiskBackend) AsDistributed() (*DiskBackendDistributed, bool)

AsDistributed attempts to convert the DiskBackend to a DiskBackendDistributed. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskBackend) AsLocal added in v0.8.0

func (v DiskBackend) AsLocal() (*DiskBackendLocal, bool)

AsLocal attempts to convert the DiskBackend to a DiskBackendLocal. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskBackend) MarshalJSON added in v0.8.0

func (v DiskBackend) MarshalJSON() ([]byte, error)

func (DiskBackend) Type added in v0.8.0

func (v DiskBackend) Type() DiskBackendType

func (*DiskBackend) UnmarshalJSON added in v0.8.0

func (v *DiskBackend) UnmarshalJSON(data []byte) error

type DiskBackendDistributed added in v0.8.0

type DiskBackendDistributed struct {
	// DiskSource is the initial source for this disk
	DiskSource DiskSource `json:"disk_source" yaml:"disk_source"`
}

DiskBackendDistributed is a variant of DiskBackend.

type DiskBackendLocal added in v0.8.0

type DiskBackendLocal struct {
}

DiskBackendLocal is a variant of DiskBackend.

type DiskBackendType added in v0.8.0

type DiskBackendType string

DiskBackendType is the type definition for a DiskBackendType.

const DiskBackendTypeDistributed DiskBackendType = "distributed"

DiskBackendTypeDistributed represents the DiskBackendType `"distributed"`.

const DiskBackendTypeLocal DiskBackendType = "local"

DiskBackendTypeLocal represents the DiskBackendType `"local"`.

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" yaml:"description"`
	// DiskBackend is the source for this `Disk`'s blocks
	DiskBackend DiskBackend `json:"disk_backend" yaml:"disk_backend"`
	// 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" yaml:"name"`
	// Size is the total size of the Disk (in bytes)
	Size ByteCount `json:"size" yaml:"size"`
}

DiskCreate is create-time parameters for a `Disk`

Required fields: - Description - DiskBackend - 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 DiskPath added in v0.0.23

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

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" yaml:"items"`
	// 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 {
	Value diskSourceVariant
}

DiskSource is different sources for a Distributed Disk

func (DiskSource) AsBlank added in v0.8.0

func (v DiskSource) AsBlank() (*DiskSourceBlank, bool)

AsBlank attempts to convert the DiskSource to a DiskSourceBlank. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskSource) AsImage added in v0.8.0

func (v DiskSource) AsImage() (*DiskSourceImage, bool)

AsImage attempts to convert the DiskSource to a DiskSourceImage. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskSource) AsImportingBlocks added in v0.8.0

func (v DiskSource) AsImportingBlocks() (*DiskSourceImportingBlocks, bool)

AsImportingBlocks attempts to convert the DiskSource to a DiskSourceImportingBlocks. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskSource) AsSnapshot added in v0.8.0

func (v DiskSource) AsSnapshot() (*DiskSourceSnapshot, bool)

AsSnapshot attempts to convert the DiskSource to a DiskSourceSnapshot. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskSource) MarshalJSON added in v0.8.0

func (v DiskSource) MarshalJSON() ([]byte, error)

func (DiskSource) Type

func (v DiskSource) Type() DiskSourceType

func (*DiskSource) UnmarshalJSON added in v0.8.0

func (v *DiskSource) UnmarshalJSON(data []byte) error

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" yaml:"block_size"`
}

DiskSourceBlank is a variant of DiskSource.

type DiskSourceImage

type DiskSourceImage struct {
	ImageId string `json:"image_id" yaml:"image_id"`
	// ReadOnly is if `true`, the disk created from this image will be read-only.
	ReadOnly *bool `json:"read_only,omitempty" yaml:"read_only,omitempty"`
}

DiskSourceImage is a variant of DiskSource.

type DiskSourceImportingBlocks added in v0.0.23

type DiskSourceImportingBlocks struct {
	BlockSize BlockSize `json:"block_size" yaml:"block_size"`
}

DiskSourceImportingBlocks is a variant of DiskSource.

type DiskSourceSnapshot

type DiskSourceSnapshot struct {
	// ReadOnly is if `true`, the disk created from this snapshot will be read-only.
	ReadOnly   *bool  `json:"read_only,omitempty" yaml:"read_only,omitempty"`
	SnapshotId string `json:"snapshot_id"         yaml:"snapshot_id"`
}

DiskSourceSnapshot is a variant of DiskSource.

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 {
	Value diskStateVariant
}

DiskState is state of a Disk

func (DiskState) AsAttached added in v0.8.0

func (v DiskState) AsAttached() (*DiskStateAttached, bool)

AsAttached attempts to convert the DiskState to a DiskStateAttached. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsAttaching added in v0.8.0

func (v DiskState) AsAttaching() (*DiskStateAttaching, bool)

AsAttaching attempts to convert the DiskState to a DiskStateAttaching. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsCreating added in v0.8.0

func (v DiskState) AsCreating() (*DiskStateCreating, bool)

AsCreating attempts to convert the DiskState to a DiskStateCreating. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsDestroyed added in v0.8.0

func (v DiskState) AsDestroyed() (*DiskStateDestroyed, bool)

AsDestroyed attempts to convert the DiskState to a DiskStateDestroyed. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsDetached added in v0.8.0

func (v DiskState) AsDetached() (*DiskStateDetached, bool)

AsDetached attempts to convert the DiskState to a DiskStateDetached. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsDetaching added in v0.8.0

func (v DiskState) AsDetaching() (*DiskStateDetaching, bool)

AsDetaching attempts to convert the DiskState to a DiskStateDetaching. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsFaulted added in v0.8.0

func (v DiskState) AsFaulted() (*DiskStateFaulted, bool)

AsFaulted attempts to convert the DiskState to a DiskStateFaulted. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsFinalizing added in v0.8.0

func (v DiskState) AsFinalizing() (*DiskStateFinalizing, bool)

AsFinalizing attempts to convert the DiskState to a DiskStateFinalizing. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsImportReady added in v0.8.0

func (v DiskState) AsImportReady() (*DiskStateImportReady, bool)

AsImportReady attempts to convert the DiskState to a DiskStateImportReady. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsImportingFromBulkWrites added in v0.8.0

func (v DiskState) AsImportingFromBulkWrites() (*DiskStateImportingFromBulkWrites, bool)

AsImportingFromBulkWrites attempts to convert the DiskState to a DiskStateImportingFromBulkWrites. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsImportingFromUrl added in v0.8.0

func (v DiskState) AsImportingFromUrl() (*DiskStateImportingFromUrl, bool)

AsImportingFromUrl attempts to convert the DiskState to a DiskStateImportingFromUrl. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) AsMaintenance added in v0.8.0

func (v DiskState) AsMaintenance() (*DiskStateMaintenance, bool)

AsMaintenance attempts to convert the DiskState to a DiskStateMaintenance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (DiskState) MarshalJSON added in v0.8.0

func (v DiskState) MarshalJSON() ([]byte, error)

func (DiskState) State

func (v DiskState) State() DiskStateState

func (*DiskState) UnmarshalJSON added in v0.8.0

func (v *DiskState) UnmarshalJSON(data []byte) error

type DiskStateAttached

type DiskStateAttached struct {
	Instance string `json:"instance" yaml:"instance"`
}

DiskStateAttached is a variant of DiskState.

type DiskStateAttaching

type DiskStateAttaching struct {
	Instance string `json:"instance" yaml:"instance"`
}

DiskStateAttaching is a variant of DiskState.

type DiskStateCreating

type DiskStateCreating struct {
}

DiskStateCreating is a variant of DiskState.

type DiskStateDestroyed

type DiskStateDestroyed struct {
}

DiskStateDestroyed is a variant of DiskState.

type DiskStateDetached

type DiskStateDetached struct {
}

DiskStateDetached is a variant of DiskState.

type DiskStateDetaching

type DiskStateDetaching struct {
	Instance string `json:"instance" yaml:"instance"`
}

DiskStateDetaching is a variant of DiskState.

type DiskStateFaulted

type DiskStateFaulted struct {
}

DiskStateFaulted is a variant of DiskState.

type DiskStateFinalizing added in v0.0.23

type DiskStateFinalizing struct {
}

DiskStateFinalizing is a variant of DiskState.

type DiskStateImportReady added in v0.0.23

type DiskStateImportReady struct {
}

DiskStateImportReady is a variant of DiskState.

type DiskStateImportingFromBulkWrites added in v0.0.23

type DiskStateImportingFromBulkWrites struct {
}

DiskStateImportingFromBulkWrites is a variant of DiskState.

type DiskStateImportingFromUrl added in v0.0.23

type DiskStateImportingFromUrl struct {
}

DiskStateImportingFromUrl is a variant of DiskState.

type DiskStateMaintenance added in v0.0.23

type DiskStateMaintenance struct {
}

DiskStateMaintenance is a variant of DiskState.

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 DiskType added in v0.8.0

type DiskType string

DiskType is the type definition for a DiskType.

const DiskTypeDistributed DiskType = "distributed"

DiskTypeDistributed represents the DiskType `"distributed"`.

const DiskTypeLocal DiskType = "local"

DiskTypeLocal represents the DiskType `"local"`.

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         []float64 `json:"bins"           yaml:"bins"`
	Counts       []uint64  `json:"counts"         yaml:"counts"`
	Max          float64   `json:"max,omitempty"  yaml:"max,omitempty"`
	Min          float64   `json:"min,omitempty"  yaml:"min,omitempty"`
	P50          float64   `json:"p50,omitempty"  yaml:"p50,omitempty"`
	P90          float64   `json:"p90,omitempty"  yaml:"p90,omitempty"`
	P99          float64   `json:"p99,omitempty"  yaml:"p99,omitempty"`
	SquaredMean  float64   `json:"squared_mean"   yaml:"squared_mean"`
	SumOfSamples float64   `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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         []int    `json:"bins"           yaml:"bins"`
	Counts       []uint64 `json:"counts"         yaml:"counts"`
	Max          *int     `json:"max,omitempty"  yaml:"max,omitempty"`
	Min          *int     `json:"min,omitempty"  yaml:"min,omitempty"`
	P50          float64  `json:"p50,omitempty"  yaml:"p50,omitempty"`
	P90          float64  `json:"p90,omitempty"  yaml:"p90,omitempty"`
	P99          float64  `json:"p99,omitempty"  yaml:"p99,omitempty"`
	SquaredMean  float64  `json:"squared_mean"   yaml:"squared_mean"`
	SumOfSamples *int     `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 {
	// PoolSelector is pool to allocate from.
	PoolSelector PoolSelector `json:"pool_selector,omitempty" yaml:"pool_selector,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"              yaml:"message"`
	RequestId string `json:"request_id"           yaml:"request_id"`
}

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 {
	Value externalIpVariant
}

ExternalIp is the type definition for a ExternalIp.

func (ExternalIp) AsEphemeral added in v0.8.0

func (v ExternalIp) AsEphemeral() (*ExternalIpEphemeral, bool)

AsEphemeral attempts to convert the ExternalIp to a ExternalIpEphemeral. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalIp) AsFloating added in v0.8.0

func (v ExternalIp) AsFloating() (*ExternalIpFloating, bool)

AsFloating attempts to convert the ExternalIp to a ExternalIpFloating. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalIp) AsSnat added in v0.8.0

func (v ExternalIp) AsSnat() (*ExternalIpSnat, bool)

AsSnat attempts to convert the ExternalIp to a ExternalIpSnat. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalIp) Kind

func (v ExternalIp) Kind() ExternalIpKind

func (ExternalIp) MarshalJSON added in v0.8.0

func (v ExternalIp) MarshalJSON() ([]byte, error)

func (*ExternalIp) UnmarshalJSON added in v0.8.0

func (v *ExternalIp) UnmarshalJSON(data []byte) error

type ExternalIpCreate

type ExternalIpCreate struct {
	Value externalIpCreateVariant
}

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

func (ExternalIpCreate) AsEphemeral added in v0.8.0

func (v ExternalIpCreate) AsEphemeral() (*ExternalIpCreateEphemeral, bool)

AsEphemeral attempts to convert the ExternalIpCreate to a ExternalIpCreateEphemeral. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalIpCreate) AsFloating added in v0.8.0

func (v ExternalIpCreate) AsFloating() (*ExternalIpCreateFloating, bool)

AsFloating attempts to convert the ExternalIpCreate to a ExternalIpCreateFloating. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalIpCreate) MarshalJSON added in v0.8.0

func (v ExternalIpCreate) MarshalJSON() ([]byte, error)

func (ExternalIpCreate) Type

func (*ExternalIpCreate) UnmarshalJSON added in v0.8.0

func (v *ExternalIpCreate) UnmarshalJSON(data []byte) error

type ExternalIpCreateEphemeral

type ExternalIpCreateEphemeral struct {
	// PoolSelector is pool to allocate from.
	PoolSelector PoolSelector `json:"pool_selector,omitempty" yaml:"pool_selector,omitempty"`
}

ExternalIpCreateEphemeral is a variant of ExternalIpCreate.

type ExternalIpCreateFloating added in v0.0.23

type ExternalIpCreateFloating struct {
	FloatingIp NameOrId `json:"floating_ip" yaml:"floating_ip"`
}

ExternalIpCreateFloating is a variant of ExternalIpCreate.

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"         yaml:"ip"`
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
}

ExternalIpEphemeral is a variant of ExternalIp.

type ExternalIpFloating added in v0.2.0

type ExternalIpFloating struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// 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" yaml:"ip"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// ProjectId is the project this resource exists within.
	ProjectId string `json:"project_id" yaml:"project_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

ExternalIpFloating is a variant of ExternalIp.

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"`.

const ExternalIpKindSnat ExternalIpKind = "snat"

ExternalIpKindSnat represents the ExternalIpKind `"snat"`.

type ExternalIpResultsPage

type ExternalIpResultsPage struct {
	// Items is list of items on this page of results
	Items []ExternalIp `json:"items" yaml:"items"`
	// 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 ExternalIpSnat added in v0.6.0

type ExternalIpSnat struct {
	// FirstPort is the first usable port within the IP address.
	FirstPort *int `json:"first_port" yaml:"first_port"`
	// Ip is the IP address.
	Ip string `json:"ip" yaml:"ip"`
	// IpPoolId is iD of the IP Pool from which the address is taken.
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// LastPort is the last usable port within the IP address.
	LastPort *int `json:"last_port" yaml:"last_port"`
}

ExternalIpSnat is a variant of ExternalIp.

type ExternalSubnet added in v0.8.0

type ExternalSubnet struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// InstanceId is the instance this subnet is attached to, if any
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// ProjectId is the project this subnet belongs to
	ProjectId string `json:"project_id" yaml:"project_id"`
	// Subnet is the allocated subnet CIDR
	Subnet IpNet `json:"subnet" yaml:"subnet"`
	// SubnetPoolId is the subnet pool this was allocated from
	SubnetPoolId string `json:"subnet_pool_id" yaml:"subnet_pool_id"`
	// SubnetPoolMemberId is the subnet pool member this subnet corresponds to
	SubnetPoolMemberId string `json:"subnet_pool_member_id" yaml:"subnet_pool_member_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

ExternalSubnet is an external subnet allocated from a subnet pool

Required fields: - Description - Id - Name - ProjectId - Subnet - SubnetPoolId - SubnetPoolMemberId - TimeCreated - TimeModified

type ExternalSubnetAllocator added in v0.8.0

type ExternalSubnetAllocator struct {
	Value externalSubnetAllocatorVariant
}

ExternalSubnetAllocator is specify how to allocate an external subnet.

func (ExternalSubnetAllocator) AsAuto added in v0.8.0

AsAuto attempts to convert the ExternalSubnetAllocator to a ExternalSubnetAllocatorAuto. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalSubnetAllocator) AsExplicit added in v0.8.0

AsExplicit attempts to convert the ExternalSubnetAllocator to a ExternalSubnetAllocatorExplicit. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ExternalSubnetAllocator) MarshalJSON added in v0.8.0

func (v ExternalSubnetAllocator) MarshalJSON() ([]byte, error)

func (ExternalSubnetAllocator) Type added in v0.8.0

func (*ExternalSubnetAllocator) UnmarshalJSON added in v0.8.0

func (v *ExternalSubnetAllocator) UnmarshalJSON(data []byte) error

type ExternalSubnetAllocatorAuto added in v0.8.0

type ExternalSubnetAllocatorAuto struct {
	// PoolSelector is pool selection.
	//
	// If omitted, this field uses the silo's default pool. If the silo has default pools for both
	// IPv4 and IPv6,
	// the request will fail unless `ip_version` is specified in the pool selector.
	PoolSelector PoolSelector `json:"pool_selector,omitempty" yaml:"pool_selector,omitempty"`
	// PrefixLength is the prefix length for the allocated subnet (e.g., 24 for a /24).
	PrefixLength *int `json:"prefix_length" yaml:"prefix_length"`
}

ExternalSubnetAllocatorAuto is a variant of ExternalSubnetAllocator.

type ExternalSubnetAllocatorExplicit added in v0.8.0

type ExternalSubnetAllocatorExplicit struct {
	// Subnet is the subnet CIDR to reserve. Must be available in the pool.
	Subnet IpNet `json:"subnet" yaml:"subnet"`
}

ExternalSubnetAllocatorExplicit is a variant of ExternalSubnetAllocator.

type ExternalSubnetAllocatorType added in v0.8.0

type ExternalSubnetAllocatorType string

ExternalSubnetAllocatorType is the type definition for a ExternalSubnetAllocatorType.

const ExternalSubnetAllocatorTypeAuto ExternalSubnetAllocatorType = "auto"

ExternalSubnetAllocatorTypeAuto represents the ExternalSubnetAllocatorType `"auto"`.

const ExternalSubnetAllocatorTypeExplicit ExternalSubnetAllocatorType = "explicit"

ExternalSubnetAllocatorTypeExplicit represents the ExternalSubnetAllocatorType `"explicit"`.

type ExternalSubnetAttach added in v0.8.0

type ExternalSubnetAttach struct {
	// Instance is name or ID of the instance to attach to
	Instance NameOrId `json:"instance" yaml:"instance"`
}

ExternalSubnetAttach is attach an external subnet to an instance

Required fields: - Instance

type ExternalSubnetAttachParams added in v0.8.0

type ExternalSubnetAttachParams struct {
	ExternalSubnet NameOrId              `json:"external_subnet,omitempty" yaml:"external_subnet,omitempty"`
	Project        NameOrId              `json:"project,omitempty"         yaml:"project,omitempty"`
	Body           *ExternalSubnetAttach `json:"body,omitempty"            yaml:"body,omitempty"`
}

ExternalSubnetAttachParams is the request parameters for ExternalSubnetAttach

Required fields: - ExternalSubnet - Body

func (*ExternalSubnetAttachParams) Validate added in v0.8.0

func (p *ExternalSubnetAttachParams) Validate() error

Validate verifies all required fields for ExternalSubnetAttachParams are set

type ExternalSubnetCreate added in v0.8.0

type ExternalSubnetCreate struct {
	// Allocator is subnet allocation method.
	Allocator   ExternalSubnetAllocator `json:"allocator"   yaml:"allocator"`
	Description string                  `json:"description" yaml:"description"`
	// 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" yaml:"name"`
}

ExternalSubnetCreate is create an external subnet

Required fields: - Allocator - Description - Name

type ExternalSubnetCreateParams added in v0.8.0

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

ExternalSubnetCreateParams is the request parameters for ExternalSubnetCreate

Required fields: - Project - Body

func (*ExternalSubnetCreateParams) Validate added in v0.8.0

func (p *ExternalSubnetCreateParams) Validate() error

Validate verifies all required fields for ExternalSubnetCreateParams are set

type ExternalSubnetDeleteParams added in v0.8.0

type ExternalSubnetDeleteParams struct {
	ExternalSubnet NameOrId `json:"external_subnet,omitempty" yaml:"external_subnet,omitempty"`
	Project        NameOrId `json:"project,omitempty"         yaml:"project,omitempty"`
}

ExternalSubnetDeleteParams is the request parameters for ExternalSubnetDelete

Required fields: - ExternalSubnet

func (*ExternalSubnetDeleteParams) Validate added in v0.8.0

func (p *ExternalSubnetDeleteParams) Validate() error

Validate verifies all required fields for ExternalSubnetDeleteParams are set

type ExternalSubnetDetachParams added in v0.8.0

type ExternalSubnetDetachParams struct {
	ExternalSubnet NameOrId `json:"external_subnet,omitempty" yaml:"external_subnet,omitempty"`
	Project        NameOrId `json:"project,omitempty"         yaml:"project,omitempty"`
}

ExternalSubnetDetachParams is the request parameters for ExternalSubnetDetach

Required fields: - ExternalSubnet

func (*ExternalSubnetDetachParams) Validate added in v0.8.0

func (p *ExternalSubnetDetachParams) Validate() error

Validate verifies all required fields for ExternalSubnetDetachParams are set

type ExternalSubnetListParams added in v0.8.0

type ExternalSubnetListParams 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"`
}

ExternalSubnetListParams is the request parameters for ExternalSubnetList

Required fields: - Project

func (*ExternalSubnetListParams) Validate added in v0.8.0

func (p *ExternalSubnetListParams) Validate() error

Validate verifies all required fields for ExternalSubnetListParams are set

type ExternalSubnetResultsPage added in v0.8.0

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

ExternalSubnetResultsPage is a single page of results

Required fields: - Items

type ExternalSubnetUpdate added in v0.8.0

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

ExternalSubnetUpdate is update an external subnet

type ExternalSubnetUpdateParams added in v0.8.0

type ExternalSubnetUpdateParams struct {
	ExternalSubnet NameOrId              `json:"external_subnet,omitempty" yaml:"external_subnet,omitempty"`
	Project        NameOrId              `json:"project,omitempty"         yaml:"project,omitempty"`
	Body           *ExternalSubnetUpdate `json:"body,omitempty"            yaml:"body,omitempty"`
}

ExternalSubnetUpdateParams is the request parameters for ExternalSubnetUpdate

Required fields: - ExternalSubnet - Body

func (*ExternalSubnetUpdateParams) Validate added in v0.8.0

func (p *ExternalSubnetUpdateParams) Validate() error

Validate verifies all required fields for ExternalSubnetUpdateParams are set

type ExternalSubnetViewParams added in v0.8.0

type ExternalSubnetViewParams struct {
	ExternalSubnet NameOrId `json:"external_subnet,omitempty" yaml:"external_subnet,omitempty"`
	Project        NameOrId `json:"project,omitempty"         yaml:"project,omitempty"`
}

ExternalSubnetViewParams is the request parameters for ExternalSubnetView

Required fields: - ExternalSubnet

func (*ExternalSubnetViewParams) Validate added in v0.8.0

func (p *ExternalSubnetViewParams) Validate() error

Validate verifies all required fields for ExternalSubnetViewParams are set

type FailureDomain added in v0.4.0

type FailureDomain string

FailureDomain is instances are considered co-located if they are on the same sled

const FailureDomainSled FailureDomain = "sled"

FailureDomainSled represents the FailureDomain `"sled"`.

type FieldSchema

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

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 {
	Value fieldValueVariant
}

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

func (FieldValue) AsBool added in v0.8.0

func (v FieldValue) AsBool() (*FieldValueBool, bool)

AsBool attempts to convert the FieldValue to a FieldValueBool. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsI8 added in v0.8.0

func (v FieldValue) AsI8() (*FieldValueI8, bool)

AsI8 attempts to convert the FieldValue to a FieldValueI8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsI16 added in v0.8.0

func (v FieldValue) AsI16() (*FieldValueI16, bool)

AsI16 attempts to convert the FieldValue to a FieldValueI16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsI32 added in v0.8.0

func (v FieldValue) AsI32() (*FieldValueI32, bool)

AsI32 attempts to convert the FieldValue to a FieldValueI32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsI64 added in v0.8.0

func (v FieldValue) AsI64() (*FieldValueI64, bool)

AsI64 attempts to convert the FieldValue to a FieldValueI64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsIpAddr added in v0.8.0

func (v FieldValue) AsIpAddr() (*FieldValueIpAddr, bool)

AsIpAddr attempts to convert the FieldValue to a FieldValueIpAddr. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsString added in v0.8.0

func (v FieldValue) AsString() (*FieldValueString, bool)

AsString attempts to convert the FieldValue to a FieldValueString. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsU8 added in v0.8.0

func (v FieldValue) AsU8() (*FieldValueU8, bool)

AsU8 attempts to convert the FieldValue to a FieldValueU8. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsU16 added in v0.8.0

func (v FieldValue) AsU16() (*FieldValueU16, bool)

AsU16 attempts to convert the FieldValue to a FieldValueU16. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsU32 added in v0.8.0

func (v FieldValue) AsU32() (*FieldValueU32, bool)

AsU32 attempts to convert the FieldValue to a FieldValueU32. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsU64 added in v0.8.0

func (v FieldValue) AsU64() (*FieldValueU64, bool)

AsU64 attempts to convert the FieldValue to a FieldValueU64. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) AsUuid added in v0.8.0

func (v FieldValue) AsUuid() (*FieldValueUuid, bool)

AsUuid attempts to convert the FieldValue to a FieldValueUuid. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (FieldValue) MarshalJSON added in v0.8.0

func (v FieldValue) MarshalJSON() ([]byte, error)

func (FieldValue) Type added in v0.2.0

func (v FieldValue) Type() FieldValueType

func (*FieldValue) UnmarshalJSON added in v0.8.0

func (v *FieldValue) UnmarshalJSON(data []byte) error

type FieldValueBool added in v0.2.0

type FieldValueBool struct {
	Value *bool `json:"value" yaml:"value"`
}

FieldValueBool is a variant of FieldValue.

type FieldValueI8 added in v0.2.0

type FieldValueI8 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueI8 is a variant of FieldValue.

type FieldValueI16 added in v0.2.0

type FieldValueI16 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueI16 is a variant of FieldValue.

type FieldValueI32 added in v0.2.0

type FieldValueI32 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueI32 is a variant of FieldValue.

type FieldValueI64 added in v0.2.0

type FieldValueI64 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueI64 is a variant of FieldValue.

type FieldValueIpAddr added in v0.2.0

type FieldValueIpAddr struct {
	Value string `json:"value" yaml:"value"`
}

FieldValueIpAddr is a variant of FieldValue.

type FieldValueString added in v0.2.0

type FieldValueString struct {
	Value string `json:"value" yaml:"value"`
}

FieldValueString is a variant of FieldValue.

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 FieldValueU8 added in v0.2.0

type FieldValueU8 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueU8 is a variant of FieldValue.

type FieldValueU16 added in v0.2.0

type FieldValueU16 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueU16 is a variant of FieldValue.

type FieldValueU32 added in v0.2.0

type FieldValueU32 struct {
	Value *int `json:"value" yaml:"value"`
}

FieldValueU32 is a variant of FieldValue.

type FieldValueU64 added in v0.2.0

type FieldValueU64 struct {
	Value *uint64 `json:"value" yaml:"value"`
}

FieldValueU64 is a variant of FieldValue.

type FieldValueUuid added in v0.2.0

type FieldValueUuid struct {
	Value string `json:"value" yaml:"value"`
}

FieldValueUuid is a variant of FieldValue.

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" yaml:"role_assignments"`
}

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" yaml:"identity_id"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type" yaml:"identity_type"`
	RoleName     FleetRole    `json:"role_name"     yaml:"role_name"`
}

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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// 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" yaml:"ip"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// ProjectId is the project this resource exists within.
	ProjectId string `json:"project_id" yaml:"project_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"kind"`
	// Parent is name or ID of the resource that this IP address should be attached to
	Parent NameOrId `json:"parent" yaml:"parent"`
}

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 {
	// AddressAllocator is iP address allocation method.
	AddressAllocator AddressAllocator `json:"address_allocator,omitempty" yaml:"address_allocator,omitempty"`
	Description      string           `json:"description"                 yaml:"description"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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" yaml:"display_name"`
	Id          string `json:"id"           yaml:"id"`
	// SiloId is uuid of the silo to which this group belongs
	SiloId string `json:"silo_id" yaml:"silo_id"`
	// TimeCreated is timestamp when this group was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this group was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

Group is view of a Group

Required fields: - DisplayName - Id - SiloId - TimeCreated - TimeModified

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" yaml:"items"`
	// 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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max float64 `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min float64 `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples float64 `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max float64 `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min float64 `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples float64 `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 Histogramint8 added in v0.0.23

type Histogramint8 struct {
	// Bins is the bins of the histogram.
	Bins []Binint8 `json:"bins" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 Histogramint16 added in v0.0.23

type Histogramint16 struct {
	// Bins is the bins of the histogram.
	Bins []Binint16 `json:"bins" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 Histogramuint8 added in v0.0.23

type Histogramuint8 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint8 `json:"bins" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 Histogramuint16 added in v0.0.23

type Histogramuint16 struct {
	// Bins is the bins of the histogram.
	Bins []Binuint16 `json:"bins" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *int `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *int `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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" yaml:"bins"`
	// Max is the maximum value of all samples in the histogram.
	Max *uint64 `json:"max" yaml:"max"`
	// Min is the minimum value of all samples in the histogram.
	Min *uint64 `json:"min" yaml:"min"`
	// NSamples is the total number of samples in the histogram.
	NSamples *uint64 `json:"n_samples" yaml:"n_samples"`
	// P50 is p50 Quantile
	P50 Quantile `json:"p50" yaml:"p50"`
	// P90 is p95 Quantile
	P90 Quantile `json:"p90" yaml:"p90"`
	// P99 is p99 Quantile
	P99 Quantile `json:"p99" yaml:"p99"`
	// 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" yaml:"squared_mean"`
	// StartTime is the start time of the histogram.
	StartTime *time.Time `json:"start_time" yaml:"start_time"`
	// SumOfSamples is the sum of all samples in the histogram.
	SumOfSamples *int `json:"sum_of_samples" yaml:"sum_of_samples"`
}

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 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 IcmpParamRange added in v0.6.0

type IcmpParamRange string

IcmpParamRange is an inclusive-inclusive range of ICMP(v6) types or codes. The second value may be omitted to represent a single parameter.

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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// ProviderType is identity provider type
	ProviderType IdentityProviderType `json:"provider_type" yaml:"provider_type"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"items"`
	// 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 {
	Value idpMetadataSourceVariant
}

IdpMetadataSource is the type definition for a IdpMetadataSource.

func (IdpMetadataSource) AsBase64EncodedXml added in v0.8.0

func (v IdpMetadataSource) AsBase64EncodedXml() (*IdpMetadataSourceBase64EncodedXml, bool)

AsBase64EncodedXml attempts to convert the IdpMetadataSource to a IdpMetadataSourceBase64EncodedXml. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IdpMetadataSource) AsUrl added in v0.8.0

AsUrl attempts to convert the IdpMetadataSource to a IdpMetadataSourceUrl. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IdpMetadataSource) MarshalJSON added in v0.8.0

func (v IdpMetadataSource) MarshalJSON() ([]byte, error)

func (IdpMetadataSource) Type

func (*IdpMetadataSource) UnmarshalJSON added in v0.8.0

func (v *IdpMetadataSource) UnmarshalJSON(data []byte) error

type IdpMetadataSourceBase64EncodedXml

type IdpMetadataSourceBase64EncodedXml struct {
	Data string `json:"data" yaml:"data"`
}

IdpMetadataSourceBase64EncodedXml is a variant of IdpMetadataSource.

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 {
	Url string `json:"url" yaml:"url"`
}

IdpMetadataSourceUrl is a variant of IdpMetadataSource.

type Image

type Image struct {
	// BlockSize is size of blocks in bytes
	BlockSize ByteCount `json:"block_size" yaml:"block_size"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Os is the family of the operating system like Debian, Ubuntu, etc.
	Os string `json:"os" yaml:"os"`
	// 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" yaml:"size"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// Version is version of the operating system
	Version string `json:"version" yaml:"version"`
}

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" yaml:"description"`
	// 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" yaml:"name"`
	// Os is the family of the operating system (e.g. Debian, Ubuntu, etc.)
	Os string `json:"os" yaml:"os"`
	// Source is the source of the image's contents.
	Source ImageSource `json:"source" yaml:"source"`
	// Version is the version of the operating system (e.g. 18.04, 20.04, etc.)
	Version string `json:"version" yaml:"version"`
}

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" yaml:"items"`
	// 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 {
	Value imageSourceVariant
}

ImageSource is the source of the underlying image.

func (ImageSource) AsSnapshot added in v0.8.0

func (v ImageSource) AsSnapshot() (*ImageSourceSnapshot, bool)

AsSnapshot attempts to convert the ImageSource to a ImageSourceSnapshot. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ImageSource) MarshalJSON added in v0.8.0

func (v ImageSource) MarshalJSON() ([]byte, error)

func (ImageSource) Type

func (v ImageSource) Type() ImageSourceType

func (*ImageSource) UnmarshalJSON added in v0.8.0

func (v *ImageSource) UnmarshalJSON(data []byte) error

type ImageSourceSnapshot

type ImageSourceSnapshot struct {
	Id string `json:"id" yaml:"id"`
}

ImageSourceSnapshot is a variant of ImageSource.

type ImageSourceType

type ImageSourceType string

ImageSourceType is the type definition for a ImageSourceType.

const ImageSourceTypeSnapshot ImageSourceType = "snapshot"

ImageSourceTypeSnapshot represents the ImageSourceType `"snapshot"`.

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" yaml:"base64_encoded_data"`
	Offset            *uint64 `json:"offset"              yaml:"offset"`
}

ImportBlocksBulkWrite is parameters for importing blocks with a bulk write

Required fields: - Base64EncodedData - Offset

type ImportExportPolicy added in v0.2.0

type ImportExportPolicy struct {
	Value importExportPolicyVariant
}

ImportExportPolicy is define policy relating to the import and export of prefixes from a BGP peer.

func (ImportExportPolicy) AsAllow added in v0.8.0

AsAllow attempts to convert the ImportExportPolicy to a ImportExportPolicyAllow. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ImportExportPolicy) AsNoFiltering added in v0.8.0

AsNoFiltering attempts to convert the ImportExportPolicy to a ImportExportPolicyNoFiltering. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ImportExportPolicy) MarshalJSON added in v0.8.0

func (v ImportExportPolicy) MarshalJSON() ([]byte, error)

func (ImportExportPolicy) Type added in v0.2.0

func (*ImportExportPolicy) UnmarshalJSON added in v0.8.0

func (v *ImportExportPolicy) UnmarshalJSON(data []byte) error

type ImportExportPolicyAllow added in v0.2.0

type ImportExportPolicyAllow struct {
	Value []IpNet `json:"value" yaml:"value"`
}

ImportExportPolicyAllow is a variant of ImportExportPolicy.

type ImportExportPolicyNoFiltering added in v0.2.0

type ImportExportPolicyNoFiltering struct {
}

ImportExportPolicyNoFiltering is a variant of ImportExportPolicy.

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" yaml:"auto_restart_enabled"`
	// 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"`
	// CpuPlatform is the CPU platform for this instance. If this is `null`, the instance requires
	// no particular CPU
	// platform.
	CpuPlatform InstanceCpuPlatform `json:"cpu_platform,omitempty" yaml:"cpu_platform,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Hostname is rFC1035-compliant hostname for the instance
	Hostname string `json:"hostname" yaml:"hostname"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Memory is memory allocated for this instance
	Memory ByteCount `json:"memory" yaml:"memory"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Ncpus is number of CPUs allocated for this instance
	Ncpus InstanceCpuCount `json:"ncpus" yaml:"ncpus"`
	// ProjectId is iD for the project containing this instance
	ProjectId string `json:"project_id" yaml:"project_id"`
	// 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" yaml:"run_state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// 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"          yaml:"time_modified"`
	TimeRunStateUpdated *time.Time `json:"time_run_state_updated" yaml:"time_run_state_updated"`
}

Instance is view of an Instance

Required fields: - AutoRestartEnabled - Description - Hostname - Id - Memory - Name - Ncpus - ProjectId - RunState - TimeCreated - TimeModified - TimeRunStateUpdated

type InstanceAffinityGroupListParams added in v0.4.0

type InstanceAffinityGroupListParams 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"`
}

InstanceAffinityGroupListParams is the request parameters for InstanceAffinityGroupList

Required fields: - Instance

func (*InstanceAffinityGroupListParams) Validate added in v0.4.0

func (p *InstanceAffinityGroupListParams) Validate() error

Validate verifies all required fields for InstanceAffinityGroupListParams are set

type InstanceAntiAffinityGroupListParams added in v0.4.0

type InstanceAntiAffinityGroupListParams 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"`
}

InstanceAntiAffinityGroupListParams is the request parameters for InstanceAntiAffinityGroupList

Required fields: - Instance

func (*InstanceAntiAffinityGroupListParams) Validate added in v0.4.0

Validate verifies all required fields for InstanceAntiAffinityGroupListParams are set

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 InstanceCpuPlatform added in v0.7.0

type InstanceCpuPlatform string

InstanceCpuPlatform is an AMD Milan-like CPU platform.

const InstanceCpuPlatformAmdMilan InstanceCpuPlatform = "amd_milan"

InstanceCpuPlatformAmdMilan represents the InstanceCpuPlatform `"amd_milan"`.

const InstanceCpuPlatformAmdTurin InstanceCpuPlatform = "amd_turin"

InstanceCpuPlatformAmdTurin represents the InstanceCpuPlatform `"amd_turin"`.

type InstanceCreate

type InstanceCreate struct {
	// AntiAffinityGroups is anti-affinity groups to which this instance should be added.
	AntiAffinityGroups []NameOrId `json:"anti_affinity_groups,omitzero" yaml:"anti_affinity_groups,omitzero"`
	// 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 the instance is configured to boot from.
	//
	// This disk can either be attached if it already exists or created along with the instance.
	//
	// Specifying a boot disk is optional but recommended to ensure predictable boot behavior. The
	// boot disk can be set during instance creation or later if the instance is stopped. The boot
	// disk counts against the disk
	// attachment limit.
	//
	// An instance that does not have a boot disk set will use the boot options specified in its
	// UEFI settings, which are controlled by both the instance's UEFI firmware and the guest
	// operating system. Boot options can change as disks are attached and detached, which may
	// result in an instance that only boots to the EFI shell until
	// a boot disk is set.
	BootDisk InstanceDiskAttachment `json:"boot_disk,omitempty" yaml:"boot_disk,omitempty"`
	// CpuPlatform is the CPU platform to be used for this instance. If this is `null`, the instance
	// requires no particular CPU platform; when it is started the instance will have the most
	// general CPU platform supported by
	// the sled it is initially placed on.
	CpuPlatform InstanceCpuPlatform `json:"cpu_platform,omitempty" yaml:"cpu_platform,omitempty"`
	Description string              `json:"description"            yaml:"description"`
	// Disks is a list of disks to be attached to the instance.
	//
	// Disk attachments of type "create" will be created, while those of type "attach" must already
	// exist.
	//
	// The order of this list does not guarantee a boot order for the instance. Use the boot_disk
	// attribute to specify a boot disk. When boot_disk is specified it will count against the disk
	// attachment limit.
	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" yaml:"hostname"`
	// Memory is the amount of RAM (in bytes) to be allocated to the instance
	Memory ByteCount `json:"memory" yaml:"memory"`
	// MulticastGroups is multicast groups this instance should join at creation.
	//
	// Groups can be specified by name, UUID, or IP address. Non-existent groups are created
	// automatically.
	MulticastGroups []MulticastGroupJoinSpec `json:"multicast_groups,omitempty" yaml:"multicast_groups,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" yaml:"name"`
	// Ncpus is the number of vCPUs to be allocated to the instance
	Ncpus InstanceCpuCount `json:"ncpus" yaml:"ncpus"`
	// 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 {
	Value instanceDiskAttachmentVariant
}

InstanceDiskAttachment is describe the instance's disks at creation time

func (InstanceDiskAttachment) AsAttach added in v0.8.0

AsAttach attempts to convert the InstanceDiskAttachment to a InstanceDiskAttachmentAttach. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceDiskAttachment) AsCreate added in v0.8.0

AsCreate attempts to convert the InstanceDiskAttachment to a InstanceDiskAttachmentCreate. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceDiskAttachment) MarshalJSON added in v0.8.0

func (v InstanceDiskAttachment) MarshalJSON() ([]byte, error)

func (InstanceDiskAttachment) Type

func (*InstanceDiskAttachment) UnmarshalJSON added in v0.8.0

func (v *InstanceDiskAttachment) UnmarshalJSON(data []byte) error

type InstanceDiskAttachmentAttach

type InstanceDiskAttachmentAttach struct {
	// Name is a disk name to attach
	Name Name `json:"name" yaml:"name"`
}

InstanceDiskAttachmentAttach is a variant of InstanceDiskAttachment.

type InstanceDiskAttachmentCreate

type InstanceDiskAttachmentCreate struct {
	Description string `json:"description" yaml:"description"`
	// DiskBackend is the source for this `Disk`'s blocks
	DiskBackend DiskBackend `json:"disk_backend" yaml:"disk_backend"`
	// 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" yaml:"name"`
	// Size is the total size of the Disk (in bytes)
	Size ByteCount `json:"size" yaml:"size"`
}

InstanceDiskAttachmentCreate is a variant of InstanceDiskAttachment.

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"`
	IpVersion IpVersion `json:"ip_version,omitempty" yaml:"ip_version,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 InstanceExternalSubnetListParams added in v0.8.0

type InstanceExternalSubnetListParams struct {
	Project  NameOrId `json:"project,omitempty"  yaml:"project,omitempty"`
	Instance NameOrId `json:"instance,omitempty" yaml:"instance,omitempty"`
}

InstanceExternalSubnetListParams is the request parameters for InstanceExternalSubnetList

Required fields: - Instance

func (*InstanceExternalSubnetListParams) Validate added in v0.8.0

Validate verifies all required fields for InstanceExternalSubnetListParams 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 InstanceMulticastGroupJoin added in v0.8.0

type InstanceMulticastGroupJoin struct {
	// IpVersion is iP version for pool selection when creating a group by name. Required if both
	// IPv4 and IPv6
	// default multicast pools are linked.
	IpVersion IpVersion `json:"ip_version,omitempty" yaml:"ip_version,omitempty"`
	// SourceIps is source IPs for source-filtered multicast (SSM). Optional for ASM groups,
	// required for SSM
	// groups (232.0.0.0/8, ff3x::/32).
	SourceIps []string `json:"source_ips" yaml:"source_ips"`
}

InstanceMulticastGroupJoin is parameters for joining an instance to a multicast group.

When joining by IP address, the pool containing the multicast IP is auto-discovered from all linked multicast pools.

type InstanceMulticastGroupJoinParams added in v0.8.0

type InstanceMulticastGroupJoinParams struct {
	Instance       NameOrId                    `json:"instance,omitempty"        yaml:"instance,omitempty"`
	MulticastGroup MulticastGroupIdentifier    `json:"multicast_group,omitempty" yaml:"multicast_group,omitempty"`
	Project        NameOrId                    `json:"project,omitempty"         yaml:"project,omitempty"`
	Body           *InstanceMulticastGroupJoin `json:"body,omitempty"            yaml:"body,omitempty"`
}

InstanceMulticastGroupJoinParams is the request parameters for InstanceMulticastGroupJoin

Required fields: - Instance - MulticastGroup - Body

func (*InstanceMulticastGroupJoinParams) Validate added in v0.8.0

Validate verifies all required fields for InstanceMulticastGroupJoinParams are set

type InstanceMulticastGroupLeaveParams added in v0.8.0

type InstanceMulticastGroupLeaveParams struct {
	Instance       NameOrId                 `json:"instance,omitempty"        yaml:"instance,omitempty"`
	MulticastGroup MulticastGroupIdentifier `json:"multicast_group,omitempty" yaml:"multicast_group,omitempty"`
	Project        NameOrId                 `json:"project,omitempty"         yaml:"project,omitempty"`
}

InstanceMulticastGroupLeaveParams is the request parameters for InstanceMulticastGroupLeave

Required fields: - Instance - MulticastGroup

func (*InstanceMulticastGroupLeaveParams) Validate added in v0.8.0

Validate verifies all required fields for InstanceMulticastGroupLeaveParams are set

type InstanceMulticastGroupListParams added in v0.8.0

type InstanceMulticastGroupListParams 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    IdSortMode `json:"sort_by,omitempty"    yaml:"sort_by,omitempty"`
	Instance  NameOrId   `json:"instance,omitempty"   yaml:"instance,omitempty"`
}

InstanceMulticastGroupListParams is the request parameters for InstanceMulticastGroupList

Required fields: - Instance

func (*InstanceMulticastGroupListParams) Validate added in v0.8.0

Validate verifies all required fields for InstanceMulticastGroupListParams 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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// InstanceId is the Instance to which the interface belongs.
	InstanceId string `json:"instance_id" yaml:"instance_id"`
	// IpStack is the VPC-private IP stack for this interface.
	IpStack PrivateIpStack `json:"ip_stack" yaml:"ip_stack"`
	// Mac is the MAC address assigned to this interface.
	Mac MacAddr `json:"mac" yaml:"mac"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Primary is true if this interface is the primary for the instance to which it's attached.
	Primary *bool `json:"primary" yaml:"primary"`
	// SubnetId is the subnet to which the interface belongs.
	SubnetId string `json:"subnet_id" yaml:"subnet_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VpcId is the VPC to which the interface belongs.
	VpcId string `json:"vpc_id" yaml:"vpc_id"`
}

InstanceNetworkInterface is an `InstanceNetworkInterface` represents a virtual network interface device attached to an instance.

Required fields: - Description - Id - InstanceId - IpStack - Mac - Name - Primary - SubnetId - TimeCreated - TimeModified - VpcId

type InstanceNetworkInterfaceAttachment

type InstanceNetworkInterfaceAttachment struct {
	Value instanceNetworkInterfaceAttachmentVariant
}

InstanceNetworkInterfaceAttachment is describes an attachment of an `InstanceNetworkInterface` to an `Instance`, at the time the instance is created.

func (InstanceNetworkInterfaceAttachment) AsCreate added in v0.8.0

AsCreate attempts to convert the InstanceNetworkInterfaceAttachment to a InstanceNetworkInterfaceAttachmentCreate. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceNetworkInterfaceAttachment) AsDefaultDualStack added in v0.8.0

AsDefaultDualStack attempts to convert the InstanceNetworkInterfaceAttachment to a InstanceNetworkInterfaceAttachmentDefaultDualStack. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceNetworkInterfaceAttachment) AsDefaultIpv4 added in v0.8.0

AsDefaultIpv4 attempts to convert the InstanceNetworkInterfaceAttachment to a InstanceNetworkInterfaceAttachmentDefaultIpv4. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceNetworkInterfaceAttachment) AsDefaultIpv6 added in v0.8.0

AsDefaultIpv6 attempts to convert the InstanceNetworkInterfaceAttachment to a InstanceNetworkInterfaceAttachmentDefaultIpv6. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceNetworkInterfaceAttachment) AsNone added in v0.8.0

AsNone attempts to convert the InstanceNetworkInterfaceAttachment to a InstanceNetworkInterfaceAttachmentNone. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (InstanceNetworkInterfaceAttachment) MarshalJSON added in v0.8.0

func (v InstanceNetworkInterfaceAttachment) MarshalJSON() ([]byte, error)

func (InstanceNetworkInterfaceAttachment) Type

func (*InstanceNetworkInterfaceAttachment) UnmarshalJSON added in v0.8.0

func (v *InstanceNetworkInterfaceAttachment) UnmarshalJSON(data []byte) error

type InstanceNetworkInterfaceAttachmentCreate

type InstanceNetworkInterfaceAttachmentCreate struct {
	Params []InstanceNetworkInterfaceCreate `json:"params" yaml:"params"`
}

InstanceNetworkInterfaceAttachmentCreate is a variant of InstanceNetworkInterfaceAttachment.

type InstanceNetworkInterfaceAttachmentDefaultDualStack added in v0.8.0

type InstanceNetworkInterfaceAttachmentDefaultDualStack struct {
}

InstanceNetworkInterfaceAttachmentDefaultDualStack is a variant of InstanceNetworkInterfaceAttachment.

type InstanceNetworkInterfaceAttachmentDefaultIpv4 added in v0.8.0

type InstanceNetworkInterfaceAttachmentDefaultIpv4 struct {
}

InstanceNetworkInterfaceAttachmentDefaultIpv4 is a variant of InstanceNetworkInterfaceAttachment.

type InstanceNetworkInterfaceAttachmentDefaultIpv6 added in v0.8.0

type InstanceNetworkInterfaceAttachmentDefaultIpv6 struct {
}

InstanceNetworkInterfaceAttachmentDefaultIpv6 is a variant of InstanceNetworkInterfaceAttachment.

type InstanceNetworkInterfaceAttachmentNone

type InstanceNetworkInterfaceAttachmentNone struct {
}

InstanceNetworkInterfaceAttachmentNone is a variant of InstanceNetworkInterfaceAttachment.

type InstanceNetworkInterfaceAttachmentType

type InstanceNetworkInterfaceAttachmentType string

InstanceNetworkInterfaceAttachmentType is the type definition for a InstanceNetworkInterfaceAttachmentType.

const InstanceNetworkInterfaceAttachmentTypeCreate InstanceNetworkInterfaceAttachmentType = "create"

InstanceNetworkInterfaceAttachmentTypeCreate represents the InstanceNetworkInterfaceAttachmentType `"create"`.

const InstanceNetworkInterfaceAttachmentTypeDefaultDualStack InstanceNetworkInterfaceAttachmentType = "default_dual_stack"

InstanceNetworkInterfaceAttachmentTypeDefaultDualStack represents the InstanceNetworkInterfaceAttachmentType `"default_dual_stack"`.

const InstanceNetworkInterfaceAttachmentTypeDefaultIpv4 InstanceNetworkInterfaceAttachmentType = "default_ipv4"

InstanceNetworkInterfaceAttachmentTypeDefaultIpv4 represents the InstanceNetworkInterfaceAttachmentType `"default_ipv4"`.

const InstanceNetworkInterfaceAttachmentTypeDefaultIpv6 InstanceNetworkInterfaceAttachmentType = "default_ipv6"

InstanceNetworkInterfaceAttachmentTypeDefaultIpv6 represents the InstanceNetworkInterfaceAttachmentType `"default_ipv6"`.

const InstanceNetworkInterfaceAttachmentTypeNone InstanceNetworkInterfaceAttachmentType = "none"

InstanceNetworkInterfaceAttachmentTypeNone represents the InstanceNetworkInterfaceAttachmentType `"none"`.

type InstanceNetworkInterfaceCreate added in v0.0.23

type InstanceNetworkInterfaceCreate struct {
	Description string `json:"description" yaml:"description"`
	// IpConfig is the IP stack configuration for this interface.
	//
	// If not provided, a default configuration will be used, which creates a dual-stack IPv4 / IPv6
	// interface.
	IpConfig PrivateIpStackCreate `json:"ip_config,omitempty" yaml:"ip_config,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" yaml:"name"`
	// SubnetName is the VPC Subnet in which to create the interface.
	SubnetName Name `json:"subnet_name" yaml:"subnet_name"`
	// VpcName is the VPC in which to create the interface.
	VpcName Name `json:"vpc_name" yaml:"vpc_name"`
}

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" yaml:"items"`
	// 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" yaml:"items"`
	// 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 []int `json:"data" yaml:"data"`
	// 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 *uint64 `json:"last_byte_offset" yaml:"last_byte_offset"`
}

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  *uint64  `json:"from_start,omitempty"  yaml:"from_start,omitempty"`
	MaxBytes   *uint64  `json:"max_bytes,omitempty"   yaml:"max_bytes,omitempty"`
	MostRecent *uint64  `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 *uint64  `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 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" yaml:"auto_restart_policy"`
	// BootDisk is the disk the instance is configured to boot from.
	//
	// Setting a boot disk is optional but recommended to ensure predictable boot behavior. The boot
	// disk can be set during instance creation or later if the instance is stopped. The boot disk
	// counts against the disk attachment
	// limit.
	//
	// An instance that does not have a boot disk set will use the boot options specified in its
	// UEFI settings, which are controlled by both the instance's UEFI firmware and the guest
	// operating system. Boot options can change as disks are attached and detached, which may
	// result in an instance that only boots to the EFI shell until
	// a boot disk is set.
	BootDisk *NameOrId `json:"boot_disk" yaml:"boot_disk"`
	// CpuPlatform is the CPU platform to be used for this instance. If this is `null`, the instance
	// requires no particular CPU platform; when it is started the instance will have the most
	// general CPU platform supported by
	// the sled it is initially placed on.
	CpuPlatform *InstanceCpuPlatform `json:"cpu_platform" yaml:"cpu_platform"`
	// Memory is the amount of RAM (in bytes) to be allocated to the instance
	Memory ByteCount `json:"memory" yaml:"memory"`
	// MulticastGroups is multicast groups this instance should join.
	//
	// When specified, this replaces the instance's current multicast group membership with the new
	// set of groups. The
	// instance will leave any groups not listed here and join any new groups that are specified.
	//
	// Each entry can specify the group by name, UUID, or IP address, along with optional source IP
	// filtering for SSM (Source-Specific Multicast). When a group doesn't exist, it will be
	// implicitly created using the default
	// multicast pool (or you can specify `ip_version` to disambiguate if needed).
	//
	// If not provided, the instance's multicast group membership will not be changed.
	MulticastGroups []MulticastGroupJoinSpec `json:"multicast_groups" yaml:"multicast_groups"`
	// Ncpus is the number of vCPUs to be allocated to the instance
	Ncpus InstanceCpuCount `json:"ncpus" yaml:"ncpus"`
}

InstanceUpdate is parameters of an `Instance` that can be reconfigured after creation.

Required fields: - AutoRestartPolicy - BootDisk - CpuPlatform - 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 InterfaceNum added in v0.5.0

type InterfaceNum struct {
	// Unknown is the type definition for a Unknown.
	Unknown *int `json:"unknown,omitempty" yaml:"unknown,omitempty"`
	// IfIndex is the type definition for a IfIndex.
	IfIndex *int `json:"if_index,omitempty" yaml:"if_index,omitempty"`
	// PortNumber is the type definition for a PortNumber.
	PortNumber *int `json:"port_number,omitempty" yaml:"port_number,omitempty"`
}

InterfaceNum is the type definition for a InterfaceNum.

type InterfaceNumIfIndex added in v0.5.0

type InterfaceNumIfIndex struct {
	IfIndex *int `json:"if_index" yaml:"if_index"`
}

InterfaceNumIfIndex is the type definition for a InterfaceNumIfIndex.

Required fields: - IfIndex

type InterfaceNumPortNumber added in v0.5.0

type InterfaceNumPortNumber struct {
	PortNumber *int `json:"port_number" yaml:"port_number"`
}

InterfaceNumPortNumber is the type definition for a InterfaceNumPortNumber.

Required fields: - PortNumber

type InterfaceNumUnknown added in v0.5.0

type InterfaceNumUnknown struct {
	Unknown *int `json:"unknown" yaml:"unknown"`
}

InterfaceNumUnknown is the type definition for a InterfaceNumUnknown.

Required fields: - Unknown

type InternetGateway added in v0.2.0

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

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" yaml:"description"`
	// 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" yaml:"name"`
}

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" yaml:"address"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// InternetGatewayId is the associated internet gateway
	InternetGatewayId string `json:"internet_gateway_id" yaml:"internet_gateway_id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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"     yaml:"address"`
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// InternetGatewayId is the associated internet gateway.
	InternetGatewayId string `json:"internet_gateway_id" yaml:"internet_gateway_id"`
	// IpPoolId is the associated IP pool.
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"description"`
	IpPool      NameOrId `json:"ip_pool"     yaml:"ip_pool"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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" yaml:"items"`
	// 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 struct {
	Value ipNetVariant
}

IpNet is the type definition for a IpNet.

func MustIpNet added in v0.8.0

func MustIpNet(value string) IpNet

MustIpNet creates an IpNet from a string value, panicking on error. Use this only for known-good values.

func NewIpNet added in v0.8.0

func NewIpNet(value string) (IpNet, error)

NewIpNet creates an IpNet from a string value (e.g., "192.168.1.0/24" or "fd00::/64"). The string is parsed to determine whether it's an IPv4 or IPv6 network.

func (IpNet) AsIpv4Net added in v0.8.0

func (v IpNet) AsIpv4Net() (*Ipv4Net, bool)

AsIpv4Net attempts to convert the IpNet to a Ipv4Net. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IpNet) AsIpv6Net added in v0.8.0

func (v IpNet) AsIpv6Net() (*Ipv6Net, bool)

AsIpv6Net attempts to convert the IpNet to a Ipv6Net. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IpNet) MarshalJSON added in v0.8.0

func (v IpNet) MarshalJSON() ([]byte, error)

func (IpNet) String added in v0.8.0

func (v IpNet) String() string

String returns the string representation of the IpNet.

func (*IpNet) UnmarshalJSON added in v0.8.0

func (v *IpNet) UnmarshalJSON(data []byte) error

type IpPool

type IpPool struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// IpVersion is the IP version for the pool.
	IpVersion IpVersion `json:"ip_version" yaml:"ip_version"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// PoolType is type of IP pool (unicast or multicast).
	PoolType IpPoolType `json:"pool_type" yaml:"pool_type"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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 - IpVersion - Name - PoolType - TimeCreated - TimeModified

type IpPoolCreate

type IpPoolCreate struct {
	Description string `json:"description" yaml:"description"`
	// IpVersion is the IP version of the pool.
	//
	// The default is IPv4.
	IpVersion IpVersion `json:"ip_version,omitempty" yaml:"ip_version,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" yaml:"name"`
	// PoolType is type of IP pool (defaults to Unicast)
	PoolType IpPoolType `json:"pool_type,omitempty" yaml:"pool_type,omitempty"`
}

IpPoolCreate is create-time parameters for an `IpPool`.

For multicast pools, all ranges must be either Any-Source Multicast (ASM) or Source-Specific Multicast (SSM), but not both. Mixing ASM and SSM ranges in the same pool is not allowed.

ASM: IPv4 addresses outside 232.0.0.0/8, IPv6 addresses with flag field != 3 SSM: IPv4 addresses in 232.0.0.0/8, IPv6 addresses with flag field = 3

Required fields: - Description - Name

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.
	//
	// A silo can have at most one default pool per combination of pool type (unicast or multicast)
	// and IP version (IPv4
	// or IPv6), allowing up to 4 default pools total.
	IsDefault *bool    `json:"is_default" yaml:"is_default"`
	Silo      NameOrId `json:"silo"       yaml:"silo"`
}

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"           yaml:"id"`
	IpPoolId    string     `json:"ip_pool_id"   yaml:"ip_pool_id"`
	Range       IpRange    `json:"range"        yaml:"range"`
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
}

IpPoolRange is the type definition for a IpPoolRange.

Required fields: - Id - IpPoolId - Range - TimeCreated

type IpPoolRangeResultsPage

type IpPoolRangeResultsPage struct {
	// Items is list of items on this page of results
	Items []IpPoolRange `json:"items" yaml:"items"`
	// 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" yaml:"items"`
	// 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 IpPoolSiloLink struct {
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// 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.
	//
	// A silo can have at most one default pool per combination of pool type (unicast or multicast)
	// and IP version (IPv4
	// or IPv6), allowing up to 4 default pools total.
	IsDefault *bool  `json:"is_default" yaml:"is_default"`
	SiloId    string `json:"silo_id"    yaml:"silo_id"`
}

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 IpPoolSiloLinkResultsPage added in v0.2.0

type IpPoolSiloLinkResultsPage struct {
	// Items is list of items on this page of results
	Items []IpPoolSiloLink `json:"items" yaml:"items"`
	// 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 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.
	//
	// A silo can have at most one default pool per combination of pool type (unicast or multicast)
	// and IP version (IPv4 or IPv6), allowing up to 4 default pools total. When a pool is made
	// default, an existing default of the same
	// type and version will remain linked but will no longer be the default.
	IsDefault *bool `json:"is_default" yaml:"is_default"`
}

IpPoolSiloUpdate is the type definition for a IpPoolSiloUpdate.

Required fields: - IsDefault

type IpPoolType added in v0.7.0

type IpPoolType string

IpPoolType is unicast IP pool for standard IP allocations.

const IpPoolTypeMulticast IpPoolType = "multicast"

IpPoolTypeMulticast represents the IpPoolType `"multicast"`.

const IpPoolTypeUnicast IpPoolType = "unicast"

IpPoolTypeUnicast represents the IpPoolType `"unicast"`.

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 IpPoolUtilization added in v0.2.0

type IpPoolUtilization struct {
	// Capacity is the total number of addresses in the pool.
	Capacity float64 `json:"capacity" yaml:"capacity"`
	// Remaining is the number of remaining addresses in the pool.
	Remaining float64 `json:"remaining" yaml:"remaining"`
}

IpPoolUtilization is the utilization of IP addresses in a pool.

Note that both the count of remaining addresses and the total capacity are integers, reported as floating point numbers. This accommodates allocations larger than a 64-bit integer, which is common with IPv6 address spaces. With very large IP Pools (> 2**53 addresses), integer precision will be lost, in exchange for representing the entire range. In such a case the pool still has many available addresses.

Required fields: - Capacity - Remaining

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 struct {
	Value ipRangeVariant
}

IpRange is the type definition for a IpRange.

func NewIpRange added in v0.8.0

func NewIpRange(first, last string) (IpRange, error)

NewIpRange creates an IpRange from first and last IP strings. The IPs are parsed to determine whether they're IPv4 or IPv6.

func (IpRange) AsIpv4Range added in v0.8.0

func (v IpRange) AsIpv4Range() (*Ipv4Range, bool)

AsIpv4Range attempts to convert the IpRange to a Ipv4Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IpRange) AsIpv6Range added in v0.8.0

func (v IpRange) AsIpv6Range() (*Ipv6Range, bool)

AsIpv6Range attempts to convert the IpRange to a Ipv6Range. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (IpRange) MarshalJSON added in v0.8.0

func (v IpRange) MarshalJSON() ([]byte, error)

func (IpRange) String added in v0.8.0

func (v IpRange) String() string

String returns the string representation of the IpRange.

func (*IpRange) UnmarshalJSON added in v0.8.0

func (v *IpRange) UnmarshalJSON(data []byte) error

type IpVersion added in v0.7.0

type IpVersion string

IpVersion is the IP address version.

const IpVersionV4 IpVersion = "v4"

IpVersionV4 represents the IpVersion `"v4"`.

const IpVersionV6 IpVersion = "v6"

IpVersionV6 represents the IpVersion `"v6"`.

type Ipv4Assignment added in v0.8.0

type Ipv4Assignment struct {
	Value ipv4AssignmentVariant
}

Ipv4Assignment is how a VPC-private IP address is assigned to a network interface.

func (Ipv4Assignment) AsAuto added in v0.8.0

func (v Ipv4Assignment) AsAuto() (*Ipv4AssignmentAuto, bool)

AsAuto attempts to convert the Ipv4Assignment to a Ipv4AssignmentAuto. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Ipv4Assignment) AsExplicit added in v0.8.0

func (v Ipv4Assignment) AsExplicit() (*Ipv4AssignmentExplicit, bool)

AsExplicit attempts to convert the Ipv4Assignment to a Ipv4AssignmentExplicit. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Ipv4Assignment) MarshalJSON added in v0.8.0

func (v Ipv4Assignment) MarshalJSON() ([]byte, error)

func (Ipv4Assignment) Type added in v0.8.0

func (*Ipv4Assignment) UnmarshalJSON added in v0.8.0

func (v *Ipv4Assignment) UnmarshalJSON(data []byte) error

type Ipv4AssignmentAuto added in v0.8.0

type Ipv4AssignmentAuto struct {
}

Ipv4AssignmentAuto is a variant of Ipv4Assignment.

type Ipv4AssignmentExplicit added in v0.8.0

type Ipv4AssignmentExplicit struct {
	Value string `json:"value" yaml:"value"`
}

Ipv4AssignmentExplicit is a variant of Ipv4Assignment.

type Ipv4AssignmentType added in v0.8.0

type Ipv4AssignmentType string

Ipv4AssignmentType is the type definition for a Ipv4AssignmentType.

const Ipv4AssignmentTypeAuto Ipv4AssignmentType = "auto"

Ipv4AssignmentTypeAuto represents the Ipv4AssignmentType `"auto"`.

const Ipv4AssignmentTypeExplicit Ipv4AssignmentType = "explicit"

Ipv4AssignmentTypeExplicit represents the Ipv4AssignmentType `"explicit"`.

type Ipv4Net

type Ipv4Net string

Ipv4Net is an IPv4 subnet, including prefix and prefix length

type Ipv4Range

type Ipv4Range struct {
	First string `json:"first" yaml:"first"`
	Last  string `json:"last"  yaml:"last"`
}

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 Ipv6Assignment added in v0.8.0

type Ipv6Assignment struct {
	Value ipv6AssignmentVariant
}

Ipv6Assignment is how a VPC-private IP address is assigned to a network interface.

func (Ipv6Assignment) AsAuto added in v0.8.0

func (v Ipv6Assignment) AsAuto() (*Ipv6AssignmentAuto, bool)

AsAuto attempts to convert the Ipv6Assignment to a Ipv6AssignmentAuto. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Ipv6Assignment) AsExplicit added in v0.8.0

func (v Ipv6Assignment) AsExplicit() (*Ipv6AssignmentExplicit, bool)

AsExplicit attempts to convert the Ipv6Assignment to a Ipv6AssignmentExplicit. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (Ipv6Assignment) MarshalJSON added in v0.8.0

func (v Ipv6Assignment) MarshalJSON() ([]byte, error)

func (Ipv6Assignment) Type added in v0.8.0

func (*Ipv6Assignment) UnmarshalJSON added in v0.8.0

func (v *Ipv6Assignment) UnmarshalJSON(data []byte) error

type Ipv6AssignmentAuto added in v0.8.0

type Ipv6AssignmentAuto struct {
}

Ipv6AssignmentAuto is a variant of Ipv6Assignment.

type Ipv6AssignmentExplicit added in v0.8.0

type Ipv6AssignmentExplicit struct {
	Value string `json:"value" yaml:"value"`
}

Ipv6AssignmentExplicit is a variant of Ipv6Assignment.

type Ipv6AssignmentType added in v0.8.0

type Ipv6AssignmentType string

Ipv6AssignmentType is the type definition for a Ipv6AssignmentType.

const Ipv6AssignmentTypeAuto Ipv6AssignmentType = "auto"

Ipv6AssignmentTypeAuto represents the Ipv6AssignmentType `"auto"`.

const Ipv6AssignmentTypeExplicit Ipv6AssignmentType = "explicit"

Ipv6AssignmentTypeExplicit represents the Ipv6AssignmentType `"explicit"`.

type Ipv6Net

type Ipv6Net string

Ipv6Net is an IPv6 subnet, including prefix and subnet mask

type Ipv6Range

type Ipv6Range struct {
	First string `json:"first" yaml:"first"`
	Last  string `json:"last"  yaml:"last"`
}

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 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" yaml:"autoneg"`
	// 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 link 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.
	LinkName Name `json:"link_name" yaml:"link_name"`
	// Lldp is the link-layer discovery protocol (LLDP) configuration for the link.
	Lldp LldpLinkConfigCreate `json:"lldp" yaml:"lldp"`
	// Mtu is maximum transmission unit for the link.
	Mtu *int `json:"mtu" yaml:"mtu"`
	// Speed is the speed of the link.
	Speed LinkSpeed `json:"speed" yaml:"speed"`
	// TxEq is optional tx_eq settings.
	TxEq *TxEqConfig `json:"tx_eq,omitempty" yaml:"tx_eq,omitempty"`
}

LinkConfigCreate is switch link configuration.

Required fields: - Autoneg - LinkName - 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" yaml:"enabled"`
	// Id is the id of this LLDP service instance.
	Id string `json:"id" yaml:"id"`
	// 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"`
}

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" yaml:"enabled"`
	// 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" yaml:"chassis_id"`
	// FirstSeen is initial sighting of this LldpNeighbor
	FirstSeen *time.Time `json:"first_seen" yaml:"first_seen"`
	// LastSeen is most recent sighting of this LldpNeighbor
	LastSeen *time.Time `json:"last_seen" yaml:"last_seen"`
	// 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" yaml:"link_name"`
	// LocalPort is the port on which the neighbor was seen
	LocalPort string `json:"local_port" yaml:"local_port"`
	// ManagementIp is the LLDP management IP(s) advertised by the neighbor
	ManagementIp []ManagementAddress `json:"management_ip" yaml:"management_ip"`
	// 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" yaml:"items"`
	// 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" yaml:"address"`
	// AddressLotBlockId is the address lot block this address came from.
	AddressLotBlockId string `json:"address_lot_block_id" yaml:"address_lot_block_id"`
	// Id is the id of the loopback address.
	Id string `json:"id" yaml:"id"`
	// RackId is the id of the rack where this loopback address is assigned.
	RackId string `json:"rack_id" yaml:"rack_id"`
	// SwitchSlot is the slot of the switch within the rack where this loopback address is assigned.
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

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 - SwitchSlot

type LoopbackAddressCreate added in v0.0.23

type LoopbackAddressCreate struct {
	// Address is the address to create.
	Address string `json:"address" yaml:"address"`
	// AddressLot is the name or id of the address lot this loopback address will pull an address
	// from.
	AddressLot NameOrId `json:"address_lot" yaml:"address_lot"`
	// Anycast is address is an anycast address.
	//
	// This allows the address to be assigned to multiple locations simultaneously.
	Anycast *bool `json:"anycast" yaml:"anycast"`
	// Mask is the subnet mask to use for the address.
	Mask *int `json:"mask" yaml:"mask"`
	// RackId is the rack containing the switch this loopback address will be configured on.
	RackId string `json:"rack_id" yaml:"rack_id"`
	// SwitchSlot is the slot of the switch within the rack this loopback address will be configured
	// on.
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

LoopbackAddressCreate is parameters for creating a loopback address on a particular rack switch.

Required fields: - Address - AddressLot - Anycast - Mask - RackId - SwitchSlot

type LoopbackAddressResultsPage added in v0.0.23

type LoopbackAddressResultsPage struct {
	// Items is list of items on this page of results
	Items []LoopbackAddress `json:"items" yaml:"items"`
	// 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 ManagementAddress added in v0.5.0

type ManagementAddress struct {
	Addr         NetworkAddress `json:"addr"          yaml:"addr"`
	InterfaceNum InterfaceNum   `json:"interface_num" yaml:"interface_num"`
	Oid          []int          `json:"oid"           yaml:"oid"`
}

ManagementAddress is the type definition for a ManagementAddress.

Required fields: - Addr - InterfaceNum

type MaxPathConfig added in v0.8.0

type MaxPathConfig uint8

MaxPathConfig is the type definition for a MaxPathConfig.

type Measurement

type Measurement struct {
	// Datum is a `Datum` is a single sampled data point from a metric.
	Datum     Datum      `json:"datum"     yaml:"datum"`
	Timestamp *time.Time `json:"timestamp" yaml:"timestamp"`
}

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" yaml:"items"`
	// 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"           yaml:"datum_type"`
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
}

MissingDatum is the type definition for a MissingDatum.

Required fields: - DatumType

type MulticastGroup added in v0.8.0

type MulticastGroup struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// HasAnySourceMember is true if any member joined without specifying source IPs (any-source).
	//
	// When true, at least one member receives traffic from any source rather than filtering to
	// specific sources.
	HasAnySourceMember *bool `json:"has_any_source_member" yaml:"has_any_source_member"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// IpPoolId is the ID of the IP pool this resource belongs to.
	IpPoolId string `json:"ip_pool_id" yaml:"ip_pool_id"`
	// MulticastIp is the multicast IP address held by this resource.
	MulticastIp string `json:"multicast_ip" yaml:"multicast_ip"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// SourceIps is deduplicated union of source IPs specified by members.
	//
	// Contains only sources from members that joined with explicit `source_ips`. Members using
	// any-source multicast (empty `source_ips`) do not contribute, so a non-empty value does not
	// imply all members use source filtering. For
	// SSM addresses (232/8, ff3x::/32), this is always non-empty.
	SourceIps []string `json:"source_ips" yaml:"source_ips"`
	// State is current state of the multicast group.
	State string `json:"state" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

MulticastGroup is view of a Multicast Group

Required fields: - Description - HasAnySourceMember - Id - IpPoolId - MulticastIp - Name - SourceIps - State - TimeCreated - TimeModified

type MulticastGroupIdentifier added in v0.8.0

type MulticastGroupIdentifier string

MulticastGroupIdentifier is can be a UUID, a name, or an IP address

type MulticastGroupJoinSpec added in v0.8.0

type MulticastGroupJoinSpec struct {
	// Group is the multicast group to join, specified by name, UUID, or IP address.
	Group MulticastGroupIdentifier `json:"group" yaml:"group"`
	// IpVersion is iP version for pool selection when creating a group by name. Required if both
	// IPv4 and IPv6
	// default multicast pools are linked.
	IpVersion IpVersion `json:"ip_version,omitempty" yaml:"ip_version,omitempty"`
	// SourceIps is source IPs for source-filtered multicast (SSM). Optional for ASM groups,
	// required for SSM
	// groups (232.0.0.0/8, ff3x::/32).
	SourceIps []string `json:"source_ips" yaml:"source_ips"`
}

MulticastGroupJoinSpec is specification for joining a multicast group with optional source filtering.

Used in `InstanceCreate` and `InstanceUpdate` to specify multicast group membership along with per-member source IP configuration.

Required fields: - Group

type MulticastGroupListParams added in v0.8.0

type MulticastGroupListParams 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"`
}

MulticastGroupListParams is the request parameters for MulticastGroupList

func (*MulticastGroupListParams) Validate added in v0.8.0

func (p *MulticastGroupListParams) Validate() error

Validate verifies all required fields for MulticastGroupListParams are set

type MulticastGroupMember added in v0.8.0

type MulticastGroupMember struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// InstanceId is the ID of the instance that is a member of this group.
	InstanceId string `json:"instance_id" yaml:"instance_id"`
	// MulticastGroupId is the ID of the multicast group this member belongs to.
	MulticastGroupId string `json:"multicast_group_id" yaml:"multicast_group_id"`
	// MulticastIp is the multicast IP address of the group this member belongs to.
	MulticastIp string `json:"multicast_ip" yaml:"multicast_ip"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// SourceIps is source IP addresses for this member's multicast subscription.
	//
	// - **ASM**: Sources are optional. Empty array means any source is allowed. Non-empty array
	// enables source filtering
	// (IGMPv3/MLDv2). - **SSM**: Sources are required for SSM addresses (232/8, ff3x::/32).
	SourceIps []string `json:"source_ips" yaml:"source_ips"`
	// State is current state of the multicast group membership.
	State string `json:"state" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

MulticastGroupMember is view of a Multicast Group Member (instance belonging to a multicast group)

Required fields: - Description - Id - InstanceId - MulticastGroupId - MulticastIp - Name - SourceIps - State - TimeCreated - TimeModified

type MulticastGroupMemberListParams added in v0.8.0

type MulticastGroupMemberListParams struct {
	MulticastGroup MulticastGroupIdentifier `json:"multicast_group,omitempty" yaml:"multicast_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"`
}

MulticastGroupMemberListParams is the request parameters for MulticastGroupMemberList

Required fields: - MulticastGroup

func (*MulticastGroupMemberListParams) Validate added in v0.8.0

func (p *MulticastGroupMemberListParams) Validate() error

Validate verifies all required fields for MulticastGroupMemberListParams are set

type MulticastGroupMemberResultsPage added in v0.8.0

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

MulticastGroupMemberResultsPage is a single page of results

Required fields: - Items

type MulticastGroupResultsPage added in v0.8.0

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

MulticastGroupResultsPage is a single page of results

Required fields: - Items

type MulticastGroupViewParams added in v0.8.0

type MulticastGroupViewParams struct {
	MulticastGroup MulticastGroupIdentifier `json:"multicast_group,omitempty" yaml:"multicast_group,omitempty"`
}

MulticastGroupViewParams is the request parameters for MulticastGroupView

Required fields: - MulticastGroup

func (*MulticastGroupViewParams) Validate added in v0.8.0

func (p *MulticastGroupViewParams) Validate() error

Validate verifies all required fields for MulticastGroupViewParams are set

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 NetworkAddress added in v0.5.0

type NetworkAddress struct {
	// IpAddr is the type definition for a IpAddr.
	IpAddr string `json:"ip_addr,omitempty" yaml:"ip_addr,omitempty"`
	// IEEE802 is the type definition for a IEEE802.
	IEEE802 []int `json:"i_e_e_e802,omitempty" yaml:"i_e_e_e802,omitempty"`
}

NetworkAddress is the type definition for a NetworkAddress.

type NetworkAddressIeee802 added in v0.5.0

type NetworkAddressIeee802 struct {
	IEEE802 []int `json:"i_e_e_e802" yaml:"i_e_e_e802"`
}

NetworkAddressIeee802 is the type definition for a NetworkAddressIeee802.

Required fields: - IEEE802

type NetworkAddressIpAddr added in v0.5.0

type NetworkAddressIpAddr struct {
	IpAddr string `json:"ip_addr" yaml:"ip_addr"`
}

NetworkAddressIpAddr is the type definition for a NetworkAddressIpAddr.

Required fields: - IpAddr

type NetworkInterface

type NetworkInterface struct {
	Id string `json:"id" yaml:"id"`
	// IpConfig is vPC-private IP address configuration for a network interface.
	IpConfig PrivateIpConfig `json:"ip_config" yaml:"ip_config"`
	// Kind is the type of network interface
	Kind NetworkInterfaceKind `json:"kind" yaml:"kind"`
	// Mac is a Media Access Control address, in EUI-48 format
	Mac MacAddr `json:"mac" yaml:"mac"`
	// 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"    yaml:"name"`
	Primary *bool `json:"primary" yaml:"primary"`
	Slot    *int  `json:"slot"    yaml:"slot"`
	// Vni is a Geneve Virtual Network Identifier
	Vni Vni `json:"vni" yaml:"vni"`
}

NetworkInterface is information required to construct a virtual network interface

Required fields: - Id - IpConfig - Kind - Mac - Name - Primary - Slot - Vni

type NetworkInterfaceKind added in v0.2.0

type NetworkInterfaceKind struct {
	Value networkInterfaceKindVariant
}

NetworkInterfaceKind is the type of network interface

func (NetworkInterfaceKind) AsInstance added in v0.8.0

AsInstance attempts to convert the NetworkInterfaceKind to a NetworkInterfaceKindInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (NetworkInterfaceKind) AsProbe added in v0.8.0

AsProbe attempts to convert the NetworkInterfaceKind to a NetworkInterfaceKindProbe. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (NetworkInterfaceKind) AsService added in v0.8.0

AsService attempts to convert the NetworkInterfaceKind to a NetworkInterfaceKindService. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (NetworkInterfaceKind) MarshalJSON added in v0.8.0

func (v NetworkInterfaceKind) MarshalJSON() ([]byte, error)

func (NetworkInterfaceKind) Type added in v0.2.0

func (*NetworkInterfaceKind) UnmarshalJSON added in v0.8.0

func (v *NetworkInterfaceKind) UnmarshalJSON(data []byte) error

type NetworkInterfaceKindInstance added in v0.2.0

type NetworkInterfaceKindInstance struct {
	Id string `json:"id" yaml:"id"`
}

NetworkInterfaceKindInstance is a variant of NetworkInterfaceKind.

type NetworkInterfaceKindProbe added in v0.2.0

type NetworkInterfaceKindProbe struct {
	Id string `json:"id" yaml:"id"`
}

NetworkInterfaceKindProbe is a variant of NetworkInterfaceKind.

type NetworkInterfaceKindService added in v0.2.0

type NetworkInterfaceKindService struct {
	Id string `json:"id" yaml:"id"`
}

NetworkInterfaceKindService is a variant of NetworkInterfaceKind.

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 NetworkingAddressLotViewParams added in v0.6.0

type NetworkingAddressLotViewParams struct {
	AddressLot NameOrId `json:"address_lot,omitempty" yaml:"address_lot,omitempty"`
}

NetworkingAddressLotViewParams is the request parameters for NetworkingAddressLotView

Required fields: - AddressLot

func (*NetworkingAddressLotViewParams) Validate added in v0.6.0

func (p *NetworkingAddressLotViewParams) Validate() error

Validate verifies all required fields for NetworkingAddressLotViewParams 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 NetworkingBgpImportedParams added in v0.8.0

type NetworkingBgpImportedParams struct {
	Asn *int `json:"asn,omitempty" yaml:"asn,omitempty"`
}

NetworkingBgpImportedParams is the request parameters for NetworkingBgpImported

Required fields: - Asn

func (*NetworkingBgpImportedParams) Validate added in v0.8.0

func (p *NetworkingBgpImportedParams) Validate() error

Validate verifies all required fields for NetworkingBgpImportedParams 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 NetworkingInboundIcmpUpdateParams added in v0.6.0

type NetworkingInboundIcmpUpdateParams struct {
	Body *ServiceIcmpConfig `json:"body,omitempty" yaml:"body,omitempty"`
}

NetworkingInboundIcmpUpdateParams is the request parameters for NetworkingInboundIcmpUpdate

Required fields: - Body

func (*NetworkingInboundIcmpUpdateParams) Validate added in v0.6.0

Validate verifies all required fields for NetworkingInboundIcmpUpdateParams 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"`
	SwitchSlot SwitchSlot `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
}

NetworkingLoopbackAddressDeleteParams is the request parameters for NetworkingLoopbackAddressDelete

Required fields: - Address - RackId - SubnetMask - SwitchSlot

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"`
	SwitchSlot SwitchSlot               `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
	Body       *SwitchPortApplySettings `json:"body,omitempty"        yaml:"body,omitempty"`
}

NetworkingSwitchPortApplySettingsParams is the request parameters for NetworkingSwitchPortApplySettings

Required fields: - Port - RackId - SwitchSlot - 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"`
	SwitchSlot SwitchSlot `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
}

NetworkingSwitchPortClearSettingsParams is the request parameters for NetworkingSwitchPortClearSettings

Required fields: - Port - RackId - SwitchSlot

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"`
	SwitchSlot SwitchSlot      `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
	Body       *LldpLinkConfig `json:"body,omitempty"        yaml:"body,omitempty"`
}

NetworkingSwitchPortLldpConfigUpdateParams is the request parameters for NetworkingSwitchPortLldpConfigUpdate

Required fields: - Port - RackId - SwitchSlot - 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"`
	SwitchSlot SwitchSlot `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
}

NetworkingSwitchPortLldpConfigViewParams is the request parameters for NetworkingSwitchPortLldpConfigView

Required fields: - Port - RackId - SwitchSlot

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"`
	SwitchSlot SwitchSlot `json:"switch_slot,omitempty" yaml:"switch_slot,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 - SwitchSlot

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"`
	SwitchSlot SwitchSlot `json:"switch_slot,omitempty" yaml:"switch_slot,omitempty"`
}

NetworkingSwitchPortStatusParams is the request parameters for NetworkingSwitchPortStatus

Required fields: - Port - RackId - SwitchSlot

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 []OxqlTable `json:"tables" yaml:"tables"`
}

OxqlQueryResult is the result of a successful OxQL query.

Required fields: - Tables

type OxqlTable added in v0.7.0

type OxqlTable struct {
	// Name is the name of the table.
	Name string `json:"name" yaml:"name"`
	// Timeseries is the set of timeseries in the table, ordered by key.
	Timeseries []Timeseries `json:"timeseries" yaml:"timeseries"`
}

OxqlTable 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 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" yaml:"form_factor"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id    string `json:"id"    yaml:"id"`
	Model string `json:"model" yaml:"model"`
	// Policy is the operator-defined policy for a physical disk.
	Policy PhysicalDiskPolicy `json:"policy" yaml:"policy"`
	Serial string             `json:"serial" yaml:"serial"`
	// 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" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	Vendor       string     `json:"vendor"        yaml:"vendor"`
}

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 {
	Value physicalDiskPolicyVariant
}

PhysicalDiskPolicy is the operator-defined policy of a physical disk.

func (PhysicalDiskPolicy) AsExpunged added in v0.8.0

AsExpunged attempts to convert the PhysicalDiskPolicy to a PhysicalDiskPolicyExpunged. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PhysicalDiskPolicy) AsInService added in v0.8.0

AsInService attempts to convert the PhysicalDiskPolicy to a PhysicalDiskPolicyInService. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PhysicalDiskPolicy) Kind added in v0.2.0

func (PhysicalDiskPolicy) MarshalJSON added in v0.8.0

func (v PhysicalDiskPolicy) MarshalJSON() ([]byte, error)

func (*PhysicalDiskPolicy) UnmarshalJSON added in v0.8.0

func (v *PhysicalDiskPolicy) UnmarshalJSON(data []byte) error

type PhysicalDiskPolicyExpunged added in v0.2.0

type PhysicalDiskPolicyExpunged struct {
}

PhysicalDiskPolicyExpunged is a variant of PhysicalDiskPolicy.

type PhysicalDiskPolicyInService added in v0.2.0

type PhysicalDiskPolicyInService struct {
}

PhysicalDiskPolicyInService is a variant of PhysicalDiskPolicy.

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" yaml:"items"`
	// 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" yaml:"status"`
}

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 []time.Time `json:"start_times" yaml:"start_times"`
	Timestamps []time.Time `json:"timestamps"  yaml:"timestamps"`
	Values     []Values    `json:"values"      yaml:"values"`
}

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 PoolSelector added in v0.8.0

type PoolSelector struct {
	Value poolSelectorVariant
}

PoolSelector is specify which IP or external subnet pool to allocate from.

func (PoolSelector) AsAuto added in v0.8.0

func (v PoolSelector) AsAuto() (*PoolSelectorAuto, bool)

AsAuto attempts to convert the PoolSelector to a PoolSelectorAuto. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PoolSelector) AsExplicit added in v0.8.0

func (v PoolSelector) AsExplicit() (*PoolSelectorExplicit, bool)

AsExplicit attempts to convert the PoolSelector to a PoolSelectorExplicit. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PoolSelector) MarshalJSON added in v0.8.0

func (v PoolSelector) MarshalJSON() ([]byte, error)

func (PoolSelector) Type added in v0.8.0

func (v PoolSelector) Type() PoolSelectorType

func (*PoolSelector) UnmarshalJSON added in v0.8.0

func (v *PoolSelector) UnmarshalJSON(data []byte) error

type PoolSelectorAuto added in v0.8.0

type PoolSelectorAuto struct {
	// IpVersion is iP version to use when multiple default pools exist. Required if both IPv4 and
	// IPv6 default pools
	// are configured.
	IpVersion IpVersion `json:"ip_version,omitempty" yaml:"ip_version,omitempty"`
}

PoolSelectorAuto is a variant of PoolSelector.

type PoolSelectorExplicit added in v0.8.0

type PoolSelectorExplicit struct {
	// Pool is the pool to allocate from.
	Pool NameOrId `json:"pool" yaml:"pool"`
}

PoolSelectorExplicit is a variant of PoolSelector.

type PoolSelectorType added in v0.8.0

type PoolSelectorType string

PoolSelectorType is the type definition for a PoolSelectorType.

const PoolSelectorTypeAuto PoolSelectorType = "auto"

PoolSelectorTypeAuto represents the PoolSelectorType `"auto"`.

const PoolSelectorTypeExplicit PoolSelectorType = "explicit"

PoolSelectorTypeExplicit represents the PoolSelectorType `"explicit"`.

type PrivateIpConfig added in v0.8.0

type PrivateIpConfig struct {
	Value privateIpConfigVariant
}

PrivateIpConfig is vPC-private IP address configuration for a network interface.

func (PrivateIpConfig) AsDualStack added in v0.8.0

func (v PrivateIpConfig) AsDualStack() (*PrivateIpConfigDualStack, bool)

AsDualStack attempts to convert the PrivateIpConfig to a PrivateIpConfigDualStack. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpConfig) AsV4 added in v0.8.0

func (v PrivateIpConfig) AsV4() (*PrivateIpConfigV4, bool)

AsV4 attempts to convert the PrivateIpConfig to a PrivateIpConfigV4. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpConfig) AsV6 added in v0.8.0

func (v PrivateIpConfig) AsV6() (*PrivateIpConfigV6, bool)

AsV6 attempts to convert the PrivateIpConfig to a PrivateIpConfigV6. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpConfig) MarshalJSON added in v0.8.0

func (v PrivateIpConfig) MarshalJSON() ([]byte, error)

func (PrivateIpConfig) Type added in v0.8.0

func (*PrivateIpConfig) UnmarshalJSON added in v0.8.0

func (v *PrivateIpConfig) UnmarshalJSON(data []byte) error

type PrivateIpConfigDualStack added in v0.8.0

type PrivateIpConfigDualStack struct {
	Value PrivateIpConfigDualStackValue `json:"value" yaml:"value"`
}

PrivateIpConfigDualStack is a variant of PrivateIpConfig.

type PrivateIpConfigDualStackValue added in v0.8.0

type PrivateIpConfigDualStackValue struct {
	// V4 is the interface's IPv4 configuration.
	V4 PrivateIpv4Config `json:"v4" yaml:"v4"`
	// V6 is the interface's IPv6 configuration.
	V6 PrivateIpv6Config `json:"v6" yaml:"v6"`
}

PrivateIpConfigDualStackValue is the type definition for a PrivateIpConfigDualStackValue.

Required fields: - V4 - V6

type PrivateIpConfigType added in v0.8.0

type PrivateIpConfigType string

PrivateIpConfigType is the type definition for a PrivateIpConfigType.

const PrivateIpConfigTypeDualStack PrivateIpConfigType = "dual_stack"

PrivateIpConfigTypeDualStack represents the PrivateIpConfigType `"dual_stack"`.

const PrivateIpConfigTypeV4 PrivateIpConfigType = "v4"

PrivateIpConfigTypeV4 represents the PrivateIpConfigType `"v4"`.

const PrivateIpConfigTypeV6 PrivateIpConfigType = "v6"

PrivateIpConfigTypeV6 represents the PrivateIpConfigType `"v6"`.

type PrivateIpConfigV4 added in v0.8.0

type PrivateIpConfigV4 struct {
	// Value is vPC-private IPv4 configuration for a network interface.
	Value PrivateIpv4Config `json:"value" yaml:"value"`
}

PrivateIpConfigV4 is a variant of PrivateIpConfig.

type PrivateIpConfigV6 added in v0.8.0

type PrivateIpConfigV6 struct {
	// Value is vPC-private IPv6 configuration for a network interface.
	Value PrivateIpv6Config `json:"value" yaml:"value"`
}

PrivateIpConfigV6 is a variant of PrivateIpConfig.

type PrivateIpStack added in v0.8.0

type PrivateIpStack struct {
	Value privateIpStackVariant
}

PrivateIpStack is the VPC-private IP stack for a network interface.

func (PrivateIpStack) AsDualStack added in v0.8.0

func (v PrivateIpStack) AsDualStack() (*PrivateIpStackDualStack, bool)

AsDualStack attempts to convert the PrivateIpStack to a PrivateIpStackDualStack. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStack) AsV4 added in v0.8.0

func (v PrivateIpStack) AsV4() (*PrivateIpStackV4, bool)

AsV4 attempts to convert the PrivateIpStack to a PrivateIpStackV4. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStack) AsV6 added in v0.8.0

func (v PrivateIpStack) AsV6() (*PrivateIpStackV6, bool)

AsV6 attempts to convert the PrivateIpStack to a PrivateIpStackV6. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStack) MarshalJSON added in v0.8.0

func (v PrivateIpStack) MarshalJSON() ([]byte, error)

func (PrivateIpStack) Type added in v0.8.0

func (*PrivateIpStack) UnmarshalJSON added in v0.8.0

func (v *PrivateIpStack) UnmarshalJSON(data []byte) error

type PrivateIpStackCreate added in v0.8.0

type PrivateIpStackCreate struct {
	Value privateIpStackCreateVariant
}

PrivateIpStackCreate is create parameters for a network interface's IP stack.

func (PrivateIpStackCreate) AsDualStack added in v0.8.0

AsDualStack attempts to convert the PrivateIpStackCreate to a PrivateIpStackCreateDualStack. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStackCreate) AsV4 added in v0.8.0

AsV4 attempts to convert the PrivateIpStackCreate to a PrivateIpStackCreateV4. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStackCreate) AsV6 added in v0.8.0

AsV6 attempts to convert the PrivateIpStackCreate to a PrivateIpStackCreateV6. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (PrivateIpStackCreate) MarshalJSON added in v0.8.0

func (v PrivateIpStackCreate) MarshalJSON() ([]byte, error)

func (PrivateIpStackCreate) Type added in v0.8.0

func (*PrivateIpStackCreate) UnmarshalJSON added in v0.8.0

func (v *PrivateIpStackCreate) UnmarshalJSON(data []byte) error

type PrivateIpStackCreateDualStack added in v0.8.0

type PrivateIpStackCreateDualStack struct {
	Value PrivateIpStackCreateDualStackValue `json:"value" yaml:"value"`
}

PrivateIpStackCreateDualStack is a variant of PrivateIpStackCreate.

type PrivateIpStackCreateDualStackValue added in v0.8.0

type PrivateIpStackCreateDualStackValue struct {
	// V4 is configuration for a network interface's IPv4 addressing.
	V4 PrivateIpv4StackCreate `json:"v4" yaml:"v4"`
	// V6 is configuration for a network interface's IPv6 addressing.
	V6 PrivateIpv6StackCreate `json:"v6" yaml:"v6"`
}

PrivateIpStackCreateDualStackValue is the type definition for a PrivateIpStackCreateDualStackValue.

Required fields: - V4 - V6

type PrivateIpStackCreateType added in v0.8.0

type PrivateIpStackCreateType string

PrivateIpStackCreateType is the type definition for a PrivateIpStackCreateType.

const PrivateIpStackCreateTypeDualStack PrivateIpStackCreateType = "dual_stack"

PrivateIpStackCreateTypeDualStack represents the PrivateIpStackCreateType `"dual_stack"`.

const PrivateIpStackCreateTypeV4 PrivateIpStackCreateType = "v4"

PrivateIpStackCreateTypeV4 represents the PrivateIpStackCreateType `"v4"`.

const PrivateIpStackCreateTypeV6 PrivateIpStackCreateType = "v6"

PrivateIpStackCreateTypeV6 represents the PrivateIpStackCreateType `"v6"`.

type PrivateIpStackCreateV4 added in v0.8.0

type PrivateIpStackCreateV4 struct {
	// Value is configuration for a network interface's IPv4 addressing.
	Value PrivateIpv4StackCreate `json:"value" yaml:"value"`
}

PrivateIpStackCreateV4 is a variant of PrivateIpStackCreate.

type PrivateIpStackCreateV6 added in v0.8.0

type PrivateIpStackCreateV6 struct {
	// Value is configuration for a network interface's IPv6 addressing.
	Value PrivateIpv6StackCreate `json:"value" yaml:"value"`
}

PrivateIpStackCreateV6 is a variant of PrivateIpStackCreate.

type PrivateIpStackDualStack added in v0.8.0

type PrivateIpStackDualStack struct {
	Value PrivateIpStackDualStackValue `json:"value" yaml:"value"`
}

PrivateIpStackDualStack is a variant of PrivateIpStack.

type PrivateIpStackDualStackValue added in v0.8.0

type PrivateIpStackDualStackValue struct {
	// V4 is the VPC-private IPv4 stack for a network interface
	V4 PrivateIpv4Stack `json:"v4" yaml:"v4"`
	// V6 is the VPC-private IPv6 stack for a network interface
	V6 PrivateIpv6Stack `json:"v6" yaml:"v6"`
}

PrivateIpStackDualStackValue is the type definition for a PrivateIpStackDualStackValue.

Required fields: - V4 - V6

type PrivateIpStackType added in v0.8.0

type PrivateIpStackType string

PrivateIpStackType is the type definition for a PrivateIpStackType.

const PrivateIpStackTypeDualStack PrivateIpStackType = "dual_stack"

PrivateIpStackTypeDualStack represents the PrivateIpStackType `"dual_stack"`.

const PrivateIpStackTypeV4 PrivateIpStackType = "v4"

PrivateIpStackTypeV4 represents the PrivateIpStackType `"v4"`.

const PrivateIpStackTypeV6 PrivateIpStackType = "v6"

PrivateIpStackTypeV6 represents the PrivateIpStackType `"v6"`.

type PrivateIpStackV4 added in v0.8.0

type PrivateIpStackV4 struct {
	// Value is the VPC-private IPv4 stack for a network interface
	Value PrivateIpv4Stack `json:"value" yaml:"value"`
}

PrivateIpStackV4 is a variant of PrivateIpStack.

type PrivateIpStackV6 added in v0.8.0

type PrivateIpStackV6 struct {
	// Value is the VPC-private IPv6 stack for a network interface
	Value PrivateIpv6Stack `json:"value" yaml:"value"`
}

PrivateIpStackV6 is a variant of PrivateIpStack.

type PrivateIpv4Config added in v0.8.0

type PrivateIpv4Config struct {
	// Ip is vPC-private IP address.
	Ip string `json:"ip" yaml:"ip"`
	// Subnet is the IP subnet.
	Subnet Ipv4Net `json:"subnet" yaml:"subnet"`
	// TransitIps is additional networks on which the interface can send / receive traffic.
	TransitIps []Ipv4Net `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
}

PrivateIpv4Config is vPC-private IPv4 configuration for a network interface.

Required fields: - Ip - Subnet

type PrivateIpv4Stack added in v0.8.0

type PrivateIpv4Stack struct {
	// Ip is the VPC-private IPv4 address for the interface.
	Ip string `json:"ip" yaml:"ip"`
	// TransitIps is a set of additional IPv4 networks that this interface may send and receive
	// traffic on.
	TransitIps []Ipv4Net `json:"transit_ips" yaml:"transit_ips"`
}

PrivateIpv4Stack is the VPC-private IPv4 stack for a network interface

Required fields: - Ip - TransitIps

type PrivateIpv4StackCreate added in v0.8.0

type PrivateIpv4StackCreate struct {
	// Ip is the VPC-private address to assign to the interface.
	Ip Ipv4Assignment `json:"ip" yaml:"ip"`
	// TransitIps is additional IP networks the interface can send / receive on.
	TransitIps []Ipv4Net `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
}

PrivateIpv4StackCreate is configuration for a network interface's IPv4 addressing.

Required fields: - Ip

type PrivateIpv6Config added in v0.8.0

type PrivateIpv6Config struct {
	// Ip is vPC-private IP address.
	Ip string `json:"ip" yaml:"ip"`
	// Subnet is the IP subnet.
	Subnet Ipv6Net `json:"subnet" yaml:"subnet"`
	// TransitIps is additional networks on which the interface can send / receive traffic.
	TransitIps []Ipv6Net `json:"transit_ips" yaml:"transit_ips"`
}

PrivateIpv6Config is vPC-private IPv6 configuration for a network interface.

Required fields: - Ip - Subnet - TransitIps

type PrivateIpv6Stack added in v0.8.0

type PrivateIpv6Stack struct {
	// Ip is the VPC-private IPv6 address for the interface.
	Ip string `json:"ip" yaml:"ip"`
	// TransitIps is a set of additional IPv6 networks that this interface may send and receive
	// traffic on.
	TransitIps []Ipv6Net `json:"transit_ips" yaml:"transit_ips"`
}

PrivateIpv6Stack is the VPC-private IPv6 stack for a network interface

Required fields: - Ip - TransitIps

type PrivateIpv6StackCreate added in v0.8.0

type PrivateIpv6StackCreate struct {
	// Ip is the VPC-private address to assign to the interface.
	Ip Ipv6Assignment `json:"ip" yaml:"ip"`
	// TransitIps is additional IP networks the interface can send / receive on.
	TransitIps []Ipv6Net `json:"transit_ips,omitempty" yaml:"transit_ips,omitempty"`
}

PrivateIpv6StackCreate is configuration for a network interface's IPv6 addressing.

Required fields: - Ip

type Probe added in v0.2.0

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

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" yaml:"description"`
	// 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" yaml:"name"`
	// PoolSelector is pool to allocate from.
	PoolSelector PoolSelector `json:"pool_selector,omitempty" yaml:"pool_selector,omitempty"`
	Sled         string       `json:"sled"                    yaml:"sled"`
}

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" yaml:"first_port"`
	Ip        string              `json:"ip"         yaml:"ip"`
	Kind      ProbeExternalIpKind `json:"kind"       yaml:"kind"`
	LastPort  *int                `json:"last_port"  yaml:"last_port"`
}

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" yaml:"external_ips"`
	Id          string            `json:"id"           yaml:"id"`
	// Interface is information required to construct a virtual network interface
	Interface NetworkInterface `json:"interface" yaml:"interface"`
	// 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" yaml:"name"`
	Sled string `json:"sled" yaml:"sled"`
}

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" yaml:"items"`
	// 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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

Project is view of a Project

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

type ProjectCreate

type ProjectCreate struct {
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"name"`
}

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 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" yaml:"items"`
	// 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 ProjectRoleLimitedCollaborator ProjectRole = "limited_collaborator"

ProjectRoleLimitedCollaborator represents the ProjectRole `"limited_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" yaml:"role_assignments"`
}

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" yaml:"identity_id"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type" yaml:"identity_type"`
	RoleName     ProjectRole  `json:"role_name"     yaml:"role_name"`
}

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 []float64 `json:"desired_marker_positions" yaml:"desired_marker_positions"`
	// MarkerHeights is the heights of the markers.
	MarkerHeights []float64 `json:"marker_heights" yaml:"marker_heights"`
	// 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 []uint64 `json:"marker_positions" yaml:"marker_positions"`
	// P is the p value for the quantile.
	P float64 `json:"p" yaml:"p"`
}

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" yaml:"id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

Rack is view of a 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 RackMembershipAbortParams added in v0.8.0

type RackMembershipAbortParams struct {
	RackId string `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
}

RackMembershipAbortParams is the request parameters for RackMembershipAbort

Required fields: - RackId

func (*RackMembershipAbortParams) Validate added in v0.8.0

func (p *RackMembershipAbortParams) Validate() error

Validate verifies all required fields for RackMembershipAbortParams are set

type RackMembershipAddSledsParams added in v0.8.0

type RackMembershipAddSledsParams struct {
	RackId string                         `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	Body   *RackMembershipAddSledsRequest `json:"body,omitempty"    yaml:"body,omitempty"`
}

RackMembershipAddSledsParams is the request parameters for RackMembershipAddSleds

Required fields: - RackId - Body

func (*RackMembershipAddSledsParams) Validate added in v0.8.0

func (p *RackMembershipAddSledsParams) Validate() error

Validate verifies all required fields for RackMembershipAddSledsParams are set

type RackMembershipAddSledsRequest added in v0.8.0

type RackMembershipAddSledsRequest struct {
	SledIds []BaseboardId `json:"sled_ids" yaml:"sled_ids"`
}

RackMembershipAddSledsRequest is the type definition for a RackMembershipAddSledsRequest.

Required fields: - SledIds

type RackMembershipChangeState added in v0.8.0

type RackMembershipChangeState string

RackMembershipChangeState is the type definition for a RackMembershipChangeState.

const RackMembershipChangeStateAborted RackMembershipChangeState = "aborted"

RackMembershipChangeStateAborted represents the RackMembershipChangeState `"aborted"`.

const RackMembershipChangeStateCommitted RackMembershipChangeState = "committed"

RackMembershipChangeStateCommitted represents the RackMembershipChangeState `"committed"`.

const RackMembershipChangeStateInProgress RackMembershipChangeState = "in_progress"

RackMembershipChangeStateInProgress represents the RackMembershipChangeState `"in_progress"`.

type RackMembershipStatus added in v0.8.0

type RackMembershipStatus struct {
	// Members is all members of the rack for this version
	Members       []BaseboardId             `json:"members"                  yaml:"members"`
	RackId        string                    `json:"rack_id"                  yaml:"rack_id"`
	State         RackMembershipChangeState `json:"state"                    yaml:"state"`
	TimeAborted   *time.Time                `json:"time_aborted,omitempty"   yaml:"time_aborted,omitempty"`
	TimeCommitted *time.Time                `json:"time_committed,omitempty" yaml:"time_committed,omitempty"`
	TimeCreated   *time.Time                `json:"time_created"             yaml:"time_created"`
	// UnacknowledgedMembers is all members that have not yet confirmed this membership version
	UnacknowledgedMembers []BaseboardId `json:"unacknowledged_members" yaml:"unacknowledged_members"`
	// Version is version that uniquely identifies the rack membership at a given point in time
	Version RackMembershipVersion `json:"version" yaml:"version"`
}

RackMembershipStatus is status of the rack membership uniquely identified by the (rack_id, version) pair

Required fields: - Members - RackId - State - TimeCreated - UnacknowledgedMembers - Version

type RackMembershipStatusParams added in v0.8.0

type RackMembershipStatusParams struct {
	RackId  string                `json:"rack_id,omitempty" yaml:"rack_id,omitempty"`
	Version RackMembershipVersion `json:"version,omitempty" yaml:"version,omitempty"`
}

RackMembershipStatusParams is the request parameters for RackMembershipStatus

Required fields: - RackId

func (*RackMembershipStatusParams) Validate added in v0.8.0

func (p *RackMembershipStatusParams) Validate() error

Validate verifies all required fields for RackMembershipStatusParams are set

type RackMembershipVersion added in v0.8.0

type RackMembershipVersion uint64

RackMembershipVersion is a unique, monotonically increasing number representing the set of active sleds in a rack at a given point in time.

type RackResultsPage

type RackResultsPage struct {
	// Items is list of items on this page of results
	Items []Rack `json:"items" yaml:"items"`
	// 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 Request added in v0.7.0

type Request struct {
	Method string
	Path   string
	Body   io.Reader
	Params map[string]string
	Query  map[string]string
}

type Route added in v0.0.23

type Route struct {
	// Dst is the route destination.
	Dst IpNet `json:"dst" yaml:"dst"`
	// Gw is the route gateway.
	Gw string `json:"gw" yaml:"gw"`
	// RibPriority is route RIB priority. Higher priority indicates 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 {
	// LinkName is link 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.
	LinkName Name `json:"link_name" yaml:"link_name"`
	// Routes is the set of routes assigned to a switch port.
	Routes []Route `json:"routes" yaml:"routes"`
}

RouteConfig is route configuration data associated with a switch port configuration.

Required fields: - LinkName - Routes

type RouteDestination

type RouteDestination struct {
	Value routeDestinationVariant
}

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.

func NewRouteDestination added in v0.8.0

func NewRouteDestination(t RouteDestinationType, value string) (RouteDestination, error)

NewRouteDestination creates a RouteDestination from a type constant and string value.

func (RouteDestination) AsIp added in v0.8.0

AsIp attempts to convert the RouteDestination to a RouteDestinationIp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteDestination) AsIpNet added in v0.8.0

AsIpNet attempts to convert the RouteDestination to a RouteDestinationIpNet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteDestination) AsSubnet added in v0.8.0

func (v RouteDestination) AsSubnet() (*RouteDestinationSubnet, bool)

AsSubnet attempts to convert the RouteDestination to a RouteDestinationSubnet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteDestination) AsVpc added in v0.8.0

AsVpc attempts to convert the RouteDestination to a RouteDestinationVpc. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteDestination) MarshalJSON added in v0.8.0

func (v RouteDestination) MarshalJSON() ([]byte, error)

func (RouteDestination) String added in v0.8.0

func (v RouteDestination) String() string

String returns the string representation of the RouteDestination's value. Returns an empty string if no variant is set.

func (RouteDestination) Type

func (*RouteDestination) UnmarshalJSON added in v0.8.0

func (v *RouteDestination) UnmarshalJSON(data []byte) error

type RouteDestinationIp

type RouteDestinationIp struct {
	Value string `json:"value" yaml:"value"`
}

RouteDestinationIp is a variant of RouteDestination.

type RouteDestinationIpNet

type RouteDestinationIpNet struct {
	Value IpNet `json:"value" yaml:"value"`
}

RouteDestinationIpNet is a variant of RouteDestination.

type RouteDestinationSubnet

type RouteDestinationSubnet struct {
	// 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" yaml:"value"`
}

RouteDestinationSubnet is a variant of RouteDestination.

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 {
	// 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" yaml:"value"`
}

RouteDestinationVpc is a variant of RouteDestination.

type RouteTarget

type RouteTarget struct {
	Value routeTargetVariant
}

RouteTarget is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.

func NewRouteTarget added in v0.8.0

func NewRouteTarget(t RouteTargetType, value string) (RouteTarget, error)

NewRouteTarget creates a RouteTarget from a type constant and string value. For RouteTargetTypeDrop, the value is ignored.

func (RouteTarget) AsDrop added in v0.8.0

func (v RouteTarget) AsDrop() (*RouteTargetDrop, bool)

AsDrop attempts to convert the RouteTarget to a RouteTargetDrop. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) AsInstance added in v0.8.0

func (v RouteTarget) AsInstance() (*RouteTargetInstance, bool)

AsInstance attempts to convert the RouteTarget to a RouteTargetInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) AsInternetGateway added in v0.8.0

func (v RouteTarget) AsInternetGateway() (*RouteTargetInternetGateway, bool)

AsInternetGateway attempts to convert the RouteTarget to a RouteTargetInternetGateway. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) AsIp added in v0.8.0

func (v RouteTarget) AsIp() (*RouteTargetIp, bool)

AsIp attempts to convert the RouteTarget to a RouteTargetIp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) AsSubnet added in v0.8.0

func (v RouteTarget) AsSubnet() (*RouteTargetSubnet, bool)

AsSubnet attempts to convert the RouteTarget to a RouteTargetSubnet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) AsVpc added in v0.8.0

func (v RouteTarget) AsVpc() (*RouteTargetVpc, bool)

AsVpc attempts to convert the RouteTarget to a RouteTargetVpc. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (RouteTarget) MarshalJSON added in v0.8.0

func (v RouteTarget) MarshalJSON() ([]byte, error)

func (RouteTarget) String added in v0.8.0

func (v RouteTarget) String() string

String returns the string representation of the RouteTarget's value. Returns an empty string if no variant is set or for Drop targets.

func (RouteTarget) Type

func (v RouteTarget) Type() RouteTargetType

func (*RouteTarget) UnmarshalJSON added in v0.8.0

func (v *RouteTarget) UnmarshalJSON(data []byte) error

type RouteTargetDrop added in v0.2.0

type RouteTargetDrop struct {
}

RouteTargetDrop is a variant of RouteTarget.

type RouteTargetInstance

type RouteTargetInstance struct {
	// 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" yaml:"value"`
}

RouteTargetInstance is a variant of RouteTarget.

type RouteTargetInternetGateway

type RouteTargetInternetGateway struct {
	// 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" yaml:"value"`
}

RouteTargetInternetGateway is a variant of RouteTarget.

type RouteTargetIp

type RouteTargetIp struct {
	Value string `json:"value" yaml:"value"`
}

RouteTargetIp is a variant of RouteTarget.

type RouteTargetSubnet

type RouteTargetSubnet struct {
	// 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" yaml:"value"`
}

RouteTargetSubnet is a variant of RouteTarget.

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 {
	// 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" yaml:"value"`
}

RouteTargetVpc is a variant of RouteTarget.

type RouterRoute

type RouterRoute struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Destination is selects which traffic this routing rule will apply to
	Destination RouteDestination `json:"destination" yaml:"destination"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Kind is describes the kind of router. Set at creation. `read-only`
	Kind RouterRouteKind `json:"kind" yaml:"kind"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Target is the location that matched packets should be forwarded to
	Target RouteTarget `json:"target" yaml:"target"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VpcRouterId is the ID of the VPC Router to which the route belongs
	VpcRouterId string `json:"vpc_router_id" yaml:"vpc_router_id"`
}

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" yaml:"description"`
	// Destination is selects which traffic this routing rule will apply to.
	Destination RouteDestination `json:"destination" yaml:"destination"`
	// 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" yaml:"name"`
	// Target is the location that matched packets should be forwarded to.
	Target RouteTarget `json:"target" yaml:"target"`
}

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" yaml:"items"`
	// 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"    yaml:"destination"`
	Name        Name             `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is the location that matched packets should be forwarded to.
	Target RouteTarget `json:"target" yaml:"target"`
}

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" yaml:"acs_url"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"id"`
	// IdpEntityId is idP's entity id
	IdpEntityId string `json:"idp_entity_id" yaml:"idp_entity_id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// 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" yaml:"slo_url"`
	// SpClientId is sP's client id
	SpClientId string `json:"sp_client_id" yaml:"sp_client_id"`
	// TechnicalContactEmail is customer's technical contact for saml configuration
	TechnicalContactEmail string `json:"technical_contact_email" yaml:"technical_contact_email"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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"     yaml:"acs_url"`
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"idp_entity_id"`
	// IdpMetadataSource is the source of an identity provider metadata descriptor
	IdpMetadataSource IdpMetadataSource `json:"idp_metadata_source" yaml:"idp_metadata_source"`
	// 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" yaml:"name"`
	// SigningKeypair is request signing key pair
	SigningKeypair DerEncodedKeyPair `json:"signing_keypair,omitzero" yaml:"signing_keypair,omitzero"`
	// SloUrl is service provider endpoint where the IdP should send log out requests
	SloUrl string `json:"slo_url" yaml:"slo_url"`
	// SpClientId is sP's client ID
	SpClientId string `json:"sp_client_id" yaml:"sp_client_id"`
	// TechnicalContactEmail is customer's technical contact for SAML configuration
	TechnicalContactEmail string `json:"technical_contact_email" yaml:"technical_contact_email"`
}

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

func (*SamlIdentityProviderViewParams) Validate added in v0.0.23

func (p *SamlIdentityProviderViewParams) Validate() error

Validate verifies all required fields for SamlIdentityProviderViewParams are set

type ScimClientBearerToken added in v0.7.0

type ScimClientBearerToken struct {
	Id          string     `json:"id"                     yaml:"id"`
	TimeCreated *time.Time `json:"time_created"           yaml:"time_created"`
	TimeExpires *time.Time `json:"time_expires,omitempty" yaml:"time_expires,omitempty"`
}

ScimClientBearerToken is the type definition for a ScimClientBearerToken.

Required fields: - Id - TimeCreated

type ScimClientBearerTokenValue added in v0.7.0

type ScimClientBearerTokenValue struct {
	BearerToken string     `json:"bearer_token"           yaml:"bearer_token"`
	Id          string     `json:"id"                     yaml:"id"`
	TimeCreated *time.Time `json:"time_created"           yaml:"time_created"`
	TimeExpires *time.Time `json:"time_expires,omitempty" yaml:"time_expires,omitempty"`
}

ScimClientBearerTokenValue is the POST response is the only time the generated bearer token is returned to the client.

Required fields: - BearerToken - Id - TimeCreated

type ScimTokenCreateParams added in v0.7.0

type ScimTokenCreateParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

ScimTokenCreateParams is the request parameters for ScimTokenCreate

Required fields: - Silo

func (*ScimTokenCreateParams) Validate added in v0.7.0

func (p *ScimTokenCreateParams) Validate() error

Validate verifies all required fields for ScimTokenCreateParams are set

type ScimTokenDeleteParams added in v0.7.0

type ScimTokenDeleteParams struct {
	TokenId string   `json:"token_id,omitempty" yaml:"token_id,omitempty"`
	Silo    NameOrId `json:"silo,omitempty"     yaml:"silo,omitempty"`
}

ScimTokenDeleteParams is the request parameters for ScimTokenDelete

Required fields: - TokenId - Silo

func (*ScimTokenDeleteParams) Validate added in v0.7.0

func (p *ScimTokenDeleteParams) Validate() error

Validate verifies all required fields for ScimTokenDeleteParams are set

type ScimTokenListParams added in v0.7.0

type ScimTokenListParams struct {
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

ScimTokenListParams is the request parameters for ScimTokenList

Required fields: - Silo

func (*ScimTokenListParams) Validate added in v0.7.0

func (p *ScimTokenListParams) Validate() error

Validate verifies all required fields for ScimTokenListParams are set

type ScimTokenViewParams added in v0.7.0

type ScimTokenViewParams struct {
	TokenId string   `json:"token_id,omitempty" yaml:"token_id,omitempty"`
	Silo    NameOrId `json:"silo,omitempty"     yaml:"silo,omitempty"`
}

ScimTokenViewParams is the request parameters for ScimTokenView

Required fields: - TokenId - Silo

func (*ScimTokenViewParams) Validate added in v0.7.0

func (p *ScimTokenViewParams) Validate() error

Validate verifies all required fields for ScimTokenViewParams are set

type ServiceIcmpConfig added in v0.6.0

type ServiceIcmpConfig struct {
	// Enabled is when enabled, Nexus is able to receive ICMP Destination Unreachable type 3 (port
	// unreachable) and type 4 (fragmentation needed), Redirect, and Time Exceeded messages. These
	// enable Nexus to perform Path MTU discovery and better cope with fragmentation issues.
	// Otherwise all inbound ICMP traffic will be dropped.
	Enabled *bool `json:"enabled" yaml:"enabled"`
}

ServiceIcmpConfig is configuration of inbound ICMP allowed by API services.

Required fields: - Enabled

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 SetTargetReleaseParams added in v0.4.0

type SetTargetReleaseParams struct {
	// SystemVersion is version of the system software to make the target release.
	SystemVersion string `json:"system_version" yaml:"system_version"`
}

SetTargetReleaseParams is parameters for PUT requests to `/v1/system/update/target-release`.

Required fields: - SystemVersion

type Silo

type Silo struct {
	// AdminGroupName is optionally, silos can have a group name that is automatically granted the
	// silo admin role.
	//
	AdminGroupName string `json:"admin_group_name,omitempty" yaml:"admin_group_name,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// 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" yaml:"discoverable"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// IdentityMode is how users and groups are managed in this Silo
	IdentityMode SiloIdentityMode `json:"identity_mode" yaml:"identity_mode"`
	// 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" yaml:"mapped_fleet_roles"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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 SiloAuthSettings added in v0.5.0

type SiloAuthSettings struct {
	// DeviceTokenMaxTtlSeconds is maximum lifetime of a device token in seconds. If set to null,
	// users will be
	// able to create tokens that do not expire.
	DeviceTokenMaxTtlSeconds *int   `json:"device_token_max_ttl_seconds,omitempty" yaml:"device_token_max_ttl_seconds,omitempty"`
	SiloId                   string `json:"silo_id"                                yaml:"silo_id"`
}

SiloAuthSettings is view of silo authentication settings

Required fields: - SiloId

type SiloAuthSettingsUpdate added in v0.5.0

type SiloAuthSettingsUpdate struct {
	// DeviceTokenMaxTtlSeconds is maximum lifetime of a device token in seconds. If set to null,
	// users will be
	// able to create tokens that do not expire.
	DeviceTokenMaxTtlSeconds *int `json:"device_token_max_ttl_seconds" yaml:"device_token_max_ttl_seconds"`
}

SiloAuthSettingsUpdate is updateable properties of a silo's settings.

Required fields: - DeviceTokenMaxTtlSeconds

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"                yaml:"description"`
	Discoverable   *bool  `json:"discoverable"               yaml:"discoverable"`
	// IdentityMode is describes how identities are managed and users are authenticated in this Silo
	IdentityMode SiloIdentityMode `json:"identity_mode" yaml:"identity_mode"`
	// 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" yaml:"name"`
	// 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" yaml:"quotas"`
	// 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" yaml:"tls_certificates"`
}

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"`.

const SiloIdentityModeSamlScim SiloIdentityMode = "saml_scim"

SiloIdentityModeSamlScim represents the SiloIdentityMode `"saml_scim"`.

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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// IpVersion is the IP version for the pool.
	IpVersion IpVersion `json:"ip_version" yaml:"ip_version"`
	// 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.
	//
	// A silo can have at most one default pool per combination of pool type (unicast or multicast)
	// and IP version (IPv4
	// or IPv6), allowing up to 4 default pools total.
	IsDefault *bool `json:"is_default" yaml:"is_default"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// PoolType is type of IP pool (unicast or multicast).
	PoolType IpPoolType `json:"pool_type" yaml:"pool_type"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

SiloIpPool is an IP pool in the context of a silo

Required fields: - Description - Id - IpVersion - IsDefault - Name - PoolType - 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" yaml:"items"`
	// 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" yaml:"cpus"`
	// Memory is amount of memory in bytes
	Memory ByteCount `json:"memory"  yaml:"memory"`
	SiloId string    `json:"silo_id" yaml:"silo_id"`
	// Storage is amount of disk storage in bytes
	Storage ByteCount `json:"storage" yaml:"storage"`
}

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" yaml:"cpus"`
	// Memory is the amount of RAM (in bytes) available for running instances in the Silo
	Memory ByteCount `json:"memory" yaml:"memory"`
	// Storage is the amount of storage (in bytes) available for disks or snapshots
	Storage ByteCount `json:"storage" yaml:"storage"`
}

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" yaml:"items"`
	// 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" yaml:"items"`
	// 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 SiloRoleLimitedCollaborator SiloRole = "limited_collaborator"

SiloRoleLimitedCollaborator represents the SiloRole `"limited_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" yaml:"role_assignments"`
}

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" yaml:"identity_id"`
	// IdentityType is describes what kind of identity is described by an id
	IdentityType IdentityType `json:"identity_type" yaml:"identity_type"`
	RoleName     SiloRole     `json:"role_name"     yaml:"role_name"`
}

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 SiloSubnetPool added in v0.8.0

type SiloSubnetPool struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// IpVersion is the IP version for the pool.
	IpVersion IpVersion `json:"ip_version" yaml:"ip_version"`
	// IsDefault is when a pool is the default for a silo, external subnet allocations will come
	// from that pool
	// when no other pool is specified.
	//
	// A silo can have at most one default pool per IP version (IPv4 or IPv6), allowing up to 2
	// default pools total.
	//
	IsDefault *bool `json:"is_default" yaml:"is_default"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

SiloSubnetPool is a subnet pool in the context of a silo

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

type SiloSubnetPoolListParams added in v0.8.0

type SiloSubnetPoolListParams 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"`
}

SiloSubnetPoolListParams is the request parameters for SiloSubnetPoolList

Required fields: - Silo

func (*SiloSubnetPoolListParams) Validate added in v0.8.0

func (p *SiloSubnetPoolListParams) Validate() error

Validate verifies all required fields for SiloSubnetPoolListParams are set

type SiloSubnetPoolResultsPage added in v0.8.0

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

SiloSubnetPoolResultsPage is a single page of results

Required fields: - Items

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" yaml:"allocated"`
	// Provisioned is accounts for the total resources allocated by the silo, including CPU and
	// memory for running
	// instances and storage for disks and snapshots.
	//
	// Note that CPU and memory resources associated with stopped instances are not counted here.
	Provisioned VirtualResourceCounts `json:"provisioned" yaml:"provisioned"`
	SiloId      string                `json:"silo_id"     yaml:"silo_id"`
	// 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" yaml:"silo_name"`
}

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" yaml:"items"`
	// 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" yaml:"baseboard"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Policy is the operator-defined policy of a sled.
	Policy SledPolicy `json:"policy" yaml:"policy"`
	// RackId is the rack to which this Sled is currently attached
	RackId string `json:"rack_id" yaml:"rack_id"`
	// State is the current state of the sled.
	State SledState `json:"state" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// UsableHardwareThreads is the number of hardware threads which can execute on this sled
	UsableHardwareThreads *int `json:"usable_hardware_threads" yaml:"usable_hardware_threads"`
	// UsablePhysicalRam is amount of RAM which may be used by the Sled's OS
	UsablePhysicalRam ByteCount `json:"usable_physical_ram" yaml:"usable_physical_ram"`
}

Sled is an operator's view of a Sled.

Required fields: - Baseboard - Id - Policy - RackId - State - TimeCreated - TimeModified - UsableHardwareThreads - UsablePhysicalRam

type SledInstance added in v0.0.23

type SledInstance struct {
	ActiveSledId string `json:"active_sled_id" yaml:"active_sled_id"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id          string `json:"id"                     yaml:"id"`
	Memory      *int   `json:"memory"                 yaml:"memory"`
	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"  yaml:"name"`
	Ncpus *int `json:"ncpus" yaml:"ncpus"`
	// 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" yaml:"project_name"`
	// 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" yaml:"silo_name"`
	// 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" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"items"`
	// 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 {
	Value sledPolicyVariant
}

SledPolicy is the operator-defined policy of a sled.

func (SledPolicy) AsExpunged added in v0.8.0

func (v SledPolicy) AsExpunged() (*SledPolicyExpunged, bool)

AsExpunged attempts to convert the SledPolicy to a SledPolicyExpunged. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (SledPolicy) AsInService added in v0.8.0

func (v SledPolicy) AsInService() (*SledPolicyInService, bool)

AsInService attempts to convert the SledPolicy to a SledPolicyInService. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (SledPolicy) Kind added in v0.2.0

func (v SledPolicy) Kind() SledPolicyKind

func (SledPolicy) MarshalJSON added in v0.8.0

func (v SledPolicy) MarshalJSON() ([]byte, error)

func (*SledPolicy) UnmarshalJSON added in v0.8.0

func (v *SledPolicy) UnmarshalJSON(data []byte) error

type SledPolicyExpunged added in v0.2.0

type SledPolicyExpunged struct {
}

SledPolicyExpunged is a variant of SledPolicy.

type SledPolicyInService added in v0.2.0

type SledPolicyInService struct {
	// ProvisionPolicy is determines whether new resources can be provisioned onto the sled.
	ProvisionPolicy SledProvisionPolicy `json:"provision_policy" yaml:"provision_policy"`
}

SledPolicyInService is a variant of SledPolicy.

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" yaml:"state"`
}

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" yaml:"new_state"`
	// OldState is the old provision state.
	OldState SledProvisionPolicy `json:"old_state" yaml:"old_state"`
}

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" yaml:"items"`
	// 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" yaml:"description"`
	DiskId      string `json:"disk_id"     yaml:"disk_id"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name"       yaml:"name"`
	ProjectId string `json:"project_id" yaml:"project_id"`
	// Size is byte count to express memory or storage capacity.
	Size  ByteCount     `json:"size"  yaml:"size"`
	State SnapshotState `json:"state" yaml:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"description"`
	// Disk is the disk to be snapshotted
	Disk NameOrId `json:"disk" yaml:"disk"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key" yaml:"public_key"`
	// SiloUserId is the user to whom this key belongs
	SiloUserId string `json:"silo_user_id" yaml:"silo_user_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"description"`
	// 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" yaml:"name"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key" yaml:"public_key"`
}

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" yaml:"items"`
	// 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 SubnetPool added in v0.8.0

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

SubnetPool is a pool of subnets for external subnet allocation

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

type SubnetPoolCreate added in v0.8.0

type SubnetPoolCreate struct {
	Description string `json:"description" yaml:"description"`
	// IpVersion is the IP version for this pool (IPv4 or IPv6). All subnets in the pool must match
	// this version.
	//
	IpVersion IpVersion `json:"ip_version" yaml:"ip_version"`
	// 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" yaml:"name"`
}

SubnetPoolCreate is create a subnet pool

Required fields: - Description - IpVersion - Name

type SubnetPoolLinkSilo added in v0.8.0

type SubnetPoolLinkSilo struct {
	// IsDefault is whether this is the default subnet pool for the silo. When true, external subnet
	// allocations that
	// don't specify a pool use this one.
	IsDefault *bool `json:"is_default" yaml:"is_default"`
	// Silo is the silo to link
	Silo NameOrId `json:"silo" yaml:"silo"`
}

SubnetPoolLinkSilo is link a subnet pool to a silo

Required fields: - IsDefault - Silo

type SubnetPoolListParams added in v0.8.0

type SubnetPoolListParams 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"`
}

SubnetPoolListParams is the request parameters for SubnetPoolList

func (*SubnetPoolListParams) Validate added in v0.8.0

func (p *SubnetPoolListParams) Validate() error

Validate verifies all required fields for SubnetPoolListParams are set

type SubnetPoolMember added in v0.8.0

type SubnetPoolMember struct {
	// Id is iD of the pool member
	Id string `json:"id" yaml:"id"`
	// MaxPrefixLength is maximum prefix length for allocations from this subnet; a larger prefix
	// means smaller allocations
	// are allowed (e.g. a /24 prefix yields smaller subnet allocations than a /16 prefix).
	MaxPrefixLength *int `json:"max_prefix_length" yaml:"max_prefix_length"`
	// MinPrefixLength is minimum prefix length for allocations from this subnet; a smaller prefix
	// means larger allocations are allowed (e.g. a /16 prefix yields larger subnet allocations than
	// a /24 prefix).
	MinPrefixLength *int `json:"min_prefix_length" yaml:"min_prefix_length"`
	// Subnet is the subnet CIDR
	Subnet IpNet `json:"subnet" yaml:"subnet"`
	// SubnetPoolId is iD of the parent subnet pool
	SubnetPoolId string `json:"subnet_pool_id" yaml:"subnet_pool_id"`
	// TimeCreated is time the pool member was created.
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
}

SubnetPoolMember is a member (subnet) within a subnet pool

Required fields: - Id - MaxPrefixLength - MinPrefixLength - Subnet - SubnetPoolId - TimeCreated

type SubnetPoolMemberAdd added in v0.8.0

type SubnetPoolMemberAdd struct {
	// MaxPrefixLength is maximum prefix length for allocations from this subnet; a larger prefix
	// means smaller allocations
	// are allowed (e.g. a /24 prefix yields smaller subnet allocations than a /16 prefix).
	//
	// Valid values: 0-32 for IPv4, 0-128 for IPv6. Default if not specified is 32 for IPv4 and 128
	// for IPv6.
	MaxPrefixLength *int `json:"max_prefix_length,omitempty" yaml:"max_prefix_length,omitempty"`
	// MinPrefixLength is minimum prefix length for allocations from this subnet; a smaller prefix
	// means larger allocations are allowed (e.g. a /16 prefix yields larger subnet allocations than
	// a /24 prefix).
	//
	// Valid values: 0-32 for IPv4, 0-128 for IPv6. Default if not specified is equal to the
	// subnet's prefix length.
	//
	MinPrefixLength *int `json:"min_prefix_length,omitempty" yaml:"min_prefix_length,omitempty"`
	// Subnet is the subnet to add to the pool
	Subnet IpNet `json:"subnet" yaml:"subnet"`
}

SubnetPoolMemberAdd is add a member (subnet) to a subnet pool

Required fields: - Subnet

type SubnetPoolMemberRemove added in v0.8.0

type SubnetPoolMemberRemove struct {
	// Subnet is the subnet to remove from the pool. Must match an existing entry exactly.
	Subnet IpNet `json:"subnet" yaml:"subnet"`
}

SubnetPoolMemberRemove is remove a subnet from a pool

Required fields: - Subnet

type SubnetPoolMemberResultsPage added in v0.8.0

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

SubnetPoolMemberResultsPage is a single page of results

Required fields: - Items

type SubnetPoolResultsPage added in v0.8.0

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

SubnetPoolResultsPage is a single page of results

Required fields: - Items

type SubnetPoolSiloLink struct {
	IsDefault    *bool  `json:"is_default"     yaml:"is_default"`
	SiloId       string `json:"silo_id"        yaml:"silo_id"`
	SubnetPoolId string `json:"subnet_pool_id" yaml:"subnet_pool_id"`
}

SubnetPoolSiloLink is a link between a subnet pool and a silo

Required fields: - IsDefault - SiloId - SubnetPoolId

type SubnetPoolSiloLinkResultsPage added in v0.8.0

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

SubnetPoolSiloLinkResultsPage is a single page of results

Required fields: - Items

type SubnetPoolSiloUpdate added in v0.8.0

type SubnetPoolSiloUpdate struct {
	// IsDefault is whether this is the default subnet pool for the silo
	IsDefault *bool `json:"is_default" yaml:"is_default"`
}

SubnetPoolSiloUpdate is update a subnet pool's silo link

Required fields: - IsDefault

type SubnetPoolUpdate added in v0.8.0

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

SubnetPoolUpdate is update a subnet pool

type SubnetPoolUtilization added in v0.8.0

type SubnetPoolUtilization struct {
	// Capacity is the total number of addresses in the pool.
	Capacity float64 `json:"capacity" yaml:"capacity"`
	// Remaining is the number of remaining addresses in the pool.
	Remaining float64 `json:"remaining" yaml:"remaining"`
}

SubnetPoolUtilization is utilization of addresses in a subnet pool.

Note that both the count of remaining addresses and the total capacity are integers, reported as floating point numbers. This accommodates allocations larger than a 64-bit integer, which is common with IPv6 address spaces. With very large subnet pools (> 2**53 addresses), integer precision will be lost, in exchange for representing the entire range. In such a case the pool still has many available addresses.

Required fields: - Capacity - Remaining

type SubnetPoolViewParams added in v0.8.0

type SubnetPoolViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SubnetPoolViewParams is the request parameters for SubnetPoolView

Required fields: - Pool

func (*SubnetPoolViewParams) Validate added in v0.8.0

func (p *SubnetPoolViewParams) Validate() error

Validate verifies all required fields for SubnetPoolViewParams are set

type SupportBundleCreate added in v0.6.0

type SupportBundleCreate struct {
	// UserComment is user comment for the support bundle
	UserComment string `json:"user_comment,omitempty" yaml:"user_comment,omitempty"`
}

SupportBundleCreate is the type definition for a SupportBundleCreate.

type SupportBundleCreateParams added in v0.6.0

type SupportBundleCreateParams struct {
	Body *SupportBundleCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SupportBundleCreateParams is the request parameters for SupportBundleCreate

Required fields: - Body

func (*SupportBundleCreateParams) Validate added in v0.6.0

func (p *SupportBundleCreateParams) Validate() error

Validate verifies all required fields for SupportBundleCreateParams are set

type SupportBundleDeleteParams added in v0.3.0

type SupportBundleDeleteParams struct {
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
}

SupportBundleDeleteParams is the request parameters for SupportBundleDelete

Required fields: - BundleId

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 {
	Range    string `json:"range,omitempty"     yaml:"range,omitempty"`
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
	File     string `json:"file,omitempty"      yaml:"file,omitempty"`
}

SupportBundleDownloadFileParams is the request parameters for SupportBundleDownloadFile

Required fields: - BundleId - File

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 {
	Range    string `json:"range,omitempty"     yaml:"range,omitempty"`
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
}

SupportBundleDownloadParams is the request parameters for SupportBundleDownload

Required fields: - BundleId

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 {
	Range    string `json:"range,omitempty"     yaml:"range,omitempty"`
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
	File     string `json:"file,omitempty"      yaml:"file,omitempty"`
}

SupportBundleHeadFileParams is the request parameters for SupportBundleHeadFile

Required fields: - BundleId - File

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 {
	Range    string `json:"range,omitempty"     yaml:"range,omitempty"`
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
}

SupportBundleHeadParams is the request parameters for SupportBundleHead

Required fields: - BundleId

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 {
	Range    string `json:"range,omitempty"     yaml:"range,omitempty"`
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
}

SupportBundleIndexParams is the request parameters for SupportBundleIndex

Required fields: - BundleId

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                string             `json:"id"                           yaml:"id"`
	ReasonForCreation string             `json:"reason_for_creation"          yaml:"reason_for_creation"`
	ReasonForFailure  string             `json:"reason_for_failure,omitempty" yaml:"reason_for_failure,omitempty"`
	State             SupportBundleState `json:"state"                        yaml:"state"`
	TimeCreated       *time.Time         `json:"time_created"                 yaml:"time_created"`
	UserComment       string             `json:"user_comment,omitempty"       yaml:"user_comment,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" yaml:"items"`
	// 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    TimeAndIdSortMode `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 SupportBundleUpdate added in v0.6.0

type SupportBundleUpdate struct {
	// UserComment is user comment for the support bundle
	UserComment string `json:"user_comment,omitempty" yaml:"user_comment,omitempty"`
}

SupportBundleUpdate is the type definition for a SupportBundleUpdate.

type SupportBundleUpdateParams added in v0.6.0

type SupportBundleUpdateParams struct {
	BundleId string               `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
	Body     *SupportBundleUpdate `json:"body,omitempty"      yaml:"body,omitempty"`
}

SupportBundleUpdateParams is the request parameters for SupportBundleUpdate

Required fields: - BundleId - Body

func (*SupportBundleUpdateParams) Validate added in v0.6.0

func (p *SupportBundleUpdateParams) Validate() error

Validate verifies all required fields for SupportBundleUpdateParams are set

type SupportBundleViewParams added in v0.3.0

type SupportBundleViewParams struct {
	BundleId string `json:"bundle_id,omitempty" yaml:"bundle_id,omitempty"`
}

SupportBundleViewParams is the request parameters for SupportBundleView

Required fields: - BundleId

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" yaml:"baseboard"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// RackId is the rack to which this Switch is currently attached
	RackId string `json:"rack_id" yaml:"rack_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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 map[string]BgpMessageHistory `json:"history" yaml:"history"`
	// Switch is switch this message history is associated with.
	Switch SwitchSlot `json:"switch" yaml:"switch"`
}

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" yaml:"id"`
	// InterfaceName is the name of this switch interface.
	InterfaceName Name `json:"interface_name" yaml:"interface_name"`
	// Kind is the switch interface kind.
	Kind SwitchInterfaceKind2 `json:"kind" yaml:"kind"`
	// PortSettingsId is the port settings object this switch interface configuration belongs to.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
	// V6Enabled is whether or not IPv6 is enabled on this interface.
	V6Enabled *bool `json:"v6_enabled" yaml:"v6_enabled"`
}

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" yaml:"kind"`
	// LinkName is link 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.
	LinkName Name `json:"link_name" yaml:"link_name"`
	// V6Enabled is whether or not IPv6 is enabled.
	V6Enabled *bool `json:"v6_enabled" yaml:"v6_enabled"`
}

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 - LinkName - V6Enabled

type SwitchInterfaceKind added in v0.0.23

type SwitchInterfaceKind struct {
	Value switchInterfaceKindVariant
}

SwitchInterfaceKind is indicates the kind for a switch interface.

func (SwitchInterfaceKind) AsLoopback added in v0.8.0

AsLoopback attempts to convert the SwitchInterfaceKind to a SwitchInterfaceKindLoopback. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (SwitchInterfaceKind) AsPrimary added in v0.8.0

AsPrimary attempts to convert the SwitchInterfaceKind to a SwitchInterfaceKindPrimary. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (SwitchInterfaceKind) AsVlan added in v0.8.0

AsVlan attempts to convert the SwitchInterfaceKind to a SwitchInterfaceKindVlan. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (SwitchInterfaceKind) MarshalJSON added in v0.8.0

func (v SwitchInterfaceKind) MarshalJSON() ([]byte, error)

func (SwitchInterfaceKind) Type added in v0.0.23

func (*SwitchInterfaceKind) UnmarshalJSON added in v0.8.0

func (v *SwitchInterfaceKind) UnmarshalJSON(data []byte) error

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 {
}

SwitchInterfaceKindLoopback is a variant of SwitchInterfaceKind.

type SwitchInterfaceKindPrimary added in v0.0.23

type SwitchInterfaceKindPrimary struct {
}

SwitchInterfaceKindPrimary is a variant of SwitchInterfaceKind.

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 {
	// 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" yaml:"vid"`
}

SwitchInterfaceKindVlan is a variant of SwitchInterfaceKind.

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 SwitchPort added in v0.0.23

type SwitchPort struct {
	// Id is the id of the switch port.
	Id string `json:"id" yaml:"id"`
	// PortName is the name of this switch port.
	PortName Name `json:"port_name" yaml:"port_name"`
	// 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" yaml:"rack_id"`
	// SwitchSlot is the slot of the switch within the rack of this switch port.
	SwitchSlot SwitchSlot `json:"switch_slot" yaml:"switch_slot"`
}

SwitchPort is a switch port represents a physical external port on a rack switch.

Required fields: - Id - PortName - RackId - SwitchSlot

type SwitchPortAddressView added in v0.5.0

type SwitchPortAddressView struct {
	// Address is the IP address and prefix.
	Address IpNet `json:"address" yaml:"address"`
	// AddressLotBlockId is the id of the address lot block this address is drawn from.
	AddressLotBlockId string `json:"address_lot_block_id" yaml:"address_lot_block_id"`
	// AddressLotId is the id of the address lot this address is drawn from.
	AddressLotId string `json:"address_lot_id" yaml:"address_lot_id"`
	// AddressLotName is the name of the address lot this address is drawn from.
	AddressLotName Name `json:"address_lot_name" yaml:"address_lot_name"`
	// InterfaceName is the interface name this address belongs to.
	InterfaceName Name `json:"interface_name" yaml:"interface_name"`
	// PortSettingsId is the port settings object this address configuration belongs to.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
	// VlanId is an optional VLAN ID
	VlanId *int `json:"vlan_id,omitempty" yaml:"vlan_id,omitempty"`
}

SwitchPortAddressView is an IP address configuration for a port settings object.

Required fields: - Address - AddressLotBlockId - AddressLotId - AddressLotName - 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" yaml:"port_settings"`
}

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" yaml:"geometry"`
	// PortSettingsId is the id of the port settings object this configuration belongs to.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
}

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" yaml:"geometry"`
}

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" yaml:"autoneg"`
	// 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 Name `json:"link_name" yaml:"link_name"`
	// LldpLinkConfig is the link-layer discovery protocol service configuration for this link.
	LldpLinkConfig *LldpLinkConfig `json:"lldp_link_config,omitempty" yaml:"lldp_link_config,omitempty"`
	// Mtu is the maximum transmission unit for this link.
	Mtu *int `json:"mtu" yaml:"mtu"`
	// PortSettingsId is the port settings this link configuration belongs to.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
	// Speed is the configured speed of the link.
	Speed LinkSpeed `json:"speed" yaml:"speed"`
	// TxEqConfig is the tx_eq configuration for this link.
	TxEqConfig *TxEqConfig2 `json:"tx_eq_config,omitempty" yaml:"tx_eq_config,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" yaml:"items"`
	// 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" yaml:"dst"`
	// Gw is the route's gateway address.
	Gw string `json:"gw" yaml:"gw"`
	// InterfaceName is the interface name this route configuration is assigned to.
	InterfaceName Name `json:"interface_name" yaml:"interface_name"`
	// PortSettingsId is the port settings object this route configuration belongs to.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
	// RibPriority is route RIB priority. Higher priority indicates precedence 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 {
	// Addresses is layer 3 IP address settings.
	Addresses []SwitchPortAddressView `json:"addresses" yaml:"addresses"`
	// BgpPeers is bGP peer settings.
	BgpPeers []BgpPeer `json:"bgp_peers" yaml:"bgp_peers"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Groups is switch port settings included from other switch port settings groups.
	Groups []SwitchPortSettingsGroups `json:"groups" yaml:"groups"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Interfaces is layer 3 interface settings.
	Interfaces []SwitchInterfaceConfig `json:"interfaces" yaml:"interfaces"`
	// Links is layer 2 link settings.
	Links []SwitchPortLinkConfig `json:"links" yaml:"links"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Port is layer 1 physical port settings.
	Port SwitchPortConfig `json:"port" yaml:"port"`
	// Routes is iP route settings.
	Routes []SwitchPortRouteConfig `json:"routes" yaml:"routes"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VlanInterfaces is vlan interface settings.
	VlanInterfaces []SwitchVlanInterfaceConfig `json:"vlan_interfaces" yaml:"vlan_interfaces"`
}

SwitchPortSettings 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 - Description - Groups - Id - Interfaces - Links - Name - Port - Routes - TimeCreated - TimeModified - VlanInterfaces

type SwitchPortSettingsCreate added in v0.0.23

type SwitchPortSettingsCreate struct {
	// Addresses is address configurations.
	Addresses []AddressConfig `json:"addresses" yaml:"addresses"`
	// BgpPeers is bGP peer configurations.
	BgpPeers    []BgpPeerConfig `json:"bgp_peers,omitempty" yaml:"bgp_peers,omitempty"`
	Description string          `json:"description"         yaml:"description"`
	Groups      []NameOrId      `json:"groups,omitzero"     yaml:"groups,omitzero"`
	// Interfaces is interface configurations.
	Interfaces []SwitchInterfaceConfigCreate `json:"interfaces,omitempty" yaml:"interfaces,omitempty"`
	// Links is link configurations.
	Links []LinkConfigCreate `json:"links" yaml:"links"`
	// 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" yaml:"name"`
	// PortConfig is physical switch port configuration.
	PortConfig SwitchPortConfigCreate `json:"port_config" yaml:"port_config"`
	// Routes is route configurations.
	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 - Description - Links - Name - PortConfig

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" yaml:"port_settings_group_id"`
	// PortSettingsId is the id of a port settings object referencing a port settings group.
	PortSettingsId string `json:"port_settings_id" yaml:"port_settings_id"`
}

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 SwitchPortSettingsIdentity added in v0.5.0

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

SwitchPortSettingsIdentity is a switch port settings identity whose id may be used to view additional details.

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

type SwitchPortSettingsIdentityResultsPage added in v0.5.0

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

SwitchPortSettingsIdentityResultsPage is a single page of results

Required fields: - Items

type SwitchResultsPage added in v0.0.23

type SwitchResultsPage struct {
	// Items is list of items on this page of results
	Items []Switch `json:"items" yaml:"items"`
	// 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 SwitchSlot added in v0.9.0

type SwitchSlot string

SwitchSlot is switch in upper slot

const SwitchSlotSwitch0 SwitchSlot = "switch0"

SwitchSlotSwitch0 represents the SwitchSlot `"switch0"`.

const SwitchSlotSwitch1 SwitchSlot = "switch1"

SwitchSlotSwitch1 represents the SwitchSlot `"switch1"`.

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" yaml:"interface_config_id"`
	// 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" yaml:"vlan_id"`
}

SwitchVlanInterfaceConfig is a switch port VLAN interface configuration for a port settings object.

Required fields: - InterfaceConfigId - VlanId

type SystemIpPoolCreateParams added in v0.8.0

type SystemIpPoolCreateParams struct {
	Body *IpPoolCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolCreateParams is the request parameters for SystemIpPoolCreate

Required fields: - Body

func (*SystemIpPoolCreateParams) Validate added in v0.8.0

func (p *SystemIpPoolCreateParams) Validate() error

Validate verifies all required fields for SystemIpPoolCreateParams are set

type SystemIpPoolDeleteParams added in v0.8.0

type SystemIpPoolDeleteParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemIpPoolDeleteParams is the request parameters for SystemIpPoolDelete

Required fields: - Pool

func (*SystemIpPoolDeleteParams) Validate added in v0.8.0

func (p *SystemIpPoolDeleteParams) Validate() error

Validate verifies all required fields for SystemIpPoolDeleteParams are set

type SystemIpPoolListParams added in v0.8.0

type SystemIpPoolListParams 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"`
}

SystemIpPoolListParams is the request parameters for SystemIpPoolList

func (*SystemIpPoolListParams) Validate added in v0.8.0

func (p *SystemIpPoolListParams) Validate() error

Validate verifies all required fields for SystemIpPoolListParams are set

type SystemIpPoolRangeAddParams added in v0.8.0

type SystemIpPoolRangeAddParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolRangeAddParams is the request parameters for SystemIpPoolRangeAdd

Required fields: - Pool - Body

func (*SystemIpPoolRangeAddParams) Validate added in v0.8.0

func (p *SystemIpPoolRangeAddParams) Validate() error

Validate verifies all required fields for SystemIpPoolRangeAddParams are set

type SystemIpPoolRangeListParams added in v0.8.0

type SystemIpPoolRangeListParams 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"`
}

SystemIpPoolRangeListParams is the request parameters for SystemIpPoolRangeList

Required fields: - Pool

func (*SystemIpPoolRangeListParams) Validate added in v0.8.0

func (p *SystemIpPoolRangeListParams) Validate() error

Validate verifies all required fields for SystemIpPoolRangeListParams are set

type SystemIpPoolRangeRemoveParams added in v0.8.0

type SystemIpPoolRangeRemoveParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolRangeRemoveParams is the request parameters for SystemIpPoolRangeRemove

Required fields: - Pool - Body

func (*SystemIpPoolRangeRemoveParams) Validate added in v0.8.0

func (p *SystemIpPoolRangeRemoveParams) Validate() error

Validate verifies all required fields for SystemIpPoolRangeRemoveParams are set

type SystemIpPoolServiceRangeAddParams added in v0.8.0

type SystemIpPoolServiceRangeAddParams struct {
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolServiceRangeAddParams is the request parameters for SystemIpPoolServiceRangeAdd

Required fields: - Body

func (*SystemIpPoolServiceRangeAddParams) Validate added in v0.8.0

Validate verifies all required fields for SystemIpPoolServiceRangeAddParams are set

type SystemIpPoolServiceRangeListParams added in v0.8.0

type SystemIpPoolServiceRangeListParams struct {
	Limit     *int   `json:"limit,omitempty"      yaml:"limit,omitempty"`
	PageToken string `json:"page_token,omitempty" yaml:"page_token,omitempty"`
}

SystemIpPoolServiceRangeListParams is the request parameters for SystemIpPoolServiceRangeList

func (*SystemIpPoolServiceRangeListParams) Validate added in v0.8.0

Validate verifies all required fields for SystemIpPoolServiceRangeListParams are set

type SystemIpPoolServiceRangeRemoveParams added in v0.8.0

type SystemIpPoolServiceRangeRemoveParams struct {
	Body *IpRange `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolServiceRangeRemoveParams is the request parameters for SystemIpPoolServiceRangeRemove

Required fields: - Body

func (*SystemIpPoolServiceRangeRemoveParams) Validate added in v0.8.0

Validate verifies all required fields for SystemIpPoolServiceRangeRemoveParams are set

type SystemIpPoolSiloLinkParams added in v0.8.0

type SystemIpPoolSiloLinkParams struct {
	Pool NameOrId        `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpPoolLinkSilo `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolSiloLinkParams is the request parameters for SystemIpPoolSiloLink

Required fields: - Pool - Body

func (*SystemIpPoolSiloLinkParams) Validate added in v0.8.0

func (p *SystemIpPoolSiloLinkParams) Validate() error

Validate verifies all required fields for SystemIpPoolSiloLinkParams are set

type SystemIpPoolSiloListParams added in v0.8.0

type SystemIpPoolSiloListParams 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"`
}

SystemIpPoolSiloListParams is the request parameters for SystemIpPoolSiloList

Required fields: - Pool

func (*SystemIpPoolSiloListParams) Validate added in v0.8.0

func (p *SystemIpPoolSiloListParams) Validate() error

Validate verifies all required fields for SystemIpPoolSiloListParams are set

type SystemIpPoolSiloUnlinkParams added in v0.8.0

type SystemIpPoolSiloUnlinkParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SystemIpPoolSiloUnlinkParams is the request parameters for SystemIpPoolSiloUnlink

Required fields: - Pool - Silo

func (*SystemIpPoolSiloUnlinkParams) Validate added in v0.8.0

func (p *SystemIpPoolSiloUnlinkParams) Validate() error

Validate verifies all required fields for SystemIpPoolSiloUnlinkParams are set

type SystemIpPoolSiloUpdateParams added in v0.8.0

type SystemIpPoolSiloUpdateParams 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"`
}

SystemIpPoolSiloUpdateParams is the request parameters for SystemIpPoolSiloUpdate

Required fields: - Pool - Silo - Body

func (*SystemIpPoolSiloUpdateParams) Validate added in v0.8.0

func (p *SystemIpPoolSiloUpdateParams) Validate() error

Validate verifies all required fields for SystemIpPoolSiloUpdateParams are set

type SystemIpPoolUpdateParams added in v0.8.0

type SystemIpPoolUpdateParams struct {
	Pool NameOrId      `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *IpPoolUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemIpPoolUpdateParams is the request parameters for SystemIpPoolUpdate

Required fields: - Pool - Body

func (*SystemIpPoolUpdateParams) Validate added in v0.8.0

func (p *SystemIpPoolUpdateParams) Validate() error

Validate verifies all required fields for SystemIpPoolUpdateParams are set

type SystemIpPoolUtilizationViewParams added in v0.8.0

type SystemIpPoolUtilizationViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemIpPoolUtilizationViewParams is the request parameters for SystemIpPoolUtilizationView

Required fields: - Pool

func (*SystemIpPoolUtilizationViewParams) Validate added in v0.8.0

Validate verifies all required fields for SystemIpPoolUtilizationViewParams are set

type SystemIpPoolViewParams added in v0.8.0

type SystemIpPoolViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemIpPoolViewParams is the request parameters for SystemIpPoolView

Required fields: - Pool

func (*SystemIpPoolViewParams) Validate added in v0.8.0

func (p *SystemIpPoolViewParams) Validate() error

Validate verifies all required fields for SystemIpPoolViewParams are set

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 SystemSubnetPoolCreateParams added in v0.8.0

type SystemSubnetPoolCreateParams struct {
	Body *SubnetPoolCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolCreateParams is the request parameters for SystemSubnetPoolCreate

Required fields: - Body

func (*SystemSubnetPoolCreateParams) Validate added in v0.8.0

func (p *SystemSubnetPoolCreateParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolCreateParams are set

type SystemSubnetPoolDeleteParams added in v0.8.0

type SystemSubnetPoolDeleteParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemSubnetPoolDeleteParams is the request parameters for SystemSubnetPoolDelete

Required fields: - Pool

func (*SystemSubnetPoolDeleteParams) Validate added in v0.8.0

func (p *SystemSubnetPoolDeleteParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolDeleteParams are set

type SystemSubnetPoolListParams added in v0.8.0

type SystemSubnetPoolListParams 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"`
}

SystemSubnetPoolListParams is the request parameters for SystemSubnetPoolList

func (*SystemSubnetPoolListParams) Validate added in v0.8.0

func (p *SystemSubnetPoolListParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolListParams are set

type SystemSubnetPoolMemberAddParams added in v0.8.0

type SystemSubnetPoolMemberAddParams struct {
	Pool NameOrId             `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *SubnetPoolMemberAdd `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolMemberAddParams is the request parameters for SystemSubnetPoolMemberAdd

Required fields: - Pool - Body

func (*SystemSubnetPoolMemberAddParams) Validate added in v0.8.0

func (p *SystemSubnetPoolMemberAddParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolMemberAddParams are set

type SystemSubnetPoolMemberListParams added in v0.8.0

type SystemSubnetPoolMemberListParams 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"`
}

SystemSubnetPoolMemberListParams is the request parameters for SystemSubnetPoolMemberList

Required fields: - Pool

func (*SystemSubnetPoolMemberListParams) Validate added in v0.8.0

Validate verifies all required fields for SystemSubnetPoolMemberListParams are set

type SystemSubnetPoolMemberRemoveParams added in v0.8.0

type SystemSubnetPoolMemberRemoveParams struct {
	Pool NameOrId                `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *SubnetPoolMemberRemove `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolMemberRemoveParams is the request parameters for SystemSubnetPoolMemberRemove

Required fields: - Pool - Body

func (*SystemSubnetPoolMemberRemoveParams) Validate added in v0.8.0

Validate verifies all required fields for SystemSubnetPoolMemberRemoveParams are set

type SystemSubnetPoolSiloLinkParams added in v0.8.0

type SystemSubnetPoolSiloLinkParams struct {
	Pool NameOrId            `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *SubnetPoolLinkSilo `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolSiloLinkParams is the request parameters for SystemSubnetPoolSiloLink

Required fields: - Pool - Body

func (*SystemSubnetPoolSiloLinkParams) Validate added in v0.8.0

func (p *SystemSubnetPoolSiloLinkParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolSiloLinkParams are set

type SystemSubnetPoolSiloListParams added in v0.8.0

type SystemSubnetPoolSiloListParams 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"`
}

SystemSubnetPoolSiloListParams is the request parameters for SystemSubnetPoolSiloList

Required fields: - Pool

func (*SystemSubnetPoolSiloListParams) Validate added in v0.8.0

func (p *SystemSubnetPoolSiloListParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolSiloListParams are set

type SystemSubnetPoolSiloUnlinkParams added in v0.8.0

type SystemSubnetPoolSiloUnlinkParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
	Silo NameOrId `json:"silo,omitempty" yaml:"silo,omitempty"`
}

SystemSubnetPoolSiloUnlinkParams is the request parameters for SystemSubnetPoolSiloUnlink

Required fields: - Pool - Silo

func (*SystemSubnetPoolSiloUnlinkParams) Validate added in v0.8.0

Validate verifies all required fields for SystemSubnetPoolSiloUnlinkParams are set

type SystemSubnetPoolSiloUpdateParams added in v0.8.0

type SystemSubnetPoolSiloUpdateParams struct {
	Pool NameOrId              `json:"pool,omitempty" yaml:"pool,omitempty"`
	Silo NameOrId              `json:"silo,omitempty" yaml:"silo,omitempty"`
	Body *SubnetPoolSiloUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolSiloUpdateParams is the request parameters for SystemSubnetPoolSiloUpdate

Required fields: - Pool - Silo - Body

func (*SystemSubnetPoolSiloUpdateParams) Validate added in v0.8.0

Validate verifies all required fields for SystemSubnetPoolSiloUpdateParams are set

type SystemSubnetPoolUpdateParams added in v0.8.0

type SystemSubnetPoolUpdateParams struct {
	Pool NameOrId          `json:"pool,omitempty" yaml:"pool,omitempty"`
	Body *SubnetPoolUpdate `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemSubnetPoolUpdateParams is the request parameters for SystemSubnetPoolUpdate

Required fields: - Pool - Body

func (*SystemSubnetPoolUpdateParams) Validate added in v0.8.0

func (p *SystemSubnetPoolUpdateParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolUpdateParams are set

type SystemSubnetPoolUtilizationViewParams added in v0.8.0

type SystemSubnetPoolUtilizationViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemSubnetPoolUtilizationViewParams is the request parameters for SystemSubnetPoolUtilizationView

Required fields: - Pool

func (*SystemSubnetPoolUtilizationViewParams) Validate added in v0.8.0

Validate verifies all required fields for SystemSubnetPoolUtilizationViewParams are set

type SystemSubnetPoolViewParams added in v0.8.0

type SystemSubnetPoolViewParams struct {
	Pool NameOrId `json:"pool,omitempty" yaml:"pool,omitempty"`
}

SystemSubnetPoolViewParams is the request parameters for SystemSubnetPoolView

Required fields: - Pool

func (*SystemSubnetPoolViewParams) Validate added in v0.8.0

func (p *SystemSubnetPoolViewParams) Validate() error

Validate verifies all required fields for SystemSubnetPoolViewParams 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 SystemUpdateRecoveryFinishParams added in v0.9.0

type SystemUpdateRecoveryFinishParams struct {
	Body *SetTargetReleaseParams `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemUpdateRecoveryFinishParams is the request parameters for SystemUpdateRecoveryFinish

Required fields: - Body

func (*SystemUpdateRecoveryFinishParams) Validate added in v0.9.0

Validate verifies all required fields for SystemUpdateRecoveryFinishParams are set

type SystemUpdateRepositoryListParams added in v0.7.0

type SystemUpdateRepositoryListParams struct {
	Limit     *int            `json:"limit,omitempty"      yaml:"limit,omitempty"`
	PageToken string          `json:"page_token,omitempty" yaml:"page_token,omitempty"`
	SortBy    VersionSortMode `json:"sort_by,omitempty"    yaml:"sort_by,omitempty"`
}

SystemUpdateRepositoryListParams is the request parameters for SystemUpdateRepositoryList

func (*SystemUpdateRepositoryListParams) Validate added in v0.7.0

Validate verifies all required fields for SystemUpdateRepositoryListParams are set

type SystemUpdateRepositoryUploadParams added in v0.7.0

type SystemUpdateRepositoryUploadParams struct {
	FileName string    `json:"file_name,omitempty" yaml:"file_name,omitempty"`
	Body     io.Reader `json:"body,omitempty"      yaml:"body,omitempty"`
}

SystemUpdateRepositoryUploadParams is the request parameters for SystemUpdateRepositoryUpload

Required fields: - FileName - Body

func (*SystemUpdateRepositoryUploadParams) Validate added in v0.7.0

Validate verifies all required fields for SystemUpdateRepositoryUploadParams are set

type SystemUpdateRepositoryViewParams added in v0.7.0

type SystemUpdateRepositoryViewParams struct {
	SystemVersion string `json:"system_version,omitempty" yaml:"system_version,omitempty"`
}

SystemUpdateRepositoryViewParams is the request parameters for SystemUpdateRepositoryView

Required fields: - SystemVersion

func (*SystemUpdateRepositoryViewParams) Validate added in v0.7.0

Validate verifies all required fields for SystemUpdateRepositoryViewParams are set

type SystemUpdateTrustRootCreateParams added in v0.6.0

type SystemUpdateTrustRootCreateParams struct {
	Body *any `json:"body,omitempty" yaml:"body,omitempty"`
}

SystemUpdateTrustRootCreateParams is the request parameters for SystemUpdateTrustRootCreate

Required fields: - Body

func (*SystemUpdateTrustRootCreateParams) Validate added in v0.6.0

Validate verifies all required fields for SystemUpdateTrustRootCreateParams are set

type SystemUpdateTrustRootDeleteParams added in v0.6.0

type SystemUpdateTrustRootDeleteParams struct {
	TrustRootId string `json:"trust_root_id,omitempty" yaml:"trust_root_id,omitempty"`
}

SystemUpdateTrustRootDeleteParams is the request parameters for SystemUpdateTrustRootDelete

Required fields: - TrustRootId

func (*SystemUpdateTrustRootDeleteParams) Validate added in v0.6.0

Validate verifies all required fields for SystemUpdateTrustRootDeleteParams are set

type SystemUpdateTrustRootListParams added in v0.6.0

type SystemUpdateTrustRootListParams 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"`
}

SystemUpdateTrustRootListParams is the request parameters for SystemUpdateTrustRootList

func (*SystemUpdateTrustRootListParams) Validate added in v0.6.0

func (p *SystemUpdateTrustRootListParams) Validate() error

Validate verifies all required fields for SystemUpdateTrustRootListParams are set

type SystemUpdateTrustRootViewParams added in v0.6.0

type SystemUpdateTrustRootViewParams struct {
	TrustRootId string `json:"trust_root_id,omitempty" yaml:"trust_root_id,omitempty"`
}

SystemUpdateTrustRootViewParams is the request parameters for SystemUpdateTrustRootView

Required fields: - TrustRootId

func (*SystemUpdateTrustRootViewParams) Validate added in v0.6.0

func (p *SystemUpdateTrustRootViewParams) Validate() error

Validate verifies all required fields for SystemUpdateTrustRootViewParams are set

type TargetRelease added in v0.4.0

type TargetRelease struct {
	// TimeRequested is time this was set as the target release
	TimeRequested *time.Time `json:"time_requested" yaml:"time_requested"`
	// Version is the specified release of the rack's system software
	Version string `json:"version" yaml:"version"`
}

TargetRelease is view of a system software target release

Required fields: - TimeRequested - Version

type TargetReleaseUpdateParams added in v0.4.0

type TargetReleaseUpdateParams struct {
	Body *SetTargetReleaseParams `json:"body,omitempty" yaml:"body,omitempty"`
}

TargetReleaseUpdateParams is the request parameters for TargetReleaseUpdate

Required fields: - Body

func (*TargetReleaseUpdateParams) Validate added in v0.4.0

func (p *TargetReleaseUpdateParams) Validate() error

Validate verifies all required fields for TargetReleaseUpdateParams are set

type TimeAndIdSortMode added in v0.5.0

type TimeAndIdSortMode string

TimeAndIdSortMode is sort in increasing order of timestamp and ID, i.e., earliest first

const TimeAndIdSortModeTimeAndIdAscending TimeAndIdSortMode = "time_and_id_ascending"

TimeAndIdSortModeTimeAndIdAscending represents the TimeAndIdSortMode `"time_and_id_ascending"`.

const TimeAndIdSortModeTimeAndIdDescending TimeAndIdSortMode = "time_and_id_descending"

TimeAndIdSortModeTimeAndIdDescending represents the TimeAndIdSortMode `"time_and_id_descending"`.

type Timeseries added in v0.2.0

type Timeseries struct {
	Fields map[string]FieldValue `json:"fields" yaml:"fields"`
	// Points is timepoints and values for one timeseries.
	Points Points `json:"points" yaml:"points"`
}

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" yaml:"metric"`
	Target string `json:"target" yaml:"target"`
}

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" yaml:"query"`
}

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" yaml:"authz_scope"`
	Created    *time.Time `json:"created"     yaml:"created"`
	// DatumType is the type of an individual datum of a metric.
	DatumType DatumType `json:"datum_type" yaml:"datum_type"`
	// Description is text descriptions for the target and metric of a timeseries.
	Description TimeseriesDescription `json:"description"  yaml:"description"`
	FieldSchema []FieldSchema         `json:"field_schema" yaml:"field_schema"`
	// 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" yaml:"timeseries_name"`
	// Units is measurement units for timeseries samples.
	Units   Units `json:"units"   yaml:"units"`
	Version *int  `json:"version" yaml:"version"`
}

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" yaml:"items"`
	// 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 TufRepo added in v0.7.0

type TufRepo struct {
	// FileName is the file name of the repository, as reported by the client that uploaded it
	//
	// This is intended for debugging. The file name may not match any particular pattern, and even
	// if it does, it
	// may not be accurate since it's just what the client reported.
	FileName string `json:"file_name" yaml:"file_name"`
	// Hash is the hash of the repository
	Hash string `json:"hash" yaml:"hash"`
	// SystemVersion is the system version for this repository
	//
	// The system version is a top-level version number applied to all the software in the
	// repository.
	SystemVersion string `json:"system_version" yaml:"system_version"`
	// TimeCreated is time the repository was uploaded
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
}

TufRepo is metadata about a TUF repository

Required fields: - FileName - Hash - SystemVersion - TimeCreated

type TufRepoResultsPage added in v0.7.0

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

TufRepoResultsPage is a single page of results

Required fields: - Items

type TufRepoUpload added in v0.7.0

type TufRepoUpload struct {
	// Repo is metadata about a TUF repository
	Repo TufRepo `json:"repo" yaml:"repo"`
	// Status is whether the uploaded TUF repo already existed or was new and had to be inserted.
	// Part of `TufRepoUpload`.
	//
	Status TufRepoUploadStatus `json:"status" yaml:"status"`
}

TufRepoUpload is the type definition for a TufRepoUpload.

Required fields: - Repo - Status

type TufRepoUploadStatus added in v0.7.0

type TufRepoUploadStatus string

TufRepoUploadStatus is the repository already existed in the database

const TufRepoUploadStatusAlreadyExists TufRepoUploadStatus = "already_exists"

TufRepoUploadStatusAlreadyExists represents the TufRepoUploadStatus `"already_exists"`.

const TufRepoUploadStatusInserted TufRepoUploadStatus = "inserted"

TufRepoUploadStatusInserted represents the TufRepoUploadStatus `"inserted"`.

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 TxEqConfig2 added in v0.5.0

type TxEqConfig2 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"`
}

TxEqConfig2 is per-port tx-eq overrides. This can be used to fine-tune the transceiver equalization settings to improve signal integrity.

type UninitializedSled added in v0.0.23

type UninitializedSled struct {
	// Baseboard is properties that uniquely identify an Oxide hardware component
	Baseboard Baseboard `json:"baseboard" yaml:"baseboard"`
	Cubby     *int      `json:"cubby"     yaml:"cubby"`
	RackId    string    `json:"rack_id"   yaml:"rack_id"`
}

UninitializedSled is a sled that has not been added to an initialized rack yet

Required fields: - Baseboard - Cubby - RackId

type UninitializedSledResultsPage added in v0.2.0

type UninitializedSledResultsPage struct {
	// Items is list of items on this page of results
	Items []UninitializedSled `json:"items" yaml:"items"`
	// 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 UpdateStatus added in v0.7.0

type UpdateStatus struct {
	// ComponentsByReleaseVersion is count of components running each release version
	//
	// Keys will be either:
	//
	// * Semver-like release version strings * "install dataset", representing the initial rack
	// software before any updates * "unknown", which means there is no TUF repo uploaded that
	// matches the software running on the component)
	//
	ComponentsByReleaseVersion map[string]*int `json:"components_by_release_version" yaml:"components_by_release_version"`
	// Suspended is whether automatic update is suspended due to manual update activity
	//
	// After a manual support procedure that changes the system software, automatic update activity
	// is suspended to avoid undoing the change. To resume automatic update, first upload the TUF
	// repository matching the manually applied
	// update, then set that as the target release.
	Suspended *bool `json:"suspended" yaml:"suspended"`
	// TargetRelease is current target release of the system software
	//
	// This may not correspond to the actual system software running at the time of request; it is
	// instead the release that the system should be moving towards as a goal state. The system
	// asynchronously updates software to
	// match this target release.
	//
	// Will only be null if a target release has never been set. In that case, the system is not
	// automatically attempting
	// to manage software versions.
	TargetRelease *TargetRelease `json:"target_release" yaml:"target_release"`
	// TimeLastStepPlanned is time of most recent update planning activity
	//
	// This is intended as a rough indicator of the last time something happened in the update
	// planner.
	TimeLastStepPlanned *time.Time `json:"time_last_step_planned" yaml:"time_last_step_planned"`
}

UpdateStatus is the type definition for a UpdateStatus.

Required fields: - ComponentsByReleaseVersion - Suspended - TargetRelease - TimeLastStepPlanned

type UpdatesTrustRoot added in v0.6.0

type UpdatesTrustRoot struct {
	// Id is the UUID of this trusted root role.
	Id string `json:"id" yaml:"id"`
	// RootRole is the trusted root role itself, a JSON document as described by The Update
	// Framework.
	RootRole any `json:"root_role" yaml:"root_role"`
	// TimeCreated is time the trusted root role was added.
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
}

UpdatesTrustRoot is trusted root role used by the update system to verify update repositories.

Required fields: - Id - RootRole - TimeCreated

type UpdatesTrustRootResultsPage added in v0.6.0

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

UpdatesTrustRootResultsPage is a single page of results

Required fields: - Items

type User

type User struct {
	// DisplayName is human-readable name that can identify the user
	DisplayName string `json:"display_name" yaml:"display_name"`
	Id          string `json:"id"           yaml:"id"`
	// SiloId is uuid of the silo to which this user belongs
	SiloId string `json:"silo_id" yaml:"silo_id"`
	// TimeCreated is timestamp when this user was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this user was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

User is view of a User

Required fields: - DisplayName - Id - SiloId - TimeCreated - TimeModified

type UserBuiltin

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

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" yaml:"items"`
	// 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" yaml:"external_id"`
	// Password is how to set the user's login password
	Password UserPassword `json:"password" yaml:"password"`
}

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 UserLogoutParams added in v0.6.0

type UserLogoutParams struct {
	UserId string `json:"user_id,omitempty" yaml:"user_id,omitempty"`
}

UserLogoutParams is the request parameters for UserLogout

Required fields: - UserId

func (*UserLogoutParams) Validate added in v0.6.0

func (p *UserLogoutParams) Validate() error

Validate verifies all required fields for UserLogoutParams are set

type UserPassword added in v0.0.23

type UserPassword struct {
	Value userPasswordVariant
}

UserPassword is parameters for setting a user's password

func (UserPassword) AsLoginDisallowed added in v0.8.0

func (v UserPassword) AsLoginDisallowed() (*UserPasswordLoginDisallowed, bool)

AsLoginDisallowed attempts to convert the UserPassword to a UserPasswordLoginDisallowed. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (UserPassword) AsPassword added in v0.8.0

func (v UserPassword) AsPassword() (*UserPasswordPassword, bool)

AsPassword attempts to convert the UserPassword to a UserPasswordPassword. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (UserPassword) MarshalJSON added in v0.8.0

func (v UserPassword) MarshalJSON() ([]byte, error)

func (UserPassword) Mode added in v0.0.23

func (v UserPassword) Mode() UserPasswordMode

func (*UserPassword) UnmarshalJSON added in v0.8.0

func (v *UserPassword) UnmarshalJSON(data []byte) error

type UserPasswordLoginDisallowed added in v0.0.23

type UserPasswordLoginDisallowed struct {
}

UserPasswordLoginDisallowed is a variant of UserPassword.

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 {
	// Value is passwords may be subject to additional constraints.
	Value Password `json:"value" yaml:"value"`
}

UserPasswordPassword is a variant of UserPassword.

type UserResultsPage

type UserResultsPage struct {
	// Items is list of items on this page of results
	Items []User `json:"items" yaml:"items"`
	// 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 UserSessionListParams added in v0.6.0

type UserSessionListParams struct {
	UserId    string     `json:"user_id,omitempty"    yaml:"user_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"`
}

UserSessionListParams is the request parameters for UserSessionList

Required fields: - UserId

func (*UserSessionListParams) Validate added in v0.6.0

func (p *UserSessionListParams) Validate() error

Validate verifies all required fields for UserSessionListParams are set

type UserTokenListParams added in v0.6.0

type UserTokenListParams struct {
	UserId    string     `json:"user_id,omitempty"    yaml:"user_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"`
}

UserTokenListParams is the request parameters for UserTokenList

Required fields: - UserId

func (*UserTokenListParams) Validate added in v0.6.0

func (p *UserTokenListParams) Validate() error

Validate verifies all required fields for UserTokenListParams are set

type UserViewParams added in v0.6.0

type UserViewParams struct {
	UserId string `json:"user_id,omitempty" yaml:"user_id,omitempty"`
}

UserViewParams is the request parameters for UserView

Required fields: - UserId

func (*UserViewParams) Validate added in v0.6.0

func (p *UserViewParams) Validate() error

Validate verifies all required fields for UserViewParams are set

type UsernamePasswordCredentials added in v0.0.23

type UsernamePasswordCredentials struct {
	// Password is passwords may be subject to additional constraints.
	Password Password `json:"password" yaml:"password"`
	// 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" yaml:"username"`
}

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" yaml:"capacity"`
	// Provisioned is accounts for resources allocated to running instances or storage allocated via
	// disks or
	// snapshots.
	//
	// Note that CPU and memory resources associated with stopped instances are not counted here,
	// whereas associated disks
	// will still be counted.
	Provisioned VirtualResourceCounts `json:"provisioned" yaml:"provisioned"`
}

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 nil

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 {
	Value valueArrayVariant
}

ValueArray is list of data values for one timeseries.

Each element is an option, where `None` represents a missing sample.

func (ValueArray) AsBoolean added in v0.8.0

func (v ValueArray) AsBoolean() (*ValueArrayBoolean, bool)

AsBoolean attempts to convert the ValueArray to a ValueArrayBoolean. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) AsDouble added in v0.8.0

func (v ValueArray) AsDouble() (*ValueArrayDouble, bool)

AsDouble attempts to convert the ValueArray to a ValueArrayDouble. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) AsDoubleDistribution added in v0.8.0

func (v ValueArray) AsDoubleDistribution() (*ValueArrayDoubleDistribution, bool)

AsDoubleDistribution attempts to convert the ValueArray to a ValueArrayDoubleDistribution. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) AsInteger added in v0.8.0

func (v ValueArray) AsInteger() (*ValueArrayInteger, bool)

AsInteger attempts to convert the ValueArray to a ValueArrayInteger. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) AsIntegerDistribution added in v0.8.0

func (v ValueArray) AsIntegerDistribution() (*ValueArrayIntegerDistribution, bool)

AsIntegerDistribution attempts to convert the ValueArray to a ValueArrayIntegerDistribution. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) AsString added in v0.8.0

func (v ValueArray) AsString() (*ValueArrayString, bool)

AsString attempts to convert the ValueArray to a ValueArrayString. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (ValueArray) MarshalJSON added in v0.8.0

func (v ValueArray) MarshalJSON() ([]byte, error)

func (ValueArray) Type added in v0.2.0

func (v ValueArray) Type() ValueArrayType

func (*ValueArray) UnmarshalJSON added in v0.8.0

func (v *ValueArray) UnmarshalJSON(data []byte) error

type ValueArrayBoolean added in v0.2.0

type ValueArrayBoolean struct {
	Values []bool `json:"values" yaml:"values"`
}

ValueArrayBoolean is a variant of ValueArray.

type ValueArrayDouble added in v0.2.0

type ValueArrayDouble struct {
	Values []float64 `json:"values" yaml:"values"`
}

ValueArrayDouble is a variant of ValueArray.

type ValueArrayDoubleDistribution added in v0.2.0

type ValueArrayDoubleDistribution struct {
	Values []Distributiondouble `json:"values" yaml:"values"`
}

ValueArrayDoubleDistribution is a variant of ValueArray.

type ValueArrayInteger added in v0.2.0

type ValueArrayInteger struct {
	Values []int `json:"values" yaml:"values"`
}

ValueArrayInteger is a variant of ValueArray.

type ValueArrayIntegerDistribution added in v0.2.0

type ValueArrayIntegerDistribution struct {
	Values []Distributionint64 `json:"values" yaml:"values"`
}

ValueArrayIntegerDistribution is a variant of ValueArray.

type ValueArrayString added in v0.2.0

type ValueArrayString struct {
	Values []string `json:"values" yaml:"values"`
}

ValueArrayString is a variant of ValueArray.

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" yaml:"metric_type"`
	// Values is the data values.
	Values ValueArray `json:"values" yaml:"values"`
}

Values is a single list of values, for one dimension of a timeseries.

Required fields: - MetricType - Values

type VersionSortMode added in v0.7.0

type VersionSortMode string

VersionSortMode is sort in increasing semantic version order (oldest first)

const VersionSortModeVersionAscending VersionSortMode = "version_ascending"

VersionSortModeVersionAscending represents the VersionSortMode `"version_ascending"`.

const VersionSortModeVersionDescending VersionSortMode = "version_descending"

VersionSortModeVersionDescending represents the VersionSortMode `"version_descending"`.

type VirtualResourceCounts added in v0.0.23

type VirtualResourceCounts struct {
	// Cpus is number of virtual CPUs
	Cpus *int `json:"cpus" yaml:"cpus"`
	// Memory is amount of memory in bytes
	Memory ByteCount `json:"memory" yaml:"memory"`
	// Storage is amount of disk storage in bytes
	Storage ByteCount `json:"storage" yaml:"storage"`
}

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" yaml:"description"`
	// DnsName is the name used for the VPC in DNS.
	DnsName Name `json:"dns_name" yaml:"dns_name"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Ipv6Prefix is the unique local IPv6 address range for subnets in this VPC
	Ipv6Prefix Ipv6Net `json:"ipv6_prefix" yaml:"ipv6_prefix"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// ProjectId is iD for the project containing this VPC
	ProjectId string `json:"project_id" yaml:"project_id"`
	// SystemRouterId is iD for the system router where subnet default routes are registered
	SystemRouterId string `json:"system_router_id" yaml:"system_router_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

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" yaml:"description"`
	// 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" yaml:"dns_name"`
	// 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" yaml:"name"`
}

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 VpcFirewallIcmpFilter added in v0.6.0

type VpcFirewallIcmpFilter struct {
	Code     IcmpParamRange `json:"code,omitempty" yaml:"code,omitempty"`
	IcmpType *int           `json:"icmp_type"      yaml:"icmp_type"`
}

VpcFirewallIcmpFilter is the type definition for a VpcFirewallIcmpFilter.

Required fields: - IcmpType

type VpcFirewallRule

type VpcFirewallRule struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action" yaml:"action"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction" yaml:"direction"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters" yaml:"filters"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Priority is the relative priority of this rule
	Priority *int `json:"priority" yaml:"priority"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status" yaml:"status"`
	// Targets is determine the set of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets" yaml:"targets"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VpcId is the VPC to which this rule belongs
	VpcId string `json:"vpc_id" yaml:"vpc_id"`
}

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" yaml:"hosts"`
	// Ports is if present, the destination ports or port ranges this rule applies to.
	Ports []L4PortRange `json:"ports" yaml:"ports"`
	// Protocols is if present, the networking protocols this rule applies to.
	Protocols []VpcFirewallRuleProtocol `json:"protocols" yaml:"protocols"`
}

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 {
	Value vpcFirewallRuleHostFilterVariant
}

VpcFirewallRuleHostFilter is the `VpcFirewallRuleHostFilter` is used to filter traffic on the basis of its source or destination host.

func NewVpcFirewallRuleHostFilter added in v0.8.0

func NewVpcFirewallRuleHostFilter(
	t VpcFirewallRuleHostFilterType,
	value string,
) (VpcFirewallRuleHostFilter, error)

NewVpcFirewallRuleHostFilter creates a VpcFirewallRuleHostFilter from a type constant and string value.

func (VpcFirewallRuleHostFilter) AsInstance added in v0.8.0

AsInstance attempts to convert the VpcFirewallRuleHostFilter to a VpcFirewallRuleHostFilterInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleHostFilter) AsIp added in v0.8.0

AsIp attempts to convert the VpcFirewallRuleHostFilter to a VpcFirewallRuleHostFilterIp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleHostFilter) AsIpNet added in v0.8.0

AsIpNet attempts to convert the VpcFirewallRuleHostFilter to a VpcFirewallRuleHostFilterIpNet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleHostFilter) AsSubnet added in v0.8.0

AsSubnet attempts to convert the VpcFirewallRuleHostFilter to a VpcFirewallRuleHostFilterSubnet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleHostFilter) AsVpc added in v0.8.0

AsVpc attempts to convert the VpcFirewallRuleHostFilter to a VpcFirewallRuleHostFilterVpc. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleHostFilter) MarshalJSON added in v0.8.0

func (v VpcFirewallRuleHostFilter) MarshalJSON() ([]byte, error)

func (VpcFirewallRuleHostFilter) String added in v0.8.0

func (v VpcFirewallRuleHostFilter) String() string

String returns the string representation of the VpcFirewallRuleHostFilter's value. Returns an empty string if no variant is set.

func (VpcFirewallRuleHostFilter) Type

func (*VpcFirewallRuleHostFilter) UnmarshalJSON added in v0.8.0

func (v *VpcFirewallRuleHostFilter) UnmarshalJSON(data []byte) error

type VpcFirewallRuleHostFilterInstance

type VpcFirewallRuleHostFilterInstance struct {
	// 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" yaml:"value"`
}

VpcFirewallRuleHostFilterInstance is a variant of VpcFirewallRuleHostFilter.

type VpcFirewallRuleHostFilterIp

type VpcFirewallRuleHostFilterIp struct {
	Value string `json:"value" yaml:"value"`
}

VpcFirewallRuleHostFilterIp is a variant of VpcFirewallRuleHostFilter.

type VpcFirewallRuleHostFilterIpNet

type VpcFirewallRuleHostFilterIpNet struct {
	Value IpNet `json:"value" yaml:"value"`
}

VpcFirewallRuleHostFilterIpNet is a variant of VpcFirewallRuleHostFilter.

type VpcFirewallRuleHostFilterSubnet

type VpcFirewallRuleHostFilterSubnet struct {
	// 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" yaml:"value"`
}

VpcFirewallRuleHostFilterSubnet is a variant of VpcFirewallRuleHostFilter.

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 {
	// 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" yaml:"value"`
}

VpcFirewallRuleHostFilterVpc is a variant of VpcFirewallRuleHostFilter.

type VpcFirewallRuleProtocol

type VpcFirewallRuleProtocol struct {
	Value vpcFirewallRuleProtocolVariant
}

VpcFirewallRuleProtocol is the protocols that may be specified in a firewall rule's filter

func (VpcFirewallRuleProtocol) AsIcmp added in v0.8.0

AsIcmp attempts to convert the VpcFirewallRuleProtocol to a VpcFirewallRuleProtocolIcmp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleProtocol) AsIcmp6 added in v0.9.0

AsIcmp6 attempts to convert the VpcFirewallRuleProtocol to a VpcFirewallRuleProtocolIcmp6. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleProtocol) AsTcp added in v0.8.0

AsTcp attempts to convert the VpcFirewallRuleProtocol to a VpcFirewallRuleProtocolTcp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleProtocol) AsUdp added in v0.8.0

AsUdp attempts to convert the VpcFirewallRuleProtocol to a VpcFirewallRuleProtocolUdp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleProtocol) MarshalJSON added in v0.8.0

func (v VpcFirewallRuleProtocol) MarshalJSON() ([]byte, error)

func (VpcFirewallRuleProtocol) Type added in v0.6.0

func (*VpcFirewallRuleProtocol) UnmarshalJSON added in v0.8.0

func (v *VpcFirewallRuleProtocol) UnmarshalJSON(data []byte) error

type VpcFirewallRuleProtocolIcmp added in v0.0.23

type VpcFirewallRuleProtocolIcmp struct {
	Value *VpcFirewallIcmpFilter `json:"value" yaml:"value"`
}

VpcFirewallRuleProtocolIcmp is a variant of VpcFirewallRuleProtocol.

type VpcFirewallRuleProtocolIcmp6 added in v0.9.0

type VpcFirewallRuleProtocolIcmp6 struct {
	Value *VpcFirewallIcmpFilter `json:"value" yaml:"value"`
}

VpcFirewallRuleProtocolIcmp6 is a variant of VpcFirewallRuleProtocol.

type VpcFirewallRuleProtocolTcp added in v0.0.23

type VpcFirewallRuleProtocolTcp struct {
}

VpcFirewallRuleProtocolTcp is a variant of VpcFirewallRuleProtocol.

type VpcFirewallRuleProtocolType added in v0.6.0

type VpcFirewallRuleProtocolType string

VpcFirewallRuleProtocolType is the type definition for a VpcFirewallRuleProtocolType.

const VpcFirewallRuleProtocolTypeIcmp VpcFirewallRuleProtocolType = "icmp"

VpcFirewallRuleProtocolTypeIcmp represents the VpcFirewallRuleProtocolType `"icmp"`.

const VpcFirewallRuleProtocolTypeIcmp6 VpcFirewallRuleProtocolType = "icmp6"

VpcFirewallRuleProtocolTypeIcmp6 represents the VpcFirewallRuleProtocolType `"icmp6"`.

const VpcFirewallRuleProtocolTypeTcp VpcFirewallRuleProtocolType = "tcp"

VpcFirewallRuleProtocolTypeTcp represents the VpcFirewallRuleProtocolType `"tcp"`.

const VpcFirewallRuleProtocolTypeUdp VpcFirewallRuleProtocolType = "udp"

VpcFirewallRuleProtocolTypeUdp represents the VpcFirewallRuleProtocolType `"udp"`.

type VpcFirewallRuleProtocolUdp added in v0.0.23

type VpcFirewallRuleProtocolUdp struct {
}

VpcFirewallRuleProtocolUdp is a variant of VpcFirewallRuleProtocol.

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 {
	Value vpcFirewallRuleTargetVariant
}

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.

func NewVpcFirewallRuleTarget added in v0.8.0

func NewVpcFirewallRuleTarget(
	t VpcFirewallRuleTargetType,
	value string,
) (VpcFirewallRuleTarget, error)

NewVpcFirewallRuleTarget creates a VpcFirewallRuleTarget from a type constant and string value.

func (VpcFirewallRuleTarget) AsInstance added in v0.8.0

AsInstance attempts to convert the VpcFirewallRuleTarget to a VpcFirewallRuleTargetInstance. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleTarget) AsIp added in v0.8.0

AsIp attempts to convert the VpcFirewallRuleTarget to a VpcFirewallRuleTargetIp. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleTarget) AsIpNet added in v0.8.0

AsIpNet attempts to convert the VpcFirewallRuleTarget to a VpcFirewallRuleTargetIpNet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleTarget) AsSubnet added in v0.8.0

AsSubnet attempts to convert the VpcFirewallRuleTarget to a VpcFirewallRuleTargetSubnet. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleTarget) AsVpc added in v0.8.0

AsVpc attempts to convert the VpcFirewallRuleTarget to a VpcFirewallRuleTargetVpc. Returns the variant and true if the conversion succeeded, nil and false otherwise.

func (VpcFirewallRuleTarget) MarshalJSON added in v0.8.0

func (v VpcFirewallRuleTarget) MarshalJSON() ([]byte, error)

func (VpcFirewallRuleTarget) String added in v0.8.0

func (v VpcFirewallRuleTarget) String() string

String returns the string representation of the VpcFirewallRuleTarget's value. Returns an empty string if no variant is set.

func (VpcFirewallRuleTarget) Type

func (*VpcFirewallRuleTarget) UnmarshalJSON added in v0.8.0

func (v *VpcFirewallRuleTarget) UnmarshalJSON(data []byte) error

type VpcFirewallRuleTargetInstance

type VpcFirewallRuleTargetInstance struct {
	// 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" yaml:"value"`
}

VpcFirewallRuleTargetInstance is a variant of VpcFirewallRuleTarget.

type VpcFirewallRuleTargetIp

type VpcFirewallRuleTargetIp struct {
	Value string `json:"value" yaml:"value"`
}

VpcFirewallRuleTargetIp is a variant of VpcFirewallRuleTarget.

type VpcFirewallRuleTargetIpNet

type VpcFirewallRuleTargetIpNet struct {
	Value IpNet `json:"value" yaml:"value"`
}

VpcFirewallRuleTargetIpNet is a variant of VpcFirewallRuleTarget.

type VpcFirewallRuleTargetSubnet

type VpcFirewallRuleTargetSubnet struct {
	// 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" yaml:"value"`
}

VpcFirewallRuleTargetSubnet is a variant of VpcFirewallRuleTarget.

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 {
	// 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" yaml:"value"`
}

VpcFirewallRuleTargetVpc is a variant of VpcFirewallRuleTarget.

type VpcFirewallRuleUpdate

type VpcFirewallRuleUpdate struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action" yaml:"action"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction" yaml:"direction"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters" yaml:"filters"`
	// Name is name of the rule, unique to this VPC
	Name Name `json:"name" yaml:"name"`
	// Priority is the relative priority of this rule
	Priority *int `json:"priority" yaml:"priority"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status" yaml:"status"`
	// Targets is determine the set of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets" yaml:"targets"`
}

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,omitzero" yaml:"rules,omitzero"`
}

VpcFirewallRuleUpdateParams is updated list of firewall rules. Will replace all existing rules.

type VpcFirewallRules

type VpcFirewallRules struct {
	Rules []VpcFirewallRule `json:"rules" yaml:"rules"`
}

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" yaml:"items"`
	// 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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id   string        `json:"id"   yaml:"id"`
	Kind VpcRouterKind `json:"kind" yaml:"kind"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VpcId is the VPC to which the router belongs.
	VpcId string `json:"vpc_id" yaml:"vpc_id"`
}

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" yaml:"description"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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

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" yaml:"description"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Ipv4Block is the IPv4 subnet CIDR block.
	Ipv4Block Ipv4Net `json:"ipv4_block" yaml:"ipv4_block"`
	// Ipv6Block is the IPv6 subnet CIDR block.
	Ipv6Block Ipv6Net `json:"ipv6_block" yaml:"ipv6_block"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
	// VpcId is the VPC to which the subnet belongs.
	VpcId string `json:"vpc_id" yaml:"vpc_id"`
}

VpcSubnet is a VPC subnet represents a logical grouping for instances that allows network traffic between them, within an 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"             yaml:"description"`
	// 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" yaml:"ipv4_block"`
	// 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" yaml:"name"`
}

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" yaml:"items"`
	// 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

type WebhookCreate added in v0.5.0

type WebhookCreate struct {
	Description string `json:"description" yaml:"description"`
	// Endpoint is the URL that webhook notification requests should be sent to
	Endpoint string `json:"endpoint" yaml:"endpoint"`
	// 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" yaml:"name"`
	// Secrets is a non-empty list of secret keys used to sign webhook payloads.
	Secrets []string `json:"secrets" yaml:"secrets"`
	// Subscriptions is a list of webhook event class subscriptions.
	//
	// If this list is empty or is not included in the request body, the webhook will not be
	// subscribed to any events.
	//
	Subscriptions []AlertSubscription `json:"subscriptions,omitempty" yaml:"subscriptions,omitempty"`
}

WebhookCreate is create-time identity-related parameters

Required fields: - Description - Endpoint - Name - Secrets

type WebhookDeliveryAttempt added in v0.5.0

type WebhookDeliveryAttempt struct {
	// Attempt is the attempt number.
	Attempt  *int                    `json:"attempt"            yaml:"attempt"`
	Response WebhookDeliveryResponse `json:"response,omitempty" yaml:"response,omitempty"`
	// Result is the outcome of this delivery attempt: either the event was delivered successfully,
	// or the request
	// failed for one of several reasons.
	Result WebhookDeliveryAttemptResult `json:"result" yaml:"result"`
	// TimeSent is the time at which the webhook delivery was attempted.
	TimeSent *time.Time `json:"time_sent" yaml:"time_sent"`
}

WebhookDeliveryAttempt is an individual delivery attempt for a webhook event.

This represents a single HTTP request that was sent to the receiver, and its outcome.

Required fields: - Attempt - Result - TimeSent

type WebhookDeliveryAttemptResult added in v0.5.0

type WebhookDeliveryAttemptResult string

WebhookDeliveryAttemptResult is the webhook event has been delivered successfully.

const WebhookDeliveryAttemptResultFailedHttpError WebhookDeliveryAttemptResult = "failed_http_error"

WebhookDeliveryAttemptResultFailedHttpError represents the WebhookDeliveryAttemptResult `"failed_http_error"`.

const WebhookDeliveryAttemptResultFailedTimeout WebhookDeliveryAttemptResult = "failed_timeout"

WebhookDeliveryAttemptResultFailedTimeout represents the WebhookDeliveryAttemptResult `"failed_timeout"`.

const WebhookDeliveryAttemptResultFailedUnreachable WebhookDeliveryAttemptResult = "failed_unreachable"

WebhookDeliveryAttemptResultFailedUnreachable represents the WebhookDeliveryAttemptResult `"failed_unreachable"`.

const WebhookDeliveryAttemptResultSucceeded WebhookDeliveryAttemptResult = "succeeded"

WebhookDeliveryAttemptResultSucceeded represents the WebhookDeliveryAttemptResult `"succeeded"`.

type WebhookDeliveryResponse added in v0.5.0

type WebhookDeliveryResponse struct {
	// DurationMs is the response time of the webhook endpoint, in milliseconds.
	DurationMs *int `json:"duration_ms" yaml:"duration_ms"`
	// Status is the HTTP status code returned from the webhook endpoint.
	Status *int `json:"status" yaml:"status"`
}

WebhookDeliveryResponse is the response received from a webhook receiver endpoint.

Required fields: - DurationMs - Status

type WebhookReceiver added in v0.5.0

type WebhookReceiver struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description" yaml:"description"`
	// Endpoint is the URL that webhook notification requests are sent to.
	Endpoint string `json:"endpoint" yaml:"endpoint"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id" yaml:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name" yaml:"name"`
	// Secrets is a list containing the IDs of the secret keys used to sign payloads sent to this
	// receiver.
	Secrets []WebhookSecret `json:"secrets" yaml:"secrets"`
	// Subscriptions is the list of alert classes to which this receiver is subscribed.
	Subscriptions []AlertSubscription `json:"subscriptions" yaml:"subscriptions"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified" yaml:"time_modified"`
}

WebhookReceiver is the configuration for a webhook alert receiver.

Required fields: - Description - Endpoint - Id - Name - Secrets - Subscriptions - TimeCreated - TimeModified

type WebhookReceiverCreateParams added in v0.5.0

type WebhookReceiverCreateParams struct {
	Body *WebhookCreate `json:"body,omitempty" yaml:"body,omitempty"`
}

WebhookReceiverCreateParams is the request parameters for WebhookReceiverCreate

Required fields: - Body

func (*WebhookReceiverCreateParams) Validate added in v0.5.0

func (p *WebhookReceiverCreateParams) Validate() error

Validate verifies all required fields for WebhookReceiverCreateParams are set

type WebhookReceiverUpdate added in v0.5.0

type WebhookReceiverUpdate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Endpoint is the URL that webhook notification requests should be sent to
	Endpoint string `json:"endpoint,omitempty" yaml:"endpoint,omitempty"`
	Name     Name   `json:"name,omitempty"     yaml:"name,omitempty"`
}

WebhookReceiverUpdate is parameters to update a webhook configuration.

type WebhookReceiverUpdateParams added in v0.5.0

type WebhookReceiverUpdateParams struct {
	Receiver NameOrId               `json:"receiver,omitempty" yaml:"receiver,omitempty"`
	Body     *WebhookReceiverUpdate `json:"body,omitempty"     yaml:"body,omitempty"`
}

WebhookReceiverUpdateParams is the request parameters for WebhookReceiverUpdate

Required fields: - Receiver - Body

func (*WebhookReceiverUpdateParams) Validate added in v0.5.0

func (p *WebhookReceiverUpdateParams) Validate() error

Validate verifies all required fields for WebhookReceiverUpdateParams are set

type WebhookSecret added in v0.5.0

type WebhookSecret struct {
	// Id is the public unique ID of the secret.
	Id string `json:"id" yaml:"id"`
	// TimeCreated is the UTC timestamp at which this secret was created.
	TimeCreated *time.Time `json:"time_created" yaml:"time_created"`
}

WebhookSecret is a view of a shared secret key assigned to a webhook receiver.

Once a secret is created, the value of the secret is not available in the API, as it must remain secret. Instead, secrets are referenced by their unique IDs assigned when they are created.

Required fields: - Id - TimeCreated

type WebhookSecretCreate added in v0.5.0

type WebhookSecretCreate struct {
	// Secret is the value of the shared secret key.
	Secret string `json:"secret" yaml:"secret"`
}

WebhookSecretCreate is the type definition for a WebhookSecretCreate.

Required fields: - Secret

type WebhookSecrets added in v0.5.0

type WebhookSecrets struct {
	Secrets []WebhookSecret `json:"secrets" yaml:"secrets"`
}

WebhookSecrets is a list of the IDs of secrets associated with a webhook receiver.

Required fields: - Secrets

type WebhookSecretsAddParams added in v0.5.0

type WebhookSecretsAddParams struct {
	Receiver NameOrId             `json:"receiver,omitempty" yaml:"receiver,omitempty"`
	Body     *WebhookSecretCreate `json:"body,omitempty"     yaml:"body,omitempty"`
}

WebhookSecretsAddParams is the request parameters for WebhookSecretsAdd

Required fields: - Receiver - Body

func (*WebhookSecretsAddParams) Validate added in v0.5.0

func (p *WebhookSecretsAddParams) Validate() error

Validate verifies all required fields for WebhookSecretsAddParams are set

type WebhookSecretsDeleteParams added in v0.5.0

type WebhookSecretsDeleteParams struct {
	SecretId string `json:"secret_id,omitempty" yaml:"secret_id,omitempty"`
}

WebhookSecretsDeleteParams is the request parameters for WebhookSecretsDelete

Required fields: - SecretId

func (*WebhookSecretsDeleteParams) Validate added in v0.5.0

func (p *WebhookSecretsDeleteParams) Validate() error

Validate verifies all required fields for WebhookSecretsDeleteParams are set

type WebhookSecretsListParams added in v0.5.0

type WebhookSecretsListParams struct {
	Receiver NameOrId `json:"receiver,omitempty" yaml:"receiver,omitempty"`
}

WebhookSecretsListParams is the request parameters for WebhookSecretsList

Required fields: - Receiver

func (*WebhookSecretsListParams) Validate added in v0.5.0

func (p *WebhookSecretsListParams) Validate() error

Validate verifies all required fields for WebhookSecretsListParams are set

Jump to

Keyboard shortcuts

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