oxide

package
v0.0.22 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2022 License: MIT Imports: 13 Imported by: 2

Documentation

Index

Constants

View Source
const HostEnvVar = "OXIDE_HOST"

HostEnvVar is the environment variable that contains the host.

View Source
const TokenEnvVar = "OXIDE_TOKEN"

TokenEnvVar is the environment variable that contains the token.

Variables

BinRangedoubleTypes is the collection of all BinRangedoubleType values.

BinRangeint64Types is the collection of all BinRangeint64Type values.

DatumTypes is the collection of all DatumType values.

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

DigestTypes is the collection of all DigestType values.

DiskMetricNames is the collection of all DiskMetricName values.

DiskSourceTypes is the collection of all DiskSourceType values.

DiskStateStates is the collection of all DiskStateState values.

ExternalIpCreateTypes is the collection of all ExternalIpCreateType values.

FieldSources is the collection of all FieldSource values.

FieldTypes is the collection of all FieldType values.

FleetRoles is the collection of all FleetRole values.

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

IdSortModes is the collection of all IdSortMode values.

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

IdentityProviderTypes is the collection of all IdentityProviderType values.

IdentityTypes is the collection of all IdentityType values.

IdpMetadataSourceTypes is the collection of all IdpMetadataSourceType values.

ImageSourceTypes is the collection of all ImageSourceType values.

InstanceDiskAttachmentTypes is the collection of all InstanceDiskAttachmentType values.

InstanceNetworkInterfaceAttachmentTypes is the collection of all InstanceNetworkInterfaceAttachmentType values.

InstanceStates is the collection of all InstanceState values.

IpKinds is the collection of all IpKind values.

NameOrIdSortModes is the collection of all NameOrIdSortMode values.

NameSortModes is the collection of all NameSortMode values.

OrganizationRoles is the collection of all OrganizationRole values.

ProjectRoles is the collection of all ProjectRole values.

RouteDestinationTypes is the collection of all RouteDestinationType values.

RouteTargetTypes is the collection of all RouteTargetType values.

RouterRouteKinds is the collection of all RouterRouteKind values.

SagaErrorInfoErrors is the collection of all SagaErrorInfoError values.

SagaStateStates is the collection of all SagaStateState values.

SiloRoles is the collection of all SiloRole values.

SnapshotStates is the collection of all SnapshotState values.

UserProvisionTypes is the collection of all UserProvisionType values.

VpcFirewallRuleActions is the collection of all VpcFirewallRuleAction values.

VpcFirewallRuleDirections is the collection of all VpcFirewallRuleDirection values.

VpcFirewallRuleHostFilterTypes is the collection of all VpcFirewallRuleHostFilterType values.

VpcFirewallRuleProtocols is the collection of all VpcFirewallRuleProtocol values.

VpcFirewallRuleStatuses is the collection of all VpcFirewallRuleStatus values.

VpcFirewallRuleTargetTypes is the collection of all VpcFirewallRuleTargetType values.

VpcRouterKinds is the collection of all VpcRouterKind values.

Functions

This section is empty.

Types

type BinRangedouble

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

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

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

type BinRangedoubleRange

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

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

type BinRangedoubleRangeFrom

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

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

type BinRangedoubleRangeTo

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

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

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 BinRangeint64

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

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

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

type BinRangeint64Range

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

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

type BinRangeint64RangeFrom

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

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

type BinRangeint64RangeTo

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

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

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 Bindouble

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

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

type Binint64

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

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

type BlockSize

type BlockSize int64

BlockSize is the type definition for a BlockSize.

type ByteCount

type ByteCount int64

ByteCount is a count of bytes, typically used either for memory or storage capacity

The maximum supported byte count is [`i64::MAX`]. This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX). We provide all of these for consumers' convenience.

type Client

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

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(token, userAgent, host string) (*Client, error)

NewClient creates a new client for the Oxide API. You need to pass in your API token to create the client.

func NewClientFromEnv

func NewClientFromEnv(userAgent string) (*Client, error)

NewClientFromEnv creates a new client for the Oxide API, using the token stored in the environment variable `OXIDE_TOKEN` and the host stored in the environment variable `OXIDE_HOST`.

func (*Client) ConsumeCredentials

func (c *Client) ConsumeCredentials(providerName Name, siloName Name, b io.Reader) error

ConsumeCredentials: Authenticate a user Either receive a username and password, or some sort of identity provider data (like a SAMLResponse). Use these to set the user's session cookie.

Parameters - `providerName` - `siloName`

func (*Client) DiskCreate

func (c *Client) DiskCreate(organizationName Name, projectName Name, j *DiskCreate) (*Disk, error)

DiskCreate: Create a disk

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) DiskDelete

func (c *Client) DiskDelete(diskName Name, organizationName Name, projectName Name) error

DiskDelete: Delete a disk

Parameters - `diskName` - `organizationName` - `projectName`

func (*Client) DiskList

func (c *Client) DiskList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*DiskResultsPage, error)

DiskList: List disks

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) DiskListAllPages

func (c *Client) DiskListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Disk, error)

DiskListAllPages: List disks

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) DiskMetricsList

func (c *Client) DiskMetricsList(diskName Name, metricName DiskMetricName, organizationName Name, projectName Name, endTime *time.Time, limit int, pageToken string, startTime *time.Time) (*MeasurementResultsPage, error)

DiskMetricsList: Fetch disk metrics

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

Parameters - `diskName` - `endTime` An exclusive end time of metrics. - `limit` Maximum number of items returned by a single call - `metricName` - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `startTime` An inclusive start time of metrics.

func (*Client) DiskMetricsListAllPages

func (c *Client) DiskMetricsListAllPages(diskName Name, metricName DiskMetricName, organizationName Name, projectName Name, endTime *time.Time, startTime *time.Time) (*[]Measurement, error)

DiskMetricsListAllPages: Fetch disk metrics

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

Parameters - `diskName` - `endTime` An exclusive end time of metrics. - `metricName` - `organizationName` - `projectName` - `startTime` An inclusive start time of metrics.

func (*Client) DiskView

func (c *Client) DiskView(diskName Name, organizationName Name, projectName Name) (*Disk, error)

DiskView: Fetch a disk

Parameters - `diskName` - `organizationName` - `projectName`

func (*Client) DiskViewById

func (c *Client) DiskViewById(id string) (*Disk, error)

DiskViewById: Fetch a disk by id

Parameters - `id`

func (*Client) ImageCreate

func (c *Client) ImageCreate(organizationName Name, projectName Name, j *ImageCreate) (*Image, error)

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ImageDelete

func (c *Client) ImageDelete(imageName Name, organizationName Name, projectName Name) error

ImageDelete: Delete an 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.

Parameters - `imageName` - `organizationName` - `projectName`

func (*Client) ImageList

func (c *Client) ImageList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*ImageResultsPage, error)

ImageList: List images List images in a 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.

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) ImageListAllPages

func (c *Client) ImageListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Image, error)

ImageListAllPages: List images List images in a 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.

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) ImageView

func (c *Client) ImageView(imageName Name, organizationName Name, projectName Name) (*Image, error)

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

Parameters - `imageName` - `organizationName` - `projectName`

func (*Client) ImageViewById

func (c *Client) ImageViewById(id string) (*Image, error)

ImageViewById: Fetch an image by id

Parameters - `id`

func (*Client) InstanceCreate

func (c *Client) InstanceCreate(organizationName Name, projectName Name, j *InstanceCreate) (*Instance, error)

InstanceCreate: Create an instance

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) InstanceDelete

func (c *Client) InstanceDelete(instanceName Name, organizationName Name, projectName Name) error

InstanceDelete: Delete an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceDiskAttach

func (c *Client) InstanceDiskAttach(instanceName Name, organizationName Name, projectName Name, j *DiskIdentifier) (*Disk, error)

InstanceDiskAttach: Attach a disk to an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceDiskDetach

func (c *Client) InstanceDiskDetach(instanceName Name, organizationName Name, projectName Name, j *DiskIdentifier) (*Disk, error)

InstanceDiskDetach: Detach a disk from an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceDiskList

func (c *Client) InstanceDiskList(limit int, pageToken string, sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*DiskResultsPage, error)

InstanceDiskList: List an instance's disks

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

Parameters - `instanceName` - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `sortBy`

func (*Client) InstanceDiskListAllPages

func (c *Client) InstanceDiskListAllPages(sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*[]Disk, error)

InstanceDiskListAllPages: List an instance's disks

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

Parameters - `instanceName` - `organizationName` - `projectName` - `sortBy`

func (*Client) InstanceExternalIpList

func (c *Client) InstanceExternalIpList(instanceName Name, organizationName Name, projectName Name) (*ExternalIpResultsPage, error)

InstanceExternalIpList: List external IP addresses

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceList

func (c *Client) InstanceList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*InstanceResultsPage, error)

InstanceList: List instances

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) InstanceListAllPages

func (c *Client) InstanceListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Instance, error)

InstanceListAllPages: List instances

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) InstanceMigrate

func (c *Client) InstanceMigrate(instanceName Name, organizationName Name, projectName Name, j *InstanceMigrate) (*Instance, error)

InstanceMigrate: Migrate an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceNetworkInterfaceCreate

func (c *Client) InstanceNetworkInterfaceCreate(instanceName Name, organizationName Name, projectName Name, j *NetworkInterfaceCreate) (*NetworkInterface, error)

InstanceNetworkInterfaceCreate: Create a network interface

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceNetworkInterfaceDelete

func (c *Client) InstanceNetworkInterfaceDelete(instanceName Name, interfaceName Name, organizationName Name, projectName Name) error

InstanceNetworkInterfaceDelete: Delete a 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.

Parameters - `instanceName` - `interfaceName` - `organizationName` - `projectName`

func (*Client) InstanceNetworkInterfaceList

func (c *Client) InstanceNetworkInterfaceList(limit int, pageToken string, sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*NetworkInterfaceResultsPage, error)

InstanceNetworkInterfaceList: List network interfaces

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

Parameters - `instanceName` - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `sortBy`

func (*Client) InstanceNetworkInterfaceListAllPages

func (c *Client) InstanceNetworkInterfaceListAllPages(sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*[]NetworkInterface, error)

InstanceNetworkInterfaceListAllPages: List network interfaces

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

Parameters - `instanceName` - `organizationName` - `projectName` - `sortBy`

func (*Client) InstanceNetworkInterfaceUpdate

func (c *Client) InstanceNetworkInterfaceUpdate(instanceName Name, interfaceName Name, organizationName Name, projectName Name, j *NetworkInterfaceUpdate) (*NetworkInterface, error)

InstanceNetworkInterfaceUpdate: Update a network interface

Parameters - `instanceName` - `interfaceName` - `organizationName` - `projectName`

func (*Client) InstanceNetworkInterfaceView

func (c *Client) InstanceNetworkInterfaceView(instanceName Name, interfaceName Name, organizationName Name, projectName Name) (*NetworkInterface, error)

InstanceNetworkInterfaceView: Fetch a network interface

Parameters - `instanceName` - `interfaceName` - `organizationName` - `projectName`

func (*Client) InstanceNetworkInterfaceViewById

func (c *Client) InstanceNetworkInterfaceViewById(id string) (*NetworkInterface, error)

InstanceNetworkInterfaceViewById: Fetch a network interface by id

Parameters - `id`

func (*Client) InstanceReboot

func (c *Client) InstanceReboot(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

InstanceReboot: Reboot an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceSerialConsole

func (c *Client) InstanceSerialConsole(instanceName Name, organizationName Name, projectName Name, fromStart int, maxBytes int, mostRecent int) (*InstanceSerialConsoleData, error)

InstanceSerialConsole: Fetch an instance's serial console

Parameters - `fromStart` Character index in the serial buffer from which to read, counting the bytes output since instance start. If this is not provided, `most_recent` must be provided, and if this *is* provided, `most_recent` must *not* be provided. - `instanceName` - `maxBytes` Maximum number of bytes of buffered serial console contents to return. If the requested range runs to the end of the available buffer, the data returned will be shorter than `max_bytes`. - `mostRecent` Character index in the serial buffer from which to read, counting *backward* from the most recently buffered data retrieved from the instance. (See note on `from_start` about mutual exclusivity) - `organizationName` - `projectName`

func (*Client) InstanceStart

func (c *Client) InstanceStart(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

InstanceStart: Boot an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceStop

func (c *Client) InstanceStop(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

InstanceStop: Halt an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceView

func (c *Client) InstanceView(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

InstanceView: Fetch an instance

Parameters - `instanceName` - `organizationName` - `projectName`

func (*Client) InstanceViewById

func (c *Client) InstanceViewById(id string) (*Instance, error)

InstanceViewById: Fetch an instance by id

Parameters - `id`

func (*Client) IpPoolCreate

func (c *Client) IpPoolCreate(j *IpPoolCreate) (*IpPool, error)

IpPoolCreate: Create an IP pool

func (*Client) IpPoolDelete

func (c *Client) IpPoolDelete(poolName Name) error

IpPoolDelete: Delete an IP Pool

Parameters - `poolName`

func (*Client) IpPoolList

func (c *Client) IpPoolList(limit int, pageToken string, sortBy NameOrIdSortMode) (*IpPoolResultsPage, error)

IpPoolList: List IP pools

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) IpPoolListAllPages

func (c *Client) IpPoolListAllPages(sortBy NameOrIdSortMode) (*[]IpPool, error)

IpPoolListAllPages: List IP pools

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

Parameters - `sortBy`

func (*Client) IpPoolRangeAdd

func (c *Client) IpPoolRangeAdd(poolName Name, j *IpRange) (*IpPoolRange, error)

IpPoolRangeAdd: Add a range to an IP pool

Parameters - `poolName`

func (*Client) IpPoolRangeList

func (c *Client) IpPoolRangeList(poolName Name, limit int, pageToken string) (*IpPoolRangeResultsPage, error)

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

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `poolName`

func (*Client) IpPoolRangeListAllPages

func (c *Client) IpPoolRangeListAllPages(poolName Name) (*[]IpPoolRange, error)

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

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

Parameters - `poolName`

func (*Client) IpPoolRangeRemove

func (c *Client) IpPoolRangeRemove(poolName Name, j *IpRange) error

IpPoolRangeRemove: Remove a range from an IP pool

Parameters - `poolName`

func (*Client) IpPoolServiceRangeAdd

func (c *Client) IpPoolServiceRangeAdd(rackId string, j *IpRange) (*IpPoolRange, error)

IpPoolServiceRangeAdd: Add a range to an IP pool used for Oxide services.

Parameters - `rackId`

func (*Client) IpPoolServiceRangeList

func (c *Client) IpPoolServiceRangeList(rackId string, limit int, pageToken string) (*IpPoolRangeResultsPage, error)

IpPoolServiceRangeList: List ranges for an IP pool used for Oxide services. Ranges are ordered by their first address.

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `rackId`

func (*Client) IpPoolServiceRangeListAllPages

func (c *Client) IpPoolServiceRangeListAllPages(rackId string) (*[]IpPoolRange, error)

IpPoolServiceRangeListAllPages: List ranges for an IP pool used for Oxide services. Ranges are ordered by their first address.

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

Parameters - `rackId`

func (*Client) IpPoolServiceRangeRemove

func (c *Client) IpPoolServiceRangeRemove(rackId string, j *IpRange) error

IpPoolServiceRangeRemove: Remove a range from an IP pool used for Oxide services.

Parameters - `rackId`

func (*Client) IpPoolServiceView

func (c *Client) IpPoolServiceView(rackId string) (*IpPool, error)

IpPoolServiceView: Fetch an IP pool used for Oxide services.

Parameters - `rackId`

func (*Client) IpPoolUpdate

func (c *Client) IpPoolUpdate(poolName Name, j *IpPoolUpdate) (*IpPool, error)

IpPoolUpdate: Update an IP Pool

Parameters - `poolName`

func (*Client) IpPoolView

func (c *Client) IpPoolView(poolName Name) (*IpPool, error)

IpPoolView: Fetch an IP pool

Parameters - `poolName`

func (*Client) IpPoolViewById added in v0.0.22

func (c *Client) IpPoolViewById(id string) (*IpPool, error)

IpPoolViewById: Fetch an IP pool by id

Parameters - `id`

func (*Client) Login

func (c *Client) Login(providerName Name, siloName Name) error

Login: Prompt user login Either display a page asking a user for their credentials, or redirect them to their identity provider.

Parameters - `providerName` - `siloName`

func (*Client) OrganizationCreate

func (c *Client) OrganizationCreate(j *OrganizationCreate) (*Organization, error)

OrganizationCreate: Create an organization

func (*Client) OrganizationDelete

func (c *Client) OrganizationDelete(organizationName Name) error

OrganizationDelete: Delete an organization

Parameters - `organizationName` The organization's unique name.

func (*Client) OrganizationList

func (c *Client) OrganizationList(limit int, pageToken string, sortBy NameOrIdSortMode) (*OrganizationResultsPage, error)

OrganizationList: List organizations

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) OrganizationListAllPages

func (c *Client) OrganizationListAllPages(sortBy NameOrIdSortMode) (*[]Organization, error)

OrganizationListAllPages: List organizations

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

Parameters - `sortBy`

func (*Client) OrganizationPolicyUpdate

func (c *Client) OrganizationPolicyUpdate(organizationName Name, j *OrganizationRolePolicy) (*OrganizationRolePolicy, error)

OrganizationPolicyUpdate: Update an organization's IAM policy

Parameters - `organizationName` The organization's unique name.

func (*Client) OrganizationPolicyView

func (c *Client) OrganizationPolicyView(organizationName Name) (*OrganizationRolePolicy, error)

OrganizationPolicyView: Fetch an organization's IAM policy

Parameters - `organizationName` The organization's unique name.

func (*Client) OrganizationUpdate

func (c *Client) OrganizationUpdate(organizationName Name, j *OrganizationUpdate) (*Organization, error)

OrganizationUpdate: Update an organization

Parameters - `organizationName` The organization's unique name.

func (*Client) OrganizationView

func (c *Client) OrganizationView(organizationName Name) (*Organization, error)

OrganizationView: Fetch an organization

Parameters - `organizationName` The organization's unique name.

func (*Client) OrganizationViewById

func (c *Client) OrganizationViewById(id string) (*Organization, error)

OrganizationViewById: Fetch an organization by id

Parameters - `id`

func (*Client) PolicyUpdate

func (c *Client) PolicyUpdate(j *SiloRolePolicy) (*SiloRolePolicy, error)

PolicyUpdate: Update the current silo's IAM policy

func (*Client) PolicyView

func (c *Client) PolicyView() (*SiloRolePolicy, error)

PolicyView: Fetch the current silo's IAM policy

func (*Client) ProjectCreate

func (c *Client) ProjectCreate(organizationName Name, j *ProjectCreate) (*Project, error)

ProjectCreate: Create a project

Parameters - `organizationName` The organization's unique name.

func (*Client) ProjectDelete

func (c *Client) ProjectDelete(organizationName Name, projectName Name) error

ProjectDelete: Delete a project

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ProjectList

func (c *Client) ProjectList(limit int, pageToken string, sortBy NameOrIdSortMode, organizationName Name) (*ProjectResultsPage, error)

ProjectList: List projects

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) ProjectListAllPages

func (c *Client) ProjectListAllPages(sortBy NameOrIdSortMode, organizationName Name) (*[]Project, error)

ProjectListAllPages: List projects

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

Parameters - `organizationName` The organization's unique name. - `sortBy`

func (*Client) ProjectPolicyUpdate

func (c *Client) ProjectPolicyUpdate(organizationName Name, projectName Name, j *ProjectRolePolicy) (*ProjectRolePolicy, error)

ProjectPolicyUpdate: Update a project's IAM policy

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ProjectPolicyView

func (c *Client) ProjectPolicyView(organizationName Name, projectName Name) (*ProjectRolePolicy, error)

ProjectPolicyView: Fetch a project's IAM policy

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ProjectUpdate

func (c *Client) ProjectUpdate(organizationName Name, projectName Name, j *ProjectUpdate) (*Project, error)

ProjectUpdate: Update a project

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ProjectView

func (c *Client) ProjectView(organizationName Name, projectName Name) (*Project, error)

ProjectView: Fetch a project

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) ProjectViewById

func (c *Client) ProjectViewById(id string) (*Project, error)

ProjectViewById: Fetch a project by id

Parameters - `id`

func (*Client) RackList

func (c *Client) RackList(limit int, pageToken string, sortBy IdSortMode) (*RackResultsPage, error)

RackList: List racks

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) RackListAllPages

func (c *Client) RackListAllPages(sortBy IdSortMode) (*[]Rack, error)

RackListAllPages: List racks

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

Parameters - `sortBy`

func (*Client) RackView

func (c *Client) RackView(rackId string) (*Rack, error)

RackView: Fetch a rack

Parameters - `rackId` The rack's unique ID.

func (*Client) RoleList

func (c *Client) RoleList(limit int, pageToken string) (*RoleResultsPage, error)

RoleList: List built-in roles

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page

func (*Client) RoleListAllPages

func (c *Client) RoleListAllPages() (*[]Role, error)

RoleListAllPages: List built-in roles

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

func (*Client) RoleView

func (c *Client) RoleView(roleName string) (*Role, error)

RoleView: Fetch a built-in role

Parameters - `roleName` The built-in role's unique name.

func (*Client) SagaList

func (c *Client) SagaList(limit int, pageToken string, sortBy IdSortMode) (*SagaResultsPage, error)

SagaList: List sagas

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SagaListAllPages

func (c *Client) SagaListAllPages(sortBy IdSortMode) (*[]Saga, error)

SagaListAllPages: List sagas

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

Parameters - `sortBy`

func (*Client) SagaView

func (c *Client) SagaView(sagaId string) (*Saga, error)

SagaView: Fetch a saga

Parameters - `sagaId`

func (*Client) SessionSshkeyCreate

func (c *Client) SessionSshkeyCreate(j *SshKeyCreate) (*SshKey, error)

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

func (*Client) SessionSshkeyDelete

func (c *Client) SessionSshkeyDelete(sshKeyName Name) error

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

Parameters - `sshKeyName`

func (*Client) SessionSshkeyList

func (c *Client) SessionSshkeyList(limit int, pageToken string, sortBy NameSortMode) (*SshKeyResultsPage, error)

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

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SessionSshkeyListAllPages

func (c *Client) SessionSshkeyListAllPages(sortBy NameSortMode) (*[]SshKey, error)

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

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

Parameters - `sortBy`

func (*Client) SessionSshkeyView

func (c *Client) SessionSshkeyView(sshKeyName Name) (*SshKey, error)

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

Parameters - `sshKeyName`

func (*Client) SiloCreate

func (c *Client) SiloCreate(j *SiloCreate) (*Silo, error)

SiloCreate: Create a silo

func (*Client) SiloDelete

func (c *Client) SiloDelete(siloName Name) error

SiloDelete: Delete a silo Delete a silo by name.

Parameters - `siloName` The silo's unique name.

func (*Client) SiloIdentityProviderCreate

func (c *Client) SiloIdentityProviderCreate(siloName Name, j *SamlIdentityProviderCreate) (*SamlIdentityProvider, error)

SiloIdentityProviderCreate: Create a SAML IDP

Parameters - `siloName` The silo's unique name.

func (*Client) SiloIdentityProviderList

func (c *Client) SiloIdentityProviderList(siloName Name, limit int, pageToken string, sortBy NameSortMode) (*IdentityProviderResultsPage, error)

SiloIdentityProviderList: List a silo's IDPs

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `siloName` The silo's unique name. - `sortBy`

func (*Client) SiloIdentityProviderListAllPages

func (c *Client) SiloIdentityProviderListAllPages(siloName Name, sortBy NameSortMode) (*[]IdentityProvider, error)

SiloIdentityProviderListAllPages: List a silo's IDPs

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

Parameters - `siloName` The silo's unique name. - `sortBy`

func (*Client) SiloIdentityProviderView

func (c *Client) SiloIdentityProviderView(providerName Name, siloName Name) (*SamlIdentityProvider, error)

SiloIdentityProviderView: Fetch a SAML IDP

Parameters - `providerName` The SAML identity provider's name - `siloName` The silo's unique name.

func (*Client) SiloList

func (c *Client) SiloList(limit int, pageToken string, sortBy NameOrIdSortMode) (*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.

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SiloListAllPages

func (c *Client) SiloListAllPages(sortBy NameOrIdSortMode) (*[]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.

Parameters - `sortBy`

func (*Client) SiloPolicyUpdate

func (c *Client) SiloPolicyUpdate(siloName Name, j *SiloRolePolicy) (*SiloRolePolicy, error)

SiloPolicyUpdate: Update a silo's IAM policy

Parameters - `siloName` The silo's unique name.

func (*Client) SiloPolicyView

func (c *Client) SiloPolicyView(siloName Name) (*SiloRolePolicy, error)

SiloPolicyView: Fetch a silo's IAM policy

Parameters - `siloName` The silo's unique name.

func (*Client) SiloView

func (c *Client) SiloView(siloName Name) (*Silo, error)

SiloView: Fetch a silo Fetch a silo by name.

Parameters - `siloName` The silo's unique name.

func (*Client) SiloViewById added in v0.0.22

func (c *Client) SiloViewById(id string) (*Silo, error)

SiloViewById: Fetch a silo by id

Parameters - `id`

func (*Client) SledList

func (c *Client) SledList(limit int, pageToken string, sortBy IdSortMode) (*SledResultsPage, error)

SledList: List sleds

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SledListAllPages

func (c *Client) SledListAllPages(sortBy IdSortMode) (*[]Sled, error)

SledListAllPages: List sleds

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

Parameters - `sortBy`

func (*Client) SledView

func (c *Client) SledView(sledId string) (*Sled, error)

SledView: Fetch a sled

Parameters - `sledId` The sled's unique ID.

func (*Client) SnapshotCreate

func (c *Client) SnapshotCreate(organizationName Name, projectName Name, j *SnapshotCreate) (*Snapshot, error)

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) SnapshotDelete

func (c *Client) SnapshotDelete(organizationName Name, projectName Name, snapshotName Name) error

SnapshotDelete: Delete a snapshot

Parameters - `organizationName` - `projectName` - `snapshotName`

func (*Client) SnapshotList

func (c *Client) SnapshotList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*SnapshotResultsPage, error)

SnapshotList: List snapshots

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) SnapshotListAllPages

func (c *Client) SnapshotListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Snapshot, error)

SnapshotListAllPages: List snapshots

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) SnapshotView

func (c *Client) SnapshotView(organizationName Name, projectName Name, snapshotName Name) (*Snapshot, error)

SnapshotView: Fetch a snapshot

Parameters - `organizationName` - `projectName` - `snapshotName`

func (*Client) SnapshotViewById

func (c *Client) SnapshotViewById(id string) (*Snapshot, error)

SnapshotViewById: Fetch a snapshot by id

Parameters - `id`

func (*Client) SystemImageCreate added in v0.0.22

func (c *Client) SystemImageCreate(j *GlobalImageCreate) (*GlobalImage, error)

SystemImageCreate: Create a system-wide image Create a new system-wide image. This image can then be used by any user in any silo as a base for instances.

func (*Client) SystemImageDelete added in v0.0.22

func (c *Client) SystemImageDelete(imageName Name) error

SystemImageDelete: Delete a system-wide image Permanently delete a system-wide image. This operation cannot be undone. Any instances using the system-wide image will continue to run, however new instances can not be created with this image.

Parameters - `imageName`

func (*Client) SystemImageList added in v0.0.22

func (c *Client) SystemImageList(limit int, pageToken string, sortBy NameSortMode) (*GlobalImageResultsPage, error)

SystemImageList: List system-wide images Returns a list of all the system-wide images. System-wide images are returned sorted by creation date, with the most recent images appearing first.

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SystemImageListAllPages added in v0.0.22

func (c *Client) SystemImageListAllPages(sortBy NameSortMode) (*[]GlobalImage, error)

SystemImageListAllPages: List system-wide images Returns a list of all the system-wide images. System-wide images are returned sorted by creation date, with the most recent images appearing first.

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

Parameters - `sortBy`

func (*Client) SystemImageView added in v0.0.22

func (c *Client) SystemImageView(imageName Name) (*GlobalImage, error)

SystemImageView: Fetch a system-wide image Returns the details of a specific system-wide image.

Parameters - `imageName`

func (*Client) SystemImageViewById added in v0.0.22

func (c *Client) SystemImageViewById(id string) (*GlobalImage, error)

SystemImageViewById: Fetch a system-wide image by id

Parameters - `id`

func (*Client) SystemPolicyUpdate

func (c *Client) SystemPolicyUpdate(j *FleetRolePolicy) (*FleetRolePolicy, error)

SystemPolicyUpdate: Update the top-level IAM policy

func (*Client) SystemPolicyView

func (c *Client) SystemPolicyView() (*FleetRolePolicy, error)

SystemPolicyView: Fetch the top-level IAM policy

func (*Client) SystemUserList

func (c *Client) SystemUserList(limit int, pageToken string, sortBy NameSortMode) (*UserBuiltinResultsPage, error)

SystemUserList: List built-in users

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) SystemUserListAllPages

func (c *Client) SystemUserListAllPages(sortBy NameSortMode) (*[]UserBuiltin, error)

SystemUserListAllPages: List built-in users

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

Parameters - `sortBy`

func (*Client) SystemUserView

func (c *Client) SystemUserView(userName Name) (*UserBuiltin, error)

SystemUserView: Fetch a built-in user

Parameters - `userName` The built-in user's unique name.

func (*Client) TimeseriesSchemaGet

func (c *Client) TimeseriesSchemaGet(limit int, pageToken string) (*TimeseriesSchemaResultsPage, error)

TimeseriesSchemaGet: List timeseries schema

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page

func (*Client) TimeseriesSchemaGetAllPages

func (c *Client) TimeseriesSchemaGetAllPages() (*[]TimeseriesSchema, error)

TimeseriesSchemaGetAllPages: List timeseries schema

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

func (*Client) UpdatesRefresh

func (c *Client) UpdatesRefresh() error

UpdatesRefresh: Refresh update data

func (*Client) UserList

func (c *Client) UserList(limit int, pageToken string, sortBy IdSortMode) (*UserResultsPage, error)

UserList: List users

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

Parameters - `limit` Maximum number of items returned by a single call - `pageToken` Token returned by previous call to retrieve the subsequent page - `sortBy`

func (*Client) UserListAllPages

func (c *Client) UserListAllPages(sortBy IdSortMode) (*[]User, error)

UserListAllPages: List users

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

Parameters - `sortBy`

func (*Client) VpcCreate

func (c *Client) VpcCreate(organizationName Name, projectName Name, j *VpcCreate) (*Vpc, error)

VpcCreate: Create a VPC

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization.

func (*Client) VpcDelete

func (c *Client) VpcDelete(organizationName Name, projectName Name, vpcName Name) error

VpcDelete: Delete a VPC

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcFirewallRulesUpdate

func (c *Client) VpcFirewallRulesUpdate(organizationName Name, projectName Name, vpcName Name, j *VpcFirewallRuleUpdateParams) (*VpcFirewallRules, error)

VpcFirewallRulesUpdate: Replace firewall rules

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcFirewallRulesView

func (c *Client) VpcFirewallRulesView(organizationName Name, projectName Name, vpcName Name) (*VpcFirewallRules, error)

VpcFirewallRulesView: List firewall rules

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcList

func (c *Client) VpcList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*VpcResultsPage, error)

VpcList: List VPCs

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` The organization's unique name. - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) VpcListAllPages

func (c *Client) VpcListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Vpc, error)

VpcListAllPages: List VPCs

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

Parameters - `organizationName` The organization's unique name. - `projectName` The project's unique name within the organization. - `sortBy`

func (*Client) VpcRouterCreate

func (c *Client) VpcRouterCreate(organizationName Name, projectName Name, vpcName Name, j *VpcRouterCreate) (*VpcRouter, error)

VpcRouterCreate: Create a router

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcRouterDelete

func (c *Client) VpcRouterDelete(organizationName Name, projectName Name, routerName Name, vpcName Name) error

VpcRouterDelete: Delete a router

Parameters - `organizationName` - `projectName` - `routerName` - `vpcName`

func (*Client) VpcRouterList

func (c *Client) VpcRouterList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*VpcRouterResultsPage, error)

VpcRouterList: List routers

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `sortBy` - `vpcName`

func (*Client) VpcRouterListAllPages

func (c *Client) VpcRouterListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*[]VpcRouter, error)

VpcRouterListAllPages: List routers

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

Parameters - `organizationName` - `projectName` - `sortBy` - `vpcName`

func (*Client) VpcRouterRouteCreate

func (c *Client) VpcRouterRouteCreate(organizationName Name, projectName Name, routerName Name, vpcName Name, j *RouterRouteCreateParams) (*RouterRoute, error)

VpcRouterRouteCreate: Create a router

Parameters - `organizationName` - `projectName` - `routerName` - `vpcName`

func (*Client) VpcRouterRouteDelete

func (c *Client) VpcRouterRouteDelete(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name) error

VpcRouterRouteDelete: Delete a route

Parameters - `organizationName` - `projectName` - `routeName` - `routerName` - `vpcName`

func (*Client) VpcRouterRouteList

func (c *Client) VpcRouterRouteList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, routerName Name, vpcName Name) (*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.

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `routerName` - `sortBy` - `vpcName`

func (*Client) VpcRouterRouteListAllPages

func (c *Client) VpcRouterRouteListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, routerName Name, vpcName Name) (*[]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.

Parameters - `organizationName` - `projectName` - `routerName` - `sortBy` - `vpcName`

func (*Client) VpcRouterRouteUpdate

func (c *Client) VpcRouterRouteUpdate(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name, j *RouterRouteUpdateParams) (*RouterRoute, error)

VpcRouterRouteUpdate: Update a route

Parameters - `organizationName` - `projectName` - `routeName` - `routerName` - `vpcName`

func (*Client) VpcRouterRouteView

func (c *Client) VpcRouterRouteView(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name) (*RouterRoute, error)

VpcRouterRouteView: Fetch a route

Parameters - `organizationName` - `projectName` - `routeName` - `routerName` - `vpcName`

func (*Client) VpcRouterRouteViewById

func (c *Client) VpcRouterRouteViewById(id string) (*RouterRoute, error)

VpcRouterRouteViewById: Fetch a route by id

Parameters - `id`

func (*Client) VpcRouterUpdate

func (c *Client) VpcRouterUpdate(organizationName Name, projectName Name, routerName Name, vpcName Name, j *VpcRouterUpdate) (*VpcRouter, error)

VpcRouterUpdate: Update a router

Parameters - `organizationName` - `projectName` - `routerName` - `vpcName`

func (*Client) VpcRouterView

func (c *Client) VpcRouterView(organizationName Name, projectName Name, routerName Name, vpcName Name) (*VpcRouter, error)

VpcRouterView: Get a router

Parameters - `organizationName` - `projectName` - `routerName` - `vpcName`

func (*Client) VpcRouterViewById

func (c *Client) VpcRouterViewById(id string) (*VpcRouter, error)

VpcRouterViewById: Get a router by id

Parameters - `id`

func (*Client) VpcSubnetCreate

func (c *Client) VpcSubnetCreate(organizationName Name, projectName Name, vpcName Name, j *VpcSubnetCreate) (*VpcSubnet, error)

VpcSubnetCreate: Create a subnet

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcSubnetDelete

func (c *Client) VpcSubnetDelete(organizationName Name, projectName Name, subnetName Name, vpcName Name) error

VpcSubnetDelete: Delete a subnet

Parameters - `organizationName` - `projectName` - `subnetName` - `vpcName`

func (*Client) VpcSubnetList

func (c *Client) VpcSubnetList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*VpcSubnetResultsPage, error)

VpcSubnetList: List subnets

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `sortBy` - `vpcName`

func (*Client) VpcSubnetListAllPages

func (c *Client) VpcSubnetListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*[]VpcSubnet, error)

VpcSubnetListAllPages: List subnets

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

Parameters - `organizationName` - `projectName` - `sortBy` - `vpcName`

func (*Client) VpcSubnetListNetworkInterfaces

func (c *Client) VpcSubnetListNetworkInterfaces(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, subnetName Name, vpcName Name) (*NetworkInterfaceResultsPage, error)

VpcSubnetListNetworkInterfaces: List network interfaces

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

Parameters - `limit` Maximum number of items returned by a single call - `organizationName` - `pageToken` Token returned by previous call to retrieve the subsequent page - `projectName` - `sortBy` - `subnetName` - `vpcName`

func (*Client) VpcSubnetListNetworkInterfacesAllPages

func (c *Client) VpcSubnetListNetworkInterfacesAllPages(sortBy NameSortMode, organizationName Name, projectName Name, subnetName Name, vpcName Name) (*[]NetworkInterface, error)

VpcSubnetListNetworkInterfacesAllPages: List network interfaces

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

Parameters - `organizationName` - `projectName` - `sortBy` - `subnetName` - `vpcName`

func (*Client) VpcSubnetUpdate

func (c *Client) VpcSubnetUpdate(organizationName Name, projectName Name, subnetName Name, vpcName Name, j *VpcSubnetUpdate) (*VpcSubnet, error)

VpcSubnetUpdate: Update a subnet

Parameters - `organizationName` - `projectName` - `subnetName` - `vpcName`

func (*Client) VpcSubnetView

func (c *Client) VpcSubnetView(organizationName Name, projectName Name, subnetName Name, vpcName Name) (*VpcSubnet, error)

VpcSubnetView: Fetch a subnet

Parameters - `organizationName` - `projectName` - `subnetName` - `vpcName`

func (*Client) VpcSubnetViewById

func (c *Client) VpcSubnetViewById(id string) (*VpcSubnet, error)

VpcSubnetViewById: Fetch a subnet by id

Parameters - `id`

func (*Client) VpcUpdate

func (c *Client) VpcUpdate(organizationName Name, projectName Name, vpcName Name, j *VpcUpdate) (*Vpc, error)

VpcUpdate: Update a VPC

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcView

func (c *Client) VpcView(organizationName Name, projectName Name, vpcName Name) (*Vpc, error)

VpcView: Fetch a VPC

Parameters - `organizationName` - `projectName` - `vpcName`

func (*Client) VpcViewById

func (c *Client) VpcViewById(id string) (*Vpc, error)

VpcViewById: Fetch a VPC

Parameters - `id`

func (*Client) WithToken

func (c *Client) WithToken(token string)

WithToken overrides the token used for authentication.

type Cumulativedouble

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

Cumulativedouble is a cumulative or counter data type.

type Cumulativeint64

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

Cumulativeint64 is a cumulative or counter data type.

type Datum

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

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

type DatumBool

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

DatumBool is the type definition for a DatumBool.

type DatumBytes

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

DatumBytes is the type definition for a DatumBytes.

type DatumCumulativeF64

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

DatumCumulativeF64 is the type definition for a DatumCumulativeF64.

type DatumCumulativeI64

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

DatumCumulativeI64 is the type definition for a DatumCumulativeI64.

type DatumF64

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

DatumF64 is the type definition for a DatumF64.

type DatumHistogramF64

type DatumHistogramF64 struct {
	// Datum is a simple type for managing a 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.
	//
	// Example ------- “`rust use oximeter::histogram::{BinRange, Histogram};
	//
	// let edges = [0i64, 10, 20]; let mut hist = Histogram::new(&edges).unwrap(); assert_eq!(hist.n_bins(), 4); // One additional bin for the range (20..) assert_eq!(hist.n_samples(), 0); hist.sample(4); hist.sample(100); assert_eq!(hist.n_samples(), 2);
	//
	// let data = hist.iter().collect::<Vec<_>>(); assert_eq!(data[0].range, BinRange::range(i64::MIN, 0)); // An additional bin for `..0` assert_eq!(data[0].count, 0); // Nothing is in this bin
	//
	// assert_eq!(data[1].range, BinRange::range(0, 10)); // The range `0..10` assert_eq!(data[1].count, 1); // 4 is sampled into this bin “`
	//
	// Notes -----
	//
	// Histograms may be constructed either from their left bin edges, or from a sequence of ranges. In either case, the left-most bin may be converted upon construction. In particular, if the left-most value is not equal to the minimum of the support, a new bin will be added from the minimum to that provided value. If the left-most value _is_ the support's minimum, because the provided bin was unbounded below, such as `(..0)`, then that bin will be converted into one bounded below, `(MIN..0)` in this case.
	//
	// The short of this is that, most of the time, it shouldn't matter. If one specifies the extremes of the support as their bins, be aware that the left-most may be converted from a `BinRange::RangeTo` into a `BinRange::Range`. In other words, the first bin of a histogram is _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In fact, every bin is one of those variants, the `BinRange::RangeTo` is only provided as a convenience during construction.
	Datum Histogramdouble `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType       `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramF64 is the type definition for a DatumHistogramF64.

type DatumHistogramI64

type DatumHistogramI64 struct {
	// Datum is a simple type for managing a 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.
	//
	// Example ------- “`rust use oximeter::histogram::{BinRange, Histogram};
	//
	// let edges = [0i64, 10, 20]; let mut hist = Histogram::new(&edges).unwrap(); assert_eq!(hist.n_bins(), 4); // One additional bin for the range (20..) assert_eq!(hist.n_samples(), 0); hist.sample(4); hist.sample(100); assert_eq!(hist.n_samples(), 2);
	//
	// let data = hist.iter().collect::<Vec<_>>(); assert_eq!(data[0].range, BinRange::range(i64::MIN, 0)); // An additional bin for `..0` assert_eq!(data[0].count, 0); // Nothing is in this bin
	//
	// assert_eq!(data[1].range, BinRange::range(0, 10)); // The range `0..10` assert_eq!(data[1].count, 1); // 4 is sampled into this bin “`
	//
	// Notes -----
	//
	// Histograms may be constructed either from their left bin edges, or from a sequence of ranges. In either case, the left-most bin may be converted upon construction. In particular, if the left-most value is not equal to the minimum of the support, a new bin will be added from the minimum to that provided value. If the left-most value _is_ the support's minimum, because the provided bin was unbounded below, such as `(..0)`, then that bin will be converted into one bounded below, `(MIN..0)` in this case.
	//
	// The short of this is that, most of the time, it shouldn't matter. If one specifies the extremes of the support as their bins, be aware that the left-most may be converted from a `BinRange::RangeTo` into a `BinRange::Range`. In other words, the first bin of a histogram is _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In fact, every bin is one of those variants, the `BinRange::RangeTo` is only provided as a convenience during construction.
	Datum Histogramint64 `json:"datum,omitempty" yaml:"datum,omitempty"`
	Type  DatumType      `json:"type,omitempty" yaml:"type,omitempty"`
}

DatumHistogramI64 is the type definition for a DatumHistogramI64.

type DatumI64

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

DatumI64 is the type definition for a DatumI64.

type DatumString

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

DatumString is the type definition for a DatumString.

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 DatumTypeCumulativeF64 DatumType = "cumulative_f64"

DatumTypeCumulativeF64 represents the DatumType `"cumulative_f64"`.

const DatumTypeCumulativeI64 DatumType = "cumulative_i64"

DatumTypeCumulativeI64 represents the DatumType `"cumulative_i64"`.

const DatumTypeF64 DatumType = "f64"

DatumTypeF64 represents the DatumType `"f64"`.

const DatumTypeHistogramF64 DatumType = "histogram_f64"

DatumTypeHistogramF64 represents the DatumType `"histogram_f64"`.

const DatumTypeHistogramI64 DatumType = "histogram_i64"

DatumTypeHistogramI64 represents the DatumType `"histogram_i64"`.

const DatumTypeI64 DatumType = "i64"

DatumTypeI64 represents the DatumType `"i64"`.

const DatumTypeString DatumType = "string"

DatumTypeString represents the DatumType `"string"`.

type DerEncodedKeyPair

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

DerEncodedKeyPair is the type definition for a DerEncodedKeyPair.

type DeviceAccessTokenRequest

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

DeviceAccessTokenRequest is the type definition for a DeviceAccessTokenRequest.

type DeviceAuthRequest

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

DeviceAuthRequest is the type definition for a DeviceAuthRequest.

type DeviceAuthVerify

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

DeviceAuthVerify is the type definition for a DeviceAuthVerify.

type Digest

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

Digest is the type definition for a Digest.

type DigestSha256

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

DigestSha256 is the type definition for a DigestSha256.

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 a count of bytes, typically used either for memory or storage capacity
	//
	// The maximum supported byte count is [`i64::MAX`].  This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX).  We provide all of these for consumers' convenience.
	BlockSize ByteCount `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	DevicePath  string `json:"device_path,omitempty" yaml:"device_path,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id      string `json:"id,omitempty" yaml:"id,omitempty"`
	ImageId string `json:"image_id,omitempty" yaml:"image_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty"`
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is a count of bytes, typically used either for memory or storage capacity
	//
	// The maximum supported byte count is [`i64::MAX`].  This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX).  We provide all of these for consumers' convenience.
	Size       ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	SnapshotId string    `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty"`
	// State is state of a Disk (primarily: attached or not)
	State DiskState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Disk is client view of a [`Disk`]

type DiskCreate

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

DiskCreate is create-time parameters for a [`Disk`](omicron_common::api::external::Disk)

type DiskIdentifier

type DiskIdentifier struct {
	// 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 though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

DiskIdentifier is parameters for the [`Disk`](omicron_common::api::external::Disk) to be attached or detached to an instance

type DiskMetricName

type DiskMetricName string

DiskMetricName is the type definition for a DiskMetricName.

const DiskMetricNameActivated DiskMetricName = "activated"

DiskMetricNameActivated represents the DiskMetricName `"activated"`.

const DiskMetricNameFlush DiskMetricName = "flush"

DiskMetricNameFlush represents the DiskMetricName `"flush"`.

const DiskMetricNameRead DiskMetricName = "read"

DiskMetricNameRead represents the DiskMetricName `"read"`.

const DiskMetricNameReadBytes DiskMetricName = "read_bytes"

DiskMetricNameReadBytes represents the DiskMetricName `"read_bytes"`.

const DiskMetricNameWrite DiskMetricName = "write"

DiskMetricNameWrite represents the DiskMetricName `"write"`.

const DiskMetricNameWriteBytes DiskMetricName = "write_bytes"

DiskMetricNameWriteBytes represents the DiskMetricName `"write_bytes"`.

type DiskResultsPage

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

DiskResultsPage is a single page of results

type DiskSource

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

DiskSource is different sources for a disk

type DiskSourceBlank

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

DiskSourceBlank is create a blank disk

type DiskSourceGlobalImage

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

DiskSourceGlobalImage is create a disk from a global image

type DiskSourceImage

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

DiskSourceImage is create a disk from a project image

type DiskSourceSnapshot

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

DiskSourceSnapshot is create a disk from a disk snapshot

type DiskSourceType

type DiskSourceType string

DiskSourceType is the type definition for a DiskSourceType.

const DiskSourceTypeBlank DiskSourceType = "blank"

DiskSourceTypeBlank represents the DiskSourceType `"blank"`.

const DiskSourceTypeGlobalImage DiskSourceType = "global_image"

DiskSourceTypeGlobalImage represents the DiskSourceType `"global_image"`.

const DiskSourceTypeImage DiskSourceType = "image"

DiskSourceTypeImage represents the DiskSourceType `"image"`.

const DiskSourceTypeSnapshot DiskSourceType = "snapshot"

DiskSourceTypeSnapshot represents the DiskSourceType `"snapshot"`.

type DiskState

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

DiskState is state of a Disk (primarily: attached or not)

type DiskStateAttached

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

DiskStateAttached is disk is attached to the given Instance

type DiskStateAttaching

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

DiskStateAttaching is disk is being attached to the given Instance

type DiskStateCreating

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

DiskStateCreating is disk is being initialized

type DiskStateDestroyed

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

DiskStateDestroyed is disk has been destroyed

type DiskStateDetached

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

DiskStateDetached is disk is ready but detached from any Instance

type DiskStateDetaching

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

DiskStateDetaching is disk is being detached from the given Instance

type DiskStateFaulted

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

DiskStateFaulted is disk is unavailable

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"`.

type Distribution

type Distribution struct {
	// Name is the name of the distribution (e.g. "alpine" or "ubuntu")
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Version is the version of the distribution (e.g. "3.10" or "18.04")
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

Distribution is oS image distribution

type Error

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

Error is error information from a response.

type ErrorResponse

type ErrorResponse Error

ErrorResponse is the response given when error

type ExternalIp

type ExternalIp struct {
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Kind is the kind of an external IP address for an instance
	Kind IpKind `json:"kind,omitempty" yaml:"kind,omitempty"`
}

ExternalIp is the type definition for a ExternalIp.

type ExternalIpCreate

type ExternalIpCreate struct {
	// PoolName is the type definition for a PoolName.
	PoolName Name `json:"pool_name,omitempty" yaml:"pool_name,omitempty"`
	// Type is the type definition for a Type.
	Type ExternalIpCreateType `json:"type,omitempty" yaml:"type,omitempty"`
}

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

type ExternalIpCreateEphemeral

type ExternalIpCreateEphemeral struct {
	PoolName Name                 `json:"pool_name,omitempty" yaml:"pool_name,omitempty"`
	Type     ExternalIpCreateType `json:"type,omitempty" yaml:"type,omitempty"`
}

ExternalIpCreateEphemeral is an IP address providing both inbound and outbound access. The address is automatically-assigned from the provided IP Pool, or all available pools if not specified.

type ExternalIpCreateType

type ExternalIpCreateType string

ExternalIpCreateType is the type definition for a ExternalIpCreateType.

const ExternalIpCreateTypeEphemeral ExternalIpCreateType = "ephemeral"

ExternalIpCreateTypeEphemeral represents the ExternalIpCreateType `"ephemeral"`.

type ExternalIpResultsPage

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

ExternalIpResultsPage is a single page of results

type FieldSchema

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

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

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 FieldTypeI64 FieldType = "i64"

FieldTypeI64 represents the FieldType `"i64"`.

const FieldTypeIpAddr FieldType = "ip_addr"

FieldTypeIpAddr represents the FieldType `"ip_addr"`.

const FieldTypeString FieldType = "string"

FieldTypeString represents the FieldType `"string"`.

const FieldTypeUuid FieldType = "uuid"

FieldTypeUuid represents the FieldType `"uuid"`.

type FleetRole

type FleetRole string

FleetRole is the type definition for a FleetRole.

const FleetRoleAdmin FleetRole = "admin"

FleetRoleAdmin represents the FleetRole `"admin"`.

const FleetRoleCollaborator FleetRole = "collaborator"

FleetRoleCollaborator represents the FleetRole `"collaborator"`.

const FleetRoleViewer FleetRole = "viewer"

FleetRoleViewer represents the FleetRole `"viewer"`.

type FleetRolePolicy

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

FleetRolePolicy is client view of a [`Policy`], which describes how this resource may be accessed

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.

type FleetRoleRoleAssignment

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

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

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

type GlobalImage

type GlobalImage struct {
	// BlockSize is size of blocks in bytes
	BlockSize ByteCount `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Digest is hash of the image contents, if applicable
	Digest Digest `json:"digest,omitempty" yaml:"digest,omitempty"`
	// Distribution is image distribution
	Distribution string `json:"distribution,omitempty" yaml:"distribution,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Size is total size in bytes
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// Url is uRL source of this image, if any
	Url string `json:"url,omitempty" yaml:"url,omitempty"`
	// Version is image version
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

GlobalImage is client view of global Images

type GlobalImageCreate

type GlobalImageCreate struct {
	// BlockSize is block size in bytes
	BlockSize   BlockSize `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	Description string    `json:"description,omitempty" yaml:"description,omitempty"`
	// Distribution is oS image distribution
	Distribution Distribution `json:"distribution,omitempty" yaml:"distribution,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 though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Source is the source of the image's contents.
	Source ImageSource `json:"source,omitempty" yaml:"source,omitempty"`
}

GlobalImageCreate is create-time parameters for an [`GlobalImage`](crate::external_api::views::GlobalImage)

type GlobalImageResultsPage

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

GlobalImageResultsPage is a single page of results

type HTTPError

type HTTPError struct {
	// URL is the URL that was being accessed when the error occurred.
	// It will always be populated.
	URL *url.URL
	// StatusCode is the HTTP response status code and will always be populated.
	StatusCode int
	// Message is the server response message and is only populated when
	// explicitly referenced by the JSON server response.
	Message string
	// Body is the raw response returned by the server.
	// It is often but not always JSON, depending on how the request fails.
	Body string
	// Header contains the response header fields from the server.
	Header http.Header
}

HTTPError is an error returned by a failed API call.

func (HTTPError) Error

func (err HTTPError) Error() string

Error converts the Error type to a readable string.

type Histogramdouble

type Histogramdouble struct {
	Bins      []Bindouble `json:"bins,omitempty" yaml:"bins,omitempty"`
	NSamples  int         `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	StartTime *time.Time  `json:"start_time,omitempty" yaml:"start_time,omitempty"`
}

Histogramdouble is a simple type for managing a 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.

Example ------- ```rust use oximeter::histogram::{BinRange, Histogram};

let edges = [0i64, 10, 20]; let mut hist = Histogram::new(&edges).unwrap(); assert_eq!(hist.n_bins(), 4); // One additional bin for the range (20..) assert_eq!(hist.n_samples(), 0); hist.sample(4); hist.sample(100); assert_eq!(hist.n_samples(), 2);

let data = hist.iter().collect::<Vec<_>>(); assert_eq!(data[0].range, BinRange::range(i64::MIN, 0)); // An additional bin for `..0` assert_eq!(data[0].count, 0); // Nothing is in this bin

assert_eq!(data[1].range, BinRange::range(0, 10)); // The range `0..10` assert_eq!(data[1].count, 1); // 4 is sampled into this bin ```

Notes -----

Histograms may be constructed either from their left bin edges, or from a sequence of ranges. In either case, the left-most bin may be converted upon construction. In particular, if the left-most value is not equal to the minimum of the support, a new bin will be added from the minimum to that provided value. If the left-most value _is_ the support's minimum, because the provided bin was unbounded below, such as `(..0)`, then that bin will be converted into one bounded below, `(MIN..0)` in this case.

The short of this is that, most of the time, it shouldn't matter. If one specifies the extremes of the support as their bins, be aware that the left-most may be converted from a `BinRange::RangeTo` into a `BinRange::Range`. In other words, the first bin of a histogram is _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In fact, every bin is one of those variants, the `BinRange::RangeTo` is only provided as a convenience during construction.

type Histogramint64

type Histogramint64 struct {
	Bins      []Binint64 `json:"bins,omitempty" yaml:"bins,omitempty"`
	NSamples  int        `json:"n_samples,omitempty" yaml:"n_samples,omitempty"`
	StartTime *time.Time `json:"start_time,omitempty" yaml:"start_time,omitempty"`
}

Histogramint64 is a simple type for managing a 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.

Example ------- ```rust use oximeter::histogram::{BinRange, Histogram};

let edges = [0i64, 10, 20]; let mut hist = Histogram::new(&edges).unwrap(); assert_eq!(hist.n_bins(), 4); // One additional bin for the range (20..) assert_eq!(hist.n_samples(), 0); hist.sample(4); hist.sample(100); assert_eq!(hist.n_samples(), 2);

let data = hist.iter().collect::<Vec<_>>(); assert_eq!(data[0].range, BinRange::range(i64::MIN, 0)); // An additional bin for `..0` assert_eq!(data[0].count, 0); // Nothing is in this bin

assert_eq!(data[1].range, BinRange::range(0, 10)); // The range `0..10` assert_eq!(data[1].count, 1); // 4 is sampled into this bin ```

Notes -----

Histograms may be constructed either from their left bin edges, or from a sequence of ranges. In either case, the left-most bin may be converted upon construction. In particular, if the left-most value is not equal to the minimum of the support, a new bin will be added from the minimum to that provided value. If the left-most value _is_ the support's minimum, because the provided bin was unbounded below, such as `(..0)`, then that bin will be converted into one bounded below, `(MIN..0)` in this case.

The short of this is that, most of the time, it shouldn't matter. If one specifies the extremes of the support as their bins, be aware that the left-most may be converted from a `BinRange::RangeTo` into a `BinRange::Range`. In other words, the first bin of a histogram is _always_ a `Bin::Range` or a `Bin::RangeFrom` after construction. In fact, every bin is one of those variants, the `BinRange::RangeTo` is only provided as a convenience during construction.

type IdSortMode

type IdSortMode string

IdSortMode is supported set of sort modes for scanning by id only.

Currently, we only support scanning in ascending order.

const IdSortModeIdAscending IdSortMode = "id_ascending"

IdSortModeIdAscending represents the IdSortMode `"id_ascending"`.

type IdentityProvider

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

IdentityProvider is client view of an [`IdentityProvider`]

type IdentityProviderResultsPage

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

IdentityProviderResultsPage is a single page of results

type IdentityProviderType

type IdentityProviderType string

IdentityProviderType is the type definition for a IdentityProviderType.

const IdentityProviderTypeSaml IdentityProviderType = "saml"

IdentityProviderTypeSaml represents the IdentityProviderType `"saml"`.

type IdentityType

type IdentityType string

IdentityType is describes what kind of identity is described by an id

const IdentityTypeSiloGroup IdentityType = "silo_group"

IdentityTypeSiloGroup represents the IdentityType `"silo_group"`.

const IdentityTypeSiloUser IdentityType = "silo_user"

IdentityTypeSiloUser represents the IdentityType `"silo_user"`.

type IdpMetadataSource

type IdpMetadataSource struct {
	// Type is the type definition for a Type.
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	// Url is the type definition for a Url.
	Url string `json:"url,omitempty" yaml:"url,omitempty"`
	// Data is the type definition for a Data.
	Data string `json:"data,omitempty" yaml:"data,omitempty"`
}

IdpMetadataSource is the type definition for a IdpMetadataSource.

type IdpMetadataSourceBase64EncodedXml

type IdpMetadataSourceBase64EncodedXml struct {
	Data string                `json:"data,omitempty" yaml:"data,omitempty"`
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

IdpMetadataSourceBase64EncodedXml is the type definition for a IdpMetadataSourceBase64EncodedXml.

type IdpMetadataSourceType

type IdpMetadataSourceType string

IdpMetadataSourceType is the type definition for a IdpMetadataSourceType.

const IdpMetadataSourceTypeBase64EncodedXml IdpMetadataSourceType = "base64_encoded_xml"

IdpMetadataSourceTypeBase64EncodedXml represents the IdpMetadataSourceType `"base64_encoded_xml"`.

const IdpMetadataSourceTypeUrl IdpMetadataSourceType = "url"

IdpMetadataSourceTypeUrl represents the IdpMetadataSourceType `"url"`.

type IdpMetadataSourceUrl

type IdpMetadataSourceUrl struct {
	Type IdpMetadataSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	Url  string                `json:"url,omitempty" yaml:"url,omitempty"`
}

IdpMetadataSourceUrl is the type definition for a IdpMetadataSourceUrl.

type Image

type Image struct {
	// BlockSize is size of blocks in bytes
	BlockSize ByteCount `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Digest is hash of the image contents, if applicable
	Digest Digest `json:"digest,omitempty" yaml:"digest,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is the project the disk belongs to
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is total size in bytes
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// Url is uRL source of this image, if any
	Url string `json:"url,omitempty" yaml:"url,omitempty"`
	// Version is version of this, if any
	Version string `json:"version,omitempty" yaml:"version,omitempty"`
}

Image is client view of project Images

type ImageCreate

type ImageCreate struct {
	// BlockSize is block size in bytes
	BlockSize   BlockSize `json:"block_size,omitempty" yaml:"block_size,omitempty"`
	Description string    `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Source is the source of the image's contents.
	Source ImageSource `json:"source,omitempty" yaml:"source,omitempty"`
}

ImageCreate is create-time parameters for an [`Image`](crate::external_api::views::Image)

type ImageResultsPage

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

ImageResultsPage is a single page of results

type ImageSource

type ImageSource struct {
	// Type is the type definition for a Type.
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	// Url is the type definition for a Url.
	Url string `json:"url,omitempty" yaml:"url,omitempty"`
	// Id is the type definition for a Id.
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
}

ImageSource is the source of the underlying image.

type ImageSourceSnapshot

type ImageSourceSnapshot struct {
	Id   string          `json:"id,omitempty" yaml:"id,omitempty"`
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImageSourceSnapshot is the type definition for a ImageSourceSnapshot.

type ImageSourceType

type ImageSourceType string

ImageSourceType is the type definition for a ImageSourceType.

const ImageSourceTypeSnapshot ImageSourceType = "snapshot"

ImageSourceTypeSnapshot represents the ImageSourceType `"snapshot"`.

const ImageSourceTypeUrl ImageSourceType = "url"

ImageSourceTypeUrl represents the ImageSourceType `"url"`.

const ImageSourceTypeYouCanBootAnythingAsLongAsItsAlpine ImageSourceType = "you_can_boot_anything_as_long_as_its_alpine"

ImageSourceTypeYouCanBootAnythingAsLongAsItsAlpine represents the ImageSourceType `"you_can_boot_anything_as_long_as_its_alpine"`.

type ImageSourceUrl

type ImageSourceUrl struct {
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
	Url  string          `json:"url,omitempty" yaml:"url,omitempty"`
}

ImageSourceUrl is the type definition for a ImageSourceUrl.

type ImageSourceYouCanBootAnythingAsLongAsItsAlpine

type ImageSourceYouCanBootAnythingAsLongAsItsAlpine struct {
	Type ImageSourceType `json:"type,omitempty" yaml:"type,omitempty"`
}

ImageSourceYouCanBootAnythingAsLongAsItsAlpine is boot the Alpine ISO that ships with the Propolis zone. Intended for development purposes only.

type Instance

type Instance struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Hostname is rFC1035-compliant hostname for the Instance.
	Hostname string `json:"hostname,omitempty" yaml:"hostname,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Memory is memory allocated for this Instance
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Ncpus is number of CPUs allocated for this Instance
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
	// ProjectId is id for the project containing this Instance
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// RunState is running state of an Instance (primarily: booted or stopped)
	//
	// This typically reflects whether it's starting, running, stopping, or stopped, but also includes states related to the Instance's lifecycle
	RunState InstanceState `json:"run_state,omitempty" yaml:"run_state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified        *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	TimeRunStateUpdated *time.Time `json:"time_run_state_updated,omitempty" yaml:"time_run_state_updated,omitempty"`
}

Instance is client view of an [`Instance`]

type InstanceCpuCount

type InstanceCpuCount int64

InstanceCpuCount is the number of CPUs in an Instance

type InstanceCreate

type InstanceCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Disks is the disks to be created or attached for this instance.
	Disks []InstanceDiskAttachment `json:"disks,omitempty" yaml:"disks,omitempty"`
	// ExternalIps is the external IP addresses provided to this instance.
	//
	// By default, all instances have outbound connectivity, but no inbound connectivity. These external addresses can be used to provide a fixed, known IP address for making inbound connections to the instance.
	ExternalIps []ExternalIpCreate `json:"external_ips,omitempty" yaml:"external_ips,omitempty"`
	Hostname    string             `json:"hostname,omitempty" yaml:"hostname,omitempty"`
	// Memory is a count of bytes, typically used either for memory or storage capacity
	//
	// The maximum supported byte count is [`i64::MAX`].  This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX).  We provide all of these for consumers' convenience.
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Ncpus is the number of CPUs in an Instance
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
	// NetworkInterfaces is the network interfaces to be created for this instance.
	NetworkInterfaces InstanceNetworkInterfaceAttachment `json:"network_interfaces,omitempty" yaml:"network_interfaces,omitempty"`
	// 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`](omicron_common::api::external::Instance)

type InstanceDiskAttachment

type InstanceDiskAttachment struct {
	// Description is the type definition for a Description.
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DiskSource is initial source for this disk
	DiskSource DiskSource `json:"disk_source,omitempty" yaml:"disk_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Size is total size of the Disk in bytes
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty"`
	// Type is the type definition for a Type.
	Type InstanceDiskAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceDiskAttachment is describe the instance's disks at creation time

type InstanceDiskAttachmentAttach

type InstanceDiskAttachmentAttach struct {
	// Name is a disk name to attach
	Name Name                       `json:"name,omitempty" yaml:"name,omitempty"`
	Type InstanceDiskAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceDiskAttachmentAttach is during instance creation, attach this disk

type InstanceDiskAttachmentCreate

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

InstanceDiskAttachmentCreate is during instance creation, create and attach disks

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 InstanceMigrate

type InstanceMigrate struct {
	DstSledId string `json:"dst_sled_id,omitempty" yaml:"dst_sled_id,omitempty"`
}

InstanceMigrate is migration parameters for an [`Instance`](omicron_common::api::external::Instance)

type InstanceNetworkInterfaceAttachment

type InstanceNetworkInterfaceAttachment struct {
	// Params is the type definition for a Params.
	Params []NetworkInterfaceCreate `json:"params,omitempty" yaml:"params,omitempty"`
	// Type is the type definition for a Type.
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachment is describes an attachment of a `NetworkInterface` to an `Instance`, at the time the instance is created.

type InstanceNetworkInterfaceAttachmentCreate

type InstanceNetworkInterfaceAttachmentCreate struct {
	Params []NetworkInterfaceCreate               `json:"params,omitempty" yaml:"params,omitempty"`
	Type   InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentCreate is create one or more `NetworkInterface`s for the `Instance`.

If more than one interface is provided, then the first will be designated the primary interface for the instance.

type InstanceNetworkInterfaceAttachmentDefault

type InstanceNetworkInterfaceAttachmentDefault struct {
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentDefault is the default networking configuration for an instance is to create a single primary interface with an automatically-assigned IP address. The IP will be pulled from the Project's default VPC / VPC Subnet.

type InstanceNetworkInterfaceAttachmentNone

type InstanceNetworkInterfaceAttachmentNone struct {
	Type InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty"`
}

InstanceNetworkInterfaceAttachmentNone is no network interfaces at all will be created for the instance.

type InstanceNetworkInterfaceAttachmentType

type InstanceNetworkInterfaceAttachmentType string

InstanceNetworkInterfaceAttachmentType is the type definition for a InstanceNetworkInterfaceAttachmentType.

const InstanceNetworkInterfaceAttachmentTypeCreate InstanceNetworkInterfaceAttachmentType = "create"

InstanceNetworkInterfaceAttachmentTypeCreate represents the InstanceNetworkInterfaceAttachmentType `"create"`.

const InstanceNetworkInterfaceAttachmentTypeDefault InstanceNetworkInterfaceAttachmentType = "default"

InstanceNetworkInterfaceAttachmentTypeDefault represents the InstanceNetworkInterfaceAttachmentType `"default"`.

const InstanceNetworkInterfaceAttachmentTypeNone InstanceNetworkInterfaceAttachmentType = "none"

InstanceNetworkInterfaceAttachmentTypeNone represents the InstanceNetworkInterfaceAttachmentType `"none"`.

type InstanceResultsPage

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

InstanceResultsPage is a single page of results

type InstanceSerialConsoleData

type InstanceSerialConsoleData struct {
	// Data is the bytes starting from the requested offset up to either the end of the buffer or the request's `max_bytes`. Provided as a u8 array rather than a string, as it may not be UTF-8.
	Data []string `json:"data,omitempty" yaml:"data,omitempty"`
	// LastByteOffset is the absolute offset since boot (suitable for use as `byte_offset` in a subsequent request) of the last byte returned in `data`.
	LastByteOffset int `json:"last_byte_offset,omitempty" yaml:"last_byte_offset,omitempty"`
}

InstanceSerialConsoleData is contents of an Instance's serial console buffer.

type InstanceState

type InstanceState string

InstanceState 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

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 IpKind

type IpKind string

IpKind is the kind of an external IP address for an instance

const IpKindEphemeral IpKind = "ephemeral"

IpKindEphemeral represents the IpKind `"ephemeral"`.

const IpKindFloating IpKind = "floating"

IpKindFloating represents the IpKind `"floating"`.

type IpNet

type IpNet interface{}

IpNet is the type definition for a IpNet.

type IpPool

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

IpPool is identity-related metadata that's included in nearly all public API objects

type IpPoolCreate

type IpPoolCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Organization 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 though they may contain a UUID.
	Organization Name `json:"organization,omitempty" yaml:"organization,omitempty"`
	// Project 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 though they may contain a UUID.
	Project Name `json:"project,omitempty" yaml:"project,omitempty"`
}

IpPoolCreate is create-time parameters for an IP Pool.

See [`IpPool`](crate::external_api::views::IpPool)

type IpPoolRange

type IpPoolRange struct {
	Id          string     `json:"id,omitempty" yaml:"id,omitempty"`
	Range       IpRange    `json:"range,omitempty" yaml:"range,omitempty"`
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
}

IpPoolRange is the type definition for a IpPoolRange.

type IpPoolRangeResultsPage

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

IpPoolRangeResultsPage is a single page of results

type IpPoolResultsPage

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

IpPoolResultsPage is a single page of results

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 IpRange

type IpRange interface{}

IpRange is the type definition for a IpRange.

type Ipv4Net

type Ipv4Net string

Ipv4Net is an IPv4 subnet, including prefix and subnet mask

type Ipv4Range

type Ipv4Range struct {
	First string `json:"first,omitempty" yaml:"first,omitempty"`
	Last  string `json:"last,omitempty" yaml:"last,omitempty"`
}

Ipv4Range is a non-decreasing IPv4 address range, inclusive of both ends.

The first address must be less than or equal to the last address.

type Ipv6Net

type Ipv6Net string

Ipv6Net is an IPv6 subnet, including prefix and subnet mask

type Ipv6Range

type Ipv6Range struct {
	First string `json:"first,omitempty" yaml:"first,omitempty"`
	Last  string `json:"last,omitempty" yaml:"last,omitempty"`
}

Ipv6Range is a non-decreasing IPv6 address range, inclusive of both ends.

The first address must be less than or equal to the last address.

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 MacAddr

type MacAddr string

MacAddr is a Media Access Control address, in EUI-48 format

type Measurement

type Measurement struct {
	// Datum is a `Datum` is a single sampled data point from a metric.
	Datum     Datum      `json:"datum,omitempty" yaml:"datum,omitempty"`
	Timestamp *time.Time `json:"timestamp,omitempty" yaml:"timestamp,omitempty"`
}

Measurement is a `Measurement` is a timestamped datum from a single metric

type MeasurementResultsPage

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

MeasurementResultsPage is a single page of results

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 though they may contain a UUID.

type NameOrIdSortMode

type NameOrIdSortMode string

NameOrIdSortMode is supported set of sort modes for scanning by name or id

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 supported set of sort modes for scanning by name only

Currently, we only support scanning in ascending order.

const NameSortModeNameAscending NameSortMode = "name_ascending"

NameSortModeNameAscending represents the NameSortMode `"name_ascending"`.

type NetworkInterface

type NetworkInterface struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// InstanceId is the Instance to which the interface belongs.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Ip is the IP address assigned to this interface.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Mac is the MAC address assigned to this interface.
	Mac MacAddr `json:"mac,omitempty" yaml:"mac,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Primary is true if this interface is the primary for the instance to which it's attached.
	Primary bool `json:"primary,omitempty" yaml:"primary,omitempty"`
	// SubnetId is the subnet to which the interface belongs.
	SubnetId string `json:"subnet_id,omitempty" yaml:"subnet_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which the interface belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

NetworkInterface is a `NetworkInterface` represents a virtual network interface device.

type NetworkInterfaceCreate

type NetworkInterfaceCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Ip is the IP address for the interface. One will be auto-assigned if not provided.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// SubnetName is the VPC Subnet in which to create the interface.
	SubnetName Name `json:"subnet_name,omitempty" yaml:"subnet_name,omitempty"`
	// VpcName is the VPC in which to create the interface.
	VpcName Name `json:"vpc_name,omitempty" yaml:"vpc_name,omitempty"`
}

NetworkInterfaceCreate is create-time parameters for a [`NetworkInterface`](omicron_common::api::external::NetworkInterface)

type NetworkInterfaceResultsPage

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

NetworkInterfaceResultsPage is a single page of results

type NetworkInterfaceUpdate

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

NetworkInterfaceUpdate is parameters for updating a [`NetworkInterface`](omicron_common::api::external::NetworkInterface).

Note that modifying IP addresses for an interface is not yet supported, a new interface must be created instead.

type NodeName

type NodeName string

NodeName is unique name for a saga [`Node`]

Each node requires a string name that's unique within its DAG. The name is used to identify its output. Nodes that depend on a given node (either directly or indirectly) can access the node's output using its name.

type Organization

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

Organization is client view of an [`Organization`]

type OrganizationCreate

type OrganizationCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

OrganizationCreate is create-time parameters for an [`Organization`](crate::external_api::views::Organization)

type OrganizationResultsPage

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

OrganizationResultsPage is a single page of results

type OrganizationRole

type OrganizationRole string

OrganizationRole is the type definition for a OrganizationRole.

const OrganizationRoleAdmin OrganizationRole = "admin"

OrganizationRoleAdmin represents the OrganizationRole `"admin"`.

const OrganizationRoleCollaborator OrganizationRole = "collaborator"

OrganizationRoleCollaborator represents the OrganizationRole `"collaborator"`.

const OrganizationRoleViewer OrganizationRole = "viewer"

OrganizationRoleViewer represents the OrganizationRole `"viewer"`.

type OrganizationRolePolicy

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

OrganizationRolePolicy is client view of a [`Policy`], which describes how this resource may be accessed

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.

type OrganizationRoleRoleAssignment

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

OrganizationRoleRoleAssignment 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.

type OrganizationUpdate

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

OrganizationUpdate is updateable properties of an [`Organization`](crate::external_api::views::Organization)

type Project

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

Project is client view of a [`Project`]

type ProjectCreate

type ProjectCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

ProjectCreate is create-time parameters for a [`Project`](crate::external_api::views::Project)

type ProjectResultsPage

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

ProjectResultsPage is a single page of results

type ProjectRole

type ProjectRole string

ProjectRole is the type definition for a ProjectRole.

const ProjectRoleAdmin ProjectRole = "admin"

ProjectRoleAdmin represents the ProjectRole `"admin"`.

const ProjectRoleCollaborator ProjectRole = "collaborator"

ProjectRoleCollaborator represents the ProjectRole `"collaborator"`.

const ProjectRoleViewer ProjectRole = "viewer"

ProjectRoleViewer represents the ProjectRole `"viewer"`.

type ProjectRolePolicy

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

ProjectRolePolicy is client view of a [`Policy`], which describes how this resource may be accessed

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.

type ProjectRoleRoleAssignment

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

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

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

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`](crate::external_api::views::Project)

type Rack

type Rack struct {
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Rack is client view of an [`Rack`]

type RackResultsPage

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

RackResultsPage is a single page of results

type Role

type Role struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is role names consist of two string components separated by dot (".").
	Name RoleName `json:"name,omitempty" yaml:"name,omitempty"`
}

Role is client view of a [`Role`]

type RoleName

type RoleName string

RoleName is role names consist of two string components separated by dot (".").

type RoleResultsPage

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

RoleResultsPage is a single page of results

type RouteDestination

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

RouteDestination is a `RouteDestination` is used to match traffic with a routing rule, on the destination of that traffic.

When traffic is to be sent to a destination that is within a given `RouteDestination`, the corresponding [`RouterRoute`] applies, and traffic will be forward to the [`RouteTarget`] for that rule.

type RouteDestinationIp

type RouteDestinationIp struct {
	Type  RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string               `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationIp is route applies to traffic destined for a specific IP address

type RouteDestinationIpNet

type RouteDestinationIpNet struct {
	Type  RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationIpNet is route applies to traffic destined for a specific IP subnet

type RouteDestinationSubnet

type RouteDestinationSubnet struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationSubnet is route applies to traffic

type RouteDestinationType

type RouteDestinationType string

RouteDestinationType is the type definition for a RouteDestinationType.

const RouteDestinationTypeIp RouteDestinationType = "ip"

RouteDestinationTypeIp represents the RouteDestinationType `"ip"`.

const RouteDestinationTypeIpNet RouteDestinationType = "ip_net"

RouteDestinationTypeIpNet represents the RouteDestinationType `"ip_net"`.

const RouteDestinationTypeSubnet RouteDestinationType = "subnet"

RouteDestinationTypeSubnet represents the RouteDestinationType `"subnet"`.

const RouteDestinationTypeVpc RouteDestinationType = "vpc"

RouteDestinationTypeVpc represents the RouteDestinationType `"vpc"`.

type RouteDestinationVpc

type RouteDestinationVpc struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteDestinationVpc is route applies to traffic destined for the given VPC.

type RouteTarget

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

RouteTarget is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.

type RouteTargetInstance

type RouteTargetInstance struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetInstance is forward traffic to a specific instance

type RouteTargetInternetGateway

type RouteTargetInternetGateway struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetInternetGateway is forward traffic to an internet gateway

type RouteTargetIp

type RouteTargetIp struct {
	Type  RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string          `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetIp is forward traffic to a particular IP address.

type RouteTargetSubnet

type RouteTargetSubnet struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetSubnet is forward traffic to a VPC Subnet

type RouteTargetType

type RouteTargetType string

RouteTargetType is the type definition for a RouteTargetType.

const RouteTargetTypeInstance RouteTargetType = "instance"

RouteTargetTypeInstance represents the RouteTargetType `"instance"`.

const RouteTargetTypeInternetGateway RouteTargetType = "internet_gateway"

RouteTargetTypeInternetGateway represents the RouteTargetType `"internet_gateway"`.

const RouteTargetTypeIp RouteTargetType = "ip"

RouteTargetTypeIp represents the RouteTargetType `"ip"`.

const RouteTargetTypeSubnet RouteTargetType = "subnet"

RouteTargetTypeSubnet represents the RouteTargetType `"subnet"`.

const RouteTargetTypeVpc RouteTargetType = "vpc"

RouteTargetTypeVpc represents the RouteTargetType `"vpc"`.

type RouteTargetVpc

type RouteTargetVpc struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

RouteTargetVpc is forward traffic to a VPC

type RouterRoute

type RouterRoute struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is a `RouteDestination` is used to match traffic with a routing rule, 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.
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Kind is describes the kind of router. Set at creation. `read-only`
	Kind RouterRouteKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcRouterId is the VPC Router to which the route belongs.
	VpcRouterId string `json:"vpc_router_id,omitempty" yaml:"vpc_router_id,omitempty"`
}

RouterRoute is a route defines a rule that governs where traffic should be sent based on its destination.

type RouterRouteCreateParams

type RouterRouteCreateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is a `RouteDestination` is used to match traffic with a routing rule, 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.
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

RouterRouteCreateParams is create-time parameters for a [`RouterRoute`]

type RouterRouteKind

type RouterRouteKind string

RouterRouteKind is the classification of a [`RouterRoute`] as defined by the system. The kind determines certain attributes such as if the route is modifiable and describes how or where the route was created.

See [RFD-21](https://rfd.shared.oxide.computer/rfd/0021#concept-router) for more context

const RouterRouteKindCustom RouterRouteKind = "custom"

RouterRouteKindCustom represents the RouterRouteKind `"custom"`.

const RouterRouteKindDefault RouterRouteKind = "default"

RouterRouteKindDefault represents the RouterRouteKind `"default"`.

const RouterRouteKindVpcPeering RouterRouteKind = "vpc_peering"

RouterRouteKindVpcPeering represents the RouterRouteKind `"vpc_peering"`.

const RouterRouteKindVpcSubnet RouterRouteKind = "vpc_subnet"

RouterRouteKindVpcSubnet represents the RouterRouteKind `"vpc_subnet"`.

type RouterRouteResultsPage

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

RouterRouteResultsPage is a single page of results

type RouterRouteUpdateParams

type RouterRouteUpdateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is a `RouteDestination` is used to match traffic with a routing rule, 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.
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	Name        Name             `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is a `RouteTarget` describes the possible locations that traffic matching a route destination can be sent.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

RouterRouteUpdateParams is updateable properties of a [`RouterRoute`]

type Saga

type Saga struct {
	Id    string    `json:"id,omitempty" yaml:"id,omitempty"`
	State SagaState `json:"state,omitempty" yaml:"state,omitempty"`
}

Saga is the type definition for a Saga.

type SagaErrorInfo

type SagaErrorInfo struct {
	// Error is the type definition for a Error.
	Error SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
	// SourceError is the type definition for a SourceError.
	SourceError interface{} `json:"source_error,omitempty" yaml:"source_error,omitempty"`
	// Message is the type definition for a Message.
	Message string `json:"message,omitempty" yaml:"message,omitempty"`
}

SagaErrorInfo is the type definition for a SagaErrorInfo.

type SagaErrorInfoActionFailed

type SagaErrorInfoActionFailed struct {
	Error       SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
	SourceError interface{}        `json:"source_error,omitempty" yaml:"source_error,omitempty"`
}

SagaErrorInfoActionFailed is the type definition for a SagaErrorInfoActionFailed.

type SagaErrorInfoDeserializeFailed

type SagaErrorInfoDeserializeFailed struct {
	Error   SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
	Message string             `json:"message,omitempty" yaml:"message,omitempty"`
}

SagaErrorInfoDeserializeFailed is the type definition for a SagaErrorInfoDeserializeFailed.

type SagaErrorInfoError

type SagaErrorInfoError string

SagaErrorInfoError is the type definition for a SagaErrorInfoError.

const SagaErrorInfoErrorActionFailed SagaErrorInfoError = "action_failed"

SagaErrorInfoErrorActionFailed represents the SagaErrorInfoError `"action_failed"`.

const SagaErrorInfoErrorDeserializeFailed SagaErrorInfoError = "deserialize_failed"

SagaErrorInfoErrorDeserializeFailed represents the SagaErrorInfoError `"deserialize_failed"`.

const SagaErrorInfoErrorInjectedError SagaErrorInfoError = "injected_error"

SagaErrorInfoErrorInjectedError represents the SagaErrorInfoError `"injected_error"`.

const SagaErrorInfoErrorSerializeFailed SagaErrorInfoError = "serialize_failed"

SagaErrorInfoErrorSerializeFailed represents the SagaErrorInfoError `"serialize_failed"`.

const SagaErrorInfoErrorSubsagaCreateFailed SagaErrorInfoError = "subsaga_create_failed"

SagaErrorInfoErrorSubsagaCreateFailed represents the SagaErrorInfoError `"subsaga_create_failed"`.

type SagaErrorInfoInjectedError

type SagaErrorInfoInjectedError struct {
	Error SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
}

SagaErrorInfoInjectedError is the type definition for a SagaErrorInfoInjectedError.

type SagaErrorInfoSerializeFailed

type SagaErrorInfoSerializeFailed struct {
	Error   SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
	Message string             `json:"message,omitempty" yaml:"message,omitempty"`
}

SagaErrorInfoSerializeFailed is the type definition for a SagaErrorInfoSerializeFailed.

type SagaErrorInfoSubsagaCreateFailed

type SagaErrorInfoSubsagaCreateFailed struct {
	Error   SagaErrorInfoError `json:"error,omitempty" yaml:"error,omitempty"`
	Message string             `json:"message,omitempty" yaml:"message,omitempty"`
}

SagaErrorInfoSubsagaCreateFailed is the type definition for a SagaErrorInfoSubsagaCreateFailed.

type SagaResultsPage

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

SagaResultsPage is a single page of results

type SagaState

type SagaState struct {
	// State is the type definition for a State.
	State SagaStateState `json:"state,omitempty" yaml:"state,omitempty"`
	// ErrorInfo is the type definition for a ErrorInfo.
	ErrorInfo SagaErrorInfo `json:"error_info,omitempty" yaml:"error_info,omitempty"`
	// ErrorNodeName is unique name for a saga [`Node`]
	//
	// Each node requires a string name that's unique within its DAG.  The name is used to identify its output.  Nodes that depend on a given node (either directly or indirectly) can access the node's output using its name.
	ErrorNodeName NodeName `json:"error_node_name,omitempty" yaml:"error_node_name,omitempty"`
}

SagaState is the type definition for a SagaState.

type SagaStateFailed

type SagaStateFailed struct {
	ErrorInfo SagaErrorInfo `json:"error_info,omitempty" yaml:"error_info,omitempty"`
	// ErrorNodeName is unique name for a saga [`Node`]
	//
	// Each node requires a string name that's unique within its DAG.  The name is used to identify its output.  Nodes that depend on a given node (either directly or indirectly) can access the node's output using its name.
	ErrorNodeName NodeName       `json:"error_node_name,omitempty" yaml:"error_node_name,omitempty"`
	State         SagaStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

SagaStateFailed is the type definition for a SagaStateFailed.

type SagaStateRunning

type SagaStateRunning struct {
	State SagaStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

SagaStateRunning is the type definition for a SagaStateRunning.

type SagaStateState

type SagaStateState string

SagaStateState is the type definition for a SagaStateState.

const SagaStateStateFailed SagaStateState = "failed"

SagaStateStateFailed represents the SagaStateState `"failed"`.

const SagaStateStateRunning SagaStateState = "running"

SagaStateStateRunning represents the SagaStateState `"running"`.

const SagaStateStateSucceeded SagaStateState = "succeeded"

SagaStateStateSucceeded represents the SagaStateState `"succeeded"`.

type SagaStateSucceeded

type SagaStateSucceeded struct {
	State SagaStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

SagaStateSucceeded is the type definition for a SagaStateSucceeded.

type SamlIdentityProvider

type SamlIdentityProvider struct {
	// AcsUrl is service provider endpoint where the response will be sent
	AcsUrl string `json:"acs_url,omitempty" yaml:"acs_url,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// IdpEntityId is idp's entity id
	IdpEntityId string `json:"idp_entity_id,omitempty" yaml:"idp_entity_id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicCert is optional request signing public certificate (base64 encoded der file)
	PublicCert string `json:"public_cert,omitempty" yaml:"public_cert,omitempty"`
	// SloUrl is service provider endpoint where the idp should send log out requests
	SloUrl string `json:"slo_url,omitempty" yaml:"slo_url,omitempty"`
	// SpClientId is sp's client id
	SpClientId string `json:"sp_client_id,omitempty" yaml:"sp_client_id,omitempty"`
	// TechnicalContactEmail is customer's technical contact for saml configuration
	TechnicalContactEmail string `json:"technical_contact_email,omitempty" yaml:"technical_contact_email,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SamlIdentityProvider is identity-related metadata that's included in nearly all public API objects

type SamlIdentityProviderCreate

type SamlIdentityProviderCreate struct {
	// AcsUrl is service provider endpoint where the response will be sent
	AcsUrl      string `json:"acs_url,omitempty" yaml:"acs_url,omitempty"`
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// GroupAttributeName is if set, SAML attributes with this name will be considered to denote a user's group membership, where the attribute value(s) should be a comma-separated list of group names.
	GroupAttributeName string `json:"group_attribute_name,omitempty" yaml:"group_attribute_name,omitempty"`
	// IdpEntityId is idp's entity id
	IdpEntityId string `json:"idp_entity_id,omitempty" yaml:"idp_entity_id,omitempty"`
	// IdpMetadataSource is the source of an identity provider metadata descriptor
	IdpMetadataSource IdpMetadataSource `json:"idp_metadata_source,omitempty" yaml:"idp_metadata_source,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// SigningKeypair is optional request signing key pair
	SigningKeypair DerEncodedKeyPair `json:"signing_keypair,omitempty" yaml:"signing_keypair,omitempty"`
	// SloUrl is service provider endpoint where the idp should send log out requests
	SloUrl string `json:"slo_url,omitempty" yaml:"slo_url,omitempty"`
	// SpClientId is sp's client id
	SpClientId string `json:"sp_client_id,omitempty" yaml:"sp_client_id,omitempty"`
	// TechnicalContactEmail is customer's technical contact for saml configuration
	TechnicalContactEmail string `json:"technical_contact_email,omitempty" yaml:"technical_contact_email,omitempty"`
}

SamlIdentityProviderCreate is create-time identity-related parameters

type Silo

type Silo struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Discoverable is a silo where discoverable is false can be retrieved only by its id - it will not be part of the "list all silos" output.
	Discoverable bool `json:"discoverable,omitempty" yaml:"discoverable,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// UserProvisionType is user provision type
	UserProvisionType UserProvisionType `json:"user_provision_type,omitempty" yaml:"user_provision_type,omitempty"`
}

Silo is client view of a ['Silo']

type SiloCreate

type SiloCreate struct {
	// AdminGroupName is if set, this group will be created during Silo creation and granted the "Silo Admin" role. Identity providers can assert that users belong to this group and those users can log in and further initialize the Silo.
	//
	// Note that if configuring a SAML based identity provider, group_attribute_name must be set for users to be considered part of a group. See [`SamlIdentityProviderCreate`] for more information.
	AdminGroupName string `json:"admin_group_name,omitempty" yaml:"admin_group_name,omitempty"`
	Description    string `json:"description,omitempty" yaml:"description,omitempty"`
	Discoverable   bool   `json:"discoverable,omitempty" yaml:"discoverable,omitempty"`
	// 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 though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// UserProvisionType is how users will be provisioned in a silo during authentication.
	UserProvisionType UserProvisionType `json:"user_provision_type,omitempty" yaml:"user_provision_type,omitempty"`
}

SiloCreate is create-time parameters for a [`Silo`](crate::external_api::views::Silo)

type SiloResultsPage

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

SiloResultsPage is a single page of results

type SiloRole

type SiloRole string

SiloRole is the type definition for a SiloRole.

const SiloRoleAdmin SiloRole = "admin"

SiloRoleAdmin represents the SiloRole `"admin"`.

const SiloRoleCollaborator SiloRole = "collaborator"

SiloRoleCollaborator represents the SiloRole `"collaborator"`.

const SiloRoleViewer SiloRole = "viewer"

SiloRoleViewer represents the SiloRole `"viewer"`.

type SiloRolePolicy

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

SiloRolePolicy is client view of a [`Policy`], which describes how this resource may be accessed

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.

type SiloRoleRoleAssignment

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

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

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

type Sled

type Sled struct {
	// Id is unique, immutable, system-controlled identifier for each resource
	Id             string `json:"id,omitempty" yaml:"id,omitempty"`
	ServiceAddress string `json:"service_address,omitempty" yaml:"service_address,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Sled is client view of an [`Sled`]

type SledResultsPage

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

SledResultsPage is a single page of results

type Snapshot

type Snapshot struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	DiskId      string `json:"disk_id,omitempty" yaml:"disk_id,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty"`
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// Size is a count of bytes, typically used either for memory or storage capacity
	//
	// The maximum supported byte count is [`i64::MAX`].  This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX).  We provide all of these for consumers' convenience.
	Size  ByteCount     `json:"size,omitempty" yaml:"size,omitempty"`
	State SnapshotState `json:"state,omitempty" yaml:"state,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Snapshot is client view of a Snapshot

type SnapshotCreate

type SnapshotCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Disk is the name of the disk to be snapshotted
	Disk Name `json:"disk,omitempty" yaml:"disk,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

SnapshotCreate is create-time parameters for a [`Snapshot`](crate::external_api::views::Snapshot)

type SnapshotResultsPage

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

SnapshotResultsPage is a single page of results

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 SpoofLoginBody

type SpoofLoginBody struct {
	Username string `json:"username,omitempty" yaml:"username,omitempty"`
}

SpoofLoginBody is the type definition for a SpoofLoginBody.

type SshKey

type SshKey struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key,omitempty" yaml:"public_key,omitempty"`
	// SiloUserId is the user to whom this key belongs
	SiloUserId string `json:"silo_user_id,omitempty" yaml:"silo_user_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

SshKey is client view of a [`SshKey`]

type SshKeyCreate

type SshKeyCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// PublicKey is sSH public key, e.g., `"ssh-ed25519 AAAAC3NzaC..."`
	PublicKey string `json:"public_key,omitempty" yaml:"public_key,omitempty"`
}

SshKeyCreate is create-time parameters for an [`SshKey`](crate::external_api::views::SshKey)

type SshKeyResultsPage

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

SshKeyResultsPage is a single page of results

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 TimeseriesSchema

type TimeseriesSchema struct {
	Created *time.Time `json:"created,omitempty" yaml:"created,omitempty"`
	// DatumType is the type of an individual datum of a metric.
	DatumType   DatumType     `json:"datum_type,omitempty" yaml:"datum_type,omitempty"`
	FieldSchema []FieldSchema `json:"field_schema,omitempty" yaml:"field_schema,omitempty"`
	// TimeseriesName is names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words.
	TimeseriesName TimeseriesName `json:"timeseries_name,omitempty" yaml:"timeseries_name,omitempty"`
}

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.

type TimeseriesSchemaResultsPage

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

TimeseriesSchemaResultsPage is a single page of results

type User

type User struct {
	// DisplayName is human-readable name that can identify the user
	DisplayName string `json:"display_name,omitempty" yaml:"display_name,omitempty"`
	Id          string `json:"id,omitempty" yaml:"id,omitempty"`
}

User is client view of a [`User`]

type UserBuiltin

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

UserBuiltin is client view of a [`UserBuiltin`]

type UserBuiltinResultsPage

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

UserBuiltinResultsPage is a single page of results

type UserProvisionType

type UserProvisionType string

UserProvisionType is how users will be provisioned in a silo during authentication.

const UserProvisionTypeFixed UserProvisionType = "fixed"

UserProvisionTypeFixed represents the UserProvisionType `"fixed"`.

const UserProvisionTypeJit UserProvisionType = "jit"

UserProvisionTypeJit represents the UserProvisionType `"jit"`.

type UserResultsPage

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

UserResultsPage is a single page of results

type Vpc

type Vpc struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DnsName is the name used for the VPC in DNS.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Ipv6Prefix is the unique local IPv6 address range for subnets in this VPC
	Ipv6Prefix Ipv6Net `json:"ipv6_prefix,omitempty" yaml:"ipv6_prefix,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is id for the project containing this VPC
	ProjectId string `json:"project_id,omitempty" yaml:"project_id,omitempty"`
	// SystemRouterId is id for the system router where subnet default routes are registered
	SystemRouterId string `json:"system_router_id,omitempty" yaml:"system_router_id,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
}

Vpc is client view of a [`Vpc`]

type VpcCreate

type VpcCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DnsName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty"`
	// Ipv6Prefix is the IPv6 prefix for this VPC.
	//
	// All IPv6 subnets created from this VPC must be taken from this range, which sould 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 though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcCreate is create-time parameters for a [`Vpc`](crate::external_api::views::Vpc)

type VpcFirewallRule

type VpcFirewallRule struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters,omitempty" yaml:"filters,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Priority is the relative priority of this rule
	Priority int `json:"priority,omitempty" yaml:"priority,omitempty"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status,omitempty" yaml:"status,omitempty"`
	// Targets is list of sets of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets,omitempty" yaml:"targets,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which this rule belongs
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

VpcFirewallRule is a single rule in a VPC firewall

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, the sources (if incoming) or destinations (if outgoing) this rule applies to.
	Hosts []VpcFirewallRuleHostFilter `json:"hosts,omitempty" yaml:"hosts,omitempty"`
	// Ports is if present, the destination ports this rule applies to.
	Ports []L4PortRange `json:"ports,omitempty" yaml:"ports,omitempty"`
	// Protocols is if present, the networking protocols this rule applies to.
	Protocols []VpcFirewallRuleProtocol `json:"protocols,omitempty" yaml:"protocols,omitempty"`
}

VpcFirewallRuleFilter is filter for a firewall rule. A given packet must match every field that is present for the rule to apply to it. A packet matches a field if any entry in that field matches the packet.

type VpcFirewallRuleHostFilter

type VpcFirewallRuleHostFilter struct {
	// Type is the type definition for a Type.
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilter is the `VpcFirewallRuleHostFilter` is used to filter traffic on the basis of its source or destination host.

type VpcFirewallRuleHostFilterInstance

type VpcFirewallRuleHostFilterInstance struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterInstance is the rule applies to traffic from/to this specific instance

type VpcFirewallRuleHostFilterIp

type VpcFirewallRuleHostFilterIp struct {
	Type  VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string                        `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterIp is the rule applies to traffic from/to a specific IP address

type VpcFirewallRuleHostFilterIpNet

type VpcFirewallRuleHostFilterIpNet struct {
	Type  VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                         `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterIpNet is the rule applies to traffic from/to a specific IP subnet

type VpcFirewallRuleHostFilterSubnet

type VpcFirewallRuleHostFilterSubnet struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterSubnet is the rule applies to traffic from/to all instances in the VPC Subnet

type VpcFirewallRuleHostFilterType

type VpcFirewallRuleHostFilterType string

VpcFirewallRuleHostFilterType is the type definition for a VpcFirewallRuleHostFilterType.

const VpcFirewallRuleHostFilterTypeInstance VpcFirewallRuleHostFilterType = "instance"

VpcFirewallRuleHostFilterTypeInstance represents the VpcFirewallRuleHostFilterType `"instance"`.

const VpcFirewallRuleHostFilterTypeIp VpcFirewallRuleHostFilterType = "ip"

VpcFirewallRuleHostFilterTypeIp represents the VpcFirewallRuleHostFilterType `"ip"`.

const VpcFirewallRuleHostFilterTypeIpNet VpcFirewallRuleHostFilterType = "ip_net"

VpcFirewallRuleHostFilterTypeIpNet represents the VpcFirewallRuleHostFilterType `"ip_net"`.

const VpcFirewallRuleHostFilterTypeSubnet VpcFirewallRuleHostFilterType = "subnet"

VpcFirewallRuleHostFilterTypeSubnet represents the VpcFirewallRuleHostFilterType `"subnet"`.

const VpcFirewallRuleHostFilterTypeVpc VpcFirewallRuleHostFilterType = "vpc"

VpcFirewallRuleHostFilterTypeVpc represents the VpcFirewallRuleHostFilterType `"vpc"`.

type VpcFirewallRuleHostFilterVpc

type VpcFirewallRuleHostFilterVpc struct {
	Type VpcFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleHostFilterVpc is the rule applies to traffic from/to all instances in the VPC

type VpcFirewallRuleProtocol

type VpcFirewallRuleProtocol string

VpcFirewallRuleProtocol is the protocols that may be specified in a firewall rule's filter

const VpcFirewallRuleProtocolICMP VpcFirewallRuleProtocol = "ICMP"

VpcFirewallRuleProtocolICMP represents the VpcFirewallRuleProtocol `"ICMP"`.

const VpcFirewallRuleProtocolTCP VpcFirewallRuleProtocol = "TCP"

VpcFirewallRuleProtocolTCP represents the VpcFirewallRuleProtocol `"TCP"`.

const VpcFirewallRuleProtocolUDP VpcFirewallRuleProtocol = "UDP"

VpcFirewallRuleProtocolUDP represents the VpcFirewallRuleProtocol `"UDP"`.

type VpcFirewallRuleStatus

type VpcFirewallRuleStatus string

VpcFirewallRuleStatus is the type definition for a VpcFirewallRuleStatus.

const VpcFirewallRuleStatusDisabled VpcFirewallRuleStatus = "disabled"

VpcFirewallRuleStatusDisabled represents the VpcFirewallRuleStatus `"disabled"`.

const VpcFirewallRuleStatusEnabled VpcFirewallRuleStatus = "enabled"

VpcFirewallRuleStatusEnabled represents the VpcFirewallRuleStatus `"enabled"`.

type VpcFirewallRuleTarget

type VpcFirewallRuleTarget struct {
	// Type is the type definition for a Type.
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTarget is a `VpcFirewallRuleTarget` is used to specify the set of [`Instance`]s to which a firewall rule applies.

type VpcFirewallRuleTargetInstance

type VpcFirewallRuleTargetInstance struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetInstance is the rule applies to this specific instance

type VpcFirewallRuleTargetIp

type VpcFirewallRuleTargetIp struct {
	Type  VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string                    `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetIp is the rule applies to a specific IP address

type VpcFirewallRuleTargetIpNet

type VpcFirewallRuleTargetIpNet struct {
	Type  VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	Value IpNet                     `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetIpNet is the rule applies to a specific IP subnet

type VpcFirewallRuleTargetSubnet

type VpcFirewallRuleTargetSubnet struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetSubnet is the rule applies to all instances in the VPC Subnet

type VpcFirewallRuleTargetType

type VpcFirewallRuleTargetType string

VpcFirewallRuleTargetType is the type definition for a VpcFirewallRuleTargetType.

const VpcFirewallRuleTargetTypeInstance VpcFirewallRuleTargetType = "instance"

VpcFirewallRuleTargetTypeInstance represents the VpcFirewallRuleTargetType `"instance"`.

const VpcFirewallRuleTargetTypeIp VpcFirewallRuleTargetType = "ip"

VpcFirewallRuleTargetTypeIp represents the VpcFirewallRuleTargetType `"ip"`.

const VpcFirewallRuleTargetTypeIpNet VpcFirewallRuleTargetType = "ip_net"

VpcFirewallRuleTargetTypeIpNet represents the VpcFirewallRuleTargetType `"ip_net"`.

const VpcFirewallRuleTargetTypeSubnet VpcFirewallRuleTargetType = "subnet"

VpcFirewallRuleTargetTypeSubnet represents the VpcFirewallRuleTargetType `"subnet"`.

const VpcFirewallRuleTargetTypeVpc VpcFirewallRuleTargetType = "vpc"

VpcFirewallRuleTargetTypeVpc represents the VpcFirewallRuleTargetType `"vpc"`.

type VpcFirewallRuleTargetVpc

type VpcFirewallRuleTargetVpc struct {
	Type VpcFirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty"`
	// Value is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Value Name `json:"value,omitempty" yaml:"value,omitempty"`
}

VpcFirewallRuleTargetVpc is the rule applies to all instances in the VPC

type VpcFirewallRuleUpdate

type VpcFirewallRuleUpdate struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VpcFirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty"`
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VpcFirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty"`
	// Filters is reductions on the scope of the rule
	Filters VpcFirewallRuleFilter `json:"filters,omitempty" yaml:"filters,omitempty"`
	// Name is name of the rule, unique to this VPC
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Priority is the relative priority of this rule
	Priority int `json:"priority,omitempty" yaml:"priority,omitempty"`
	// Status is whether this rule is in effect
	Status VpcFirewallRuleStatus `json:"status,omitempty" yaml:"status,omitempty"`
	// Targets is list of sets of instances that the rule applies to
	Targets []VpcFirewallRuleTarget `json:"targets,omitempty" yaml:"targets,omitempty"`
}

VpcFirewallRuleUpdate is a single rule in a VPC firewall

type VpcFirewallRuleUpdateParams

type VpcFirewallRuleUpdateParams struct {
	Rules []VpcFirewallRuleUpdate `json:"rules,omitempty" yaml:"rules,omitempty"`
}

VpcFirewallRuleUpdateParams is updateable properties of a `Vpc`'s firewall Note that VpcFirewallRules are implicitly created along with a Vpc, so there is no explicit creation.

type VpcFirewallRules

type VpcFirewallRules struct {
	Rules []VpcFirewallRule `json:"rules,omitempty" yaml:"rules,omitempty"`
}

VpcFirewallRules is collection of a Vpc's firewall rules

type VpcResultsPage

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

VpcResultsPage is a single page of results

type VpcRouter

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

VpcRouter is a VPC router defines a series of rules that indicate where traffic should be sent depending on its destination.

type VpcRouterCreate

type VpcRouterCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcRouterCreate is create-time parameters for a [`VpcRouter`](crate::external_api::views::VpcRouter)

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 VpcRouterResultsPage

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

VpcRouterResultsPage is a single page of results

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`](crate::external_api::views::VpcRouter)

type VpcSubnet

type VpcSubnet struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Id is unique, immutable, system-controlled identifier for each resource
	Id string `json:"id,omitempty" yaml:"id,omitempty"`
	// Ipv4Block is the IPv4 subnet CIDR block.
	Ipv4Block Ipv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty"`
	// Ipv6Block is the IPv6 subnet CIDR block.
	Ipv6Block Ipv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty"`
	// VpcId is the VPC to which the subnet belongs.
	VpcId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

VpcSubnet is a VPC subnet represents a logical grouping for instances that allows network traffic between them, within a IPv4 subnetwork or optionall an IPv6 subnetwork.

type VpcSubnetCreate

type VpcSubnetCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Ipv4Block is the IPv4 address range for this subnet.
	//
	// It must be allocated from an RFC 1918 private address range, and must not overlap with any other existing subnet in the VPC.
	Ipv4Block Ipv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty"`
	// Ipv6Block is the IPv6 address range for this subnet.
	//
	// It must be allocated from the RFC 4193 Unique Local Address range, with the prefix equal to the parent VPC's prefix. A random `/64` block will be assigned if one is not provided. It must not overlap with any existing subnet in the VPC.
	Ipv6Block Ipv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID though they may contain a UUID.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
}

VpcSubnetCreate is create-time parameters for a [`VpcSubnet`](crate::external_api::views::VpcSubnet)

type VpcSubnetResultsPage

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

VpcSubnetResultsPage is a single page of results

type VpcSubnetUpdate

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

VpcSubnetUpdate is updateable properties of a [`VpcSubnet`](crate::external_api::views::VpcSubnet)

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`](crate::external_api::views::Vpc)

Jump to

Keyboard shortcuts

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