oxide

package module
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2022 License: MIT Imports: 12 Imported by: 0

README

oxide.go

The Golang API client for Oxide.

Generating

You can trigger a build with the GitHub action to generate the client. This will automatically update the client to the latest version based on the spec at spec.json.

Alternatively, if you wish to generate the client locally, run:

$ make generate

Contributing

Please do not change the code directly since it is generated. PRs that change the code directly will be automatically closed by a bot.

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

DatumTypes is the collection of all DatumType values.

DiskStateStates is the collection of all DiskStateState values.

FieldSources is the collection of all FieldSource values.

FieldTypes is the collection of all FieldType values.

FirewallRuleActions is the collection of all FirewallRuleAction values.

FirewallRuleDirections is the collection of all FirewallRuleDirection values.

FirewallRuleHostFilterTypes is the collection of all FirewallRuleHostFilterType values.

FirewallRuleProtocols is the collection of all FirewallRuleProtocol values.

FirewallRuleStatuses is the collection of all FirewallRuleStatus values.

FirewallRuleTargetTypes is the collection of all FirewallRuleTargetType values.

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

IdSortModes is the collection of all IdSortMode values.

InstanceNetworkInterfaceAttachmentTypes is the collection of all InstanceNetworkInterfaceAttachmentType values.

InstanceStates is the collection of all InstanceState values.

NameOrIdSortModes is the collection of all NameOrIdSortMode values.

NameSortModes is the collection of all NameSortMode values.

RouteDestinationTypes is the collection of all RouteDestinationType values.

RouteKinds is the collection of all RouteKind values.

RouteTargetTypes is the collection of all RouteTargetType values.

RouterKinds is the collection of all RouterKind values.

SagaErrorInfoErrors is the collection of all SagaErrorInfoError values.

SagaStateStates is the collection of all SagaStateState values.

Functions

This section is empty.

Types

type ByteCount

type ByteCount int

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 {

	// Disks: Virtual disks are used to store instance-local data which includes the operating system.
	Disks *DisksService
	// Firewall: Firewall operation controls the flow of network data into a VPC
	Firewall *FirewallService
	// Hidden: TODO operations that will not ship to customers
	Hidden *HiddenService
	// Instances: Virtual machine instances are the basic unit of computation. These operations are used for provisioning, controlling, and destroying instances.
	Instances *InstancesService
	// Metrics: Metrics provide insight into the operation of the Oxide deployment. These include telemetry on hardware and software components that can be used to understand the current state as well as to diagnose issues.
	Metrics *MetricsService
	// Organizations: Organizations represent a subset of users and projects in an Oxide deployment.
	Organizations *OrganizationsService
	// Projects: Projects are a grouping of associated resources such as instances and disks within an organization for purposes of billing and access control.
	Projects *ProjectsService
	// Racks: These operations pertain to hardware inventory and management. Racks are the unit of expansion of an Oxide deployment. Racks are in turn composed of sleds, switches, power supplies, and a cabled backplane.
	Racks *RacksService
	// Roles: Roles are a component of Identity and Access Management (IAM) that allow a user or agent account access to additional permissions.
	Roles *RolesService
	// Routers: Routers direct the flow of network traffic into, out of, and within a VPC via routes.
	Routers *RoutersService
	// Routes: Routes define router policy.
	Routes *RoutesService
	// Sagas: Sagas are the abstraction used to represent multi-step operations within the Oxide deployment. These operations can be used to query saga status and report errors.
	Sagas *SagasService
	// Sleds: This tag should be moved into hardware
	Sleds *SledsService
	// Snapshots: Snapshots of Virtual Disks at a particular point in time.
	Snapshots *SnapshotsService
	// Subnets: This tag should be moved into a generic network tag
	Subnets *SubnetsService
	// Updates: This tag should be moved into a operations tag
	Updates *UpdatesService
	// Users: This tag should be moved into an IAM tag
	Users *UsersService
	// VPCs: A Virtual Private Cloud (VPC) is an isolated network environment that should probaby be moved into a more generic networking tag
	VPCs *VPCsService
	// 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) WithToken

func (c *Client) WithToken(token string)

WithToken overrides the token used for authentication.

type DatumType

type DatumType string

DatumType is the type of an individual datum of a metric.

const (
	// DatumTypeBool represents the DatumType `"Bool"`.
	DatumTypeBool DatumType = "Bool"
	// DatumTypeI64 represents the DatumType `"I64"`.
	DatumTypeI64 DatumType = "I64"
	// DatumTypeF64 represents the DatumType `"F64"`.
	DatumTypeF64 DatumType = "F64"
	// DatumTypeString represents the DatumType `"String"`.
	DatumTypeString DatumType = "String"
	// DatumTypeBytes represents the DatumType `"Bytes"`.
	DatumTypeBytes DatumType = "Bytes"
	// DatumTypeCumulativeI64 represents the DatumType `"CumulativeI64"`.
	DatumTypeCumulativeI64 DatumType = "CumulativeI64"
	// DatumTypeCumulativeF64 represents the DatumType `"CumulativeF64"`.
	DatumTypeCumulativeF64 DatumType = "CumulativeF64"
	// DatumTypeHistogramI64 represents the DatumType `"HistogramI64"`.
	DatumTypeHistogramI64 DatumType = "HistogramI64"
	// DatumTypeHistogramF64 represents the DatumType `"HistogramF64"`.
	DatumTypeHistogramF64 DatumType = "HistogramF64"
)

type Disk

type Disk struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	DevicePath  string `json:"device_path,omitempty" yaml:"device_path,omitempty" tfsdk:"device_path"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	ProjectID string `json:"project_id,omitempty" yaml:"project_id,omitempty" tfsdk:"project_id"`
	// 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" tfsdk:"size"`
	SnapshotID string    `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty" tfsdk:"snapshot_id"`
	// State is state of a Disk (primarily: attached or not)
	State DiskState `json:"state,omitempty" yaml:"state,omitempty" tfsdk:"state"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified     *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	OrganizationName string     `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string     `json:"-" yaml:"-" tfsdk:"project"`
}

Disk is client view of an [`Disk`]

type DiskCreate

type DiskCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// Size is size of the Disk
	Size ByteCount `json:"size,omitempty" yaml:"size,omitempty" tfsdk:"size"`
	// SnapshotID is id for snapshot from which the Disk should be created, if any
	SnapshotID       string `json:"snapshot_id,omitempty" yaml:"snapshot_id,omitempty" tfsdk:"snapshot_id"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
}

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

type DiskIdentifier

type DiskIdentifier struct {
	// Disk 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 '-'.
	Disk Name `json:"disk,omitempty" yaml:"disk,omitempty" tfsdk:"disk"`
}

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

type DiskResultsPage

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

DiskResultsPage is a single page of results

type DiskState

type DiskState struct {
	State    string `json:"state,omitempty" yaml:"state,omitempty"`
	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" tfsdk:"instance"`
	State    DiskStateState `json:"state,omitempty" yaml:"state,omitempty" tfsdk:"state"`
}

DiskStateAttached is disk is attached to the given Instance

type DiskStateAttaching

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

DiskStateAttaching is disk is being attached to the given Instance

type DiskStateCreating

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

DiskStateCreating is disk is being initialized

type DiskStateDestroyed

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

DiskStateDestroyed is disk has been destroyed

type DiskStateDetached

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

DiskStateDetached is disk is ready but detached from any Instance

type DiskStateDetaching

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

DiskStateDetaching is disk is being detached from the given Instance

type DiskStateFaulted

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

DiskStateFaulted is disk is unavailable

type DiskStateState

type DiskStateState string

DiskStateState is the type definition for a DiskStateState.

const (
	// DiskStateStateAttached represents the DiskStateState `"attached"`.
	DiskStateStateAttached DiskStateState = "attached"
)
const (
	// DiskStateStateAttaching represents the DiskStateState `"attaching"`.
	DiskStateStateAttaching DiskStateState = "attaching"
)
const (
	// DiskStateStateCreating represents the DiskStateState `"creating"`.
	DiskStateStateCreating DiskStateState = "creating"
)
const (
	// DiskStateStateDestroyed represents the DiskStateState `"destroyed"`.
	DiskStateStateDestroyed DiskStateState = "destroyed"
)
const (
	// DiskStateStateDetached represents the DiskStateState `"detached"`.
	DiskStateStateDetached DiskStateState = "detached"
)
const (
	// DiskStateStateDetaching represents the DiskStateState `"detaching"`.
	DiskStateStateDetaching DiskStateState = "detaching"
)
const (
	// DiskStateStateFaulted represents the DiskStateState `"faulted"`.
	DiskStateStateFaulted DiskStateState = "faulted"
)

type DisksService added in v0.0.7

type DisksService service

DisksService: Virtual disks are used to store instance-local data which includes the operating system.

func (*DisksService) Create added in v0.0.7

func (s *DisksService) Create(organizationName Name, projectName Name, j *DiskCreate) (*Disk, error)

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*DisksService) Delete added in v0.0.7

func (s *DisksService) Delete(diskName Name, organizationName Name, projectName Name) error

Delete: Delete a disk from a project.

Parameters:

  • `diskName`
  • `organizationName`
  • `projectName`

func (*DisksService) Get added in v0.0.7

func (s *DisksService) Get(diskName Name, organizationName Name, projectName Name) (*Disk, error)

Get: Fetch a single disk in a project.

Parameters:

  • `diskName`
  • `organizationName`
  • `projectName`

func (*DisksService) List added in v0.0.7

func (s *DisksService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*DiskResultsPage, error)

List: List disks in a project.

To iterate over all pages, use the `ListAllPages` 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 retreive the subsequent page
  • `projectName`: The project's unique name within the organization.
  • `sortBy`

func (*DisksService) ListAllPages added in v0.0.7

func (s *DisksService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Disk, error)

ListAllPages: List disks in a project.

This method is a wrapper around the `List` 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`

type Error added in v0.0.7

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

Error is error information from a response.

type ErrorResponse added in v0.0.7

type ErrorResponse Error

ErrorResponse is the response given when error

type FieldSchema

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

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 (
	// FieldSourceTarget represents the FieldSource `"Target"`.
	FieldSourceTarget FieldSource = "Target"
	// FieldSourceMetric represents the FieldSource `"Metric"`.
	FieldSourceMetric FieldSource = "Metric"
)

type FieldType

type FieldType string

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

const (
	// FieldTypeString represents the FieldType `"String"`.
	FieldTypeString FieldType = "String"
	// FieldTypeI64 represents the FieldType `"I64"`.
	FieldTypeI64 FieldType = "I64"
	// FieldTypeIpAddr represents the FieldType `"IpAddr"`.
	FieldTypeIpAddr FieldType = "IpAddr"
	// FieldTypeUuid represents the FieldType `"Uuid"`.
	FieldTypeUuid FieldType = "Uuid"
	// FieldTypeBool represents the FieldType `"Bool"`.
	FieldTypeBool FieldType = "Bool"
)

type FirewallRule added in v0.0.7

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

FirewallRule is a single rule in a VPC firewall

type FirewallRuleAction added in v0.0.7

type FirewallRuleAction string

FirewallRuleAction is the type definition for a FirewallRuleAction.

const (
	// FirewallRuleActionAllow represents the FirewallRuleAction `"allow"`.
	FirewallRuleActionAllow FirewallRuleAction = "allow"
	// FirewallRuleActionDeny represents the FirewallRuleAction `"deny"`.
	FirewallRuleActionDeny FirewallRuleAction = "deny"
)

type FirewallRuleDirection added in v0.0.7

type FirewallRuleDirection string

FirewallRuleDirection is the type definition for a FirewallRuleDirection.

const (
	// FirewallRuleDirectionInbound represents the FirewallRuleDirection `"inbound"`.
	FirewallRuleDirectionInbound FirewallRuleDirection = "inbound"
	// FirewallRuleDirectionOutbound represents the FirewallRuleDirection `"outbound"`.
	FirewallRuleDirectionOutbound FirewallRuleDirection = "outbound"
)

type FirewallRuleFilter added in v0.0.7

type FirewallRuleFilter struct {
	// Hosts is if present, the sources (if incoming) or destinations (if outgoing) this rule applies to.
	Hosts []FirewallRuleHostFilter `json:"hosts,omitempty" yaml:"hosts,omitempty" tfsdk:"hosts"`
	// Ports is if present, the destination ports this rule applies to.
	Ports []L4PortRange `json:"ports,omitempty" yaml:"ports,omitempty" tfsdk:"ports"`
	// Protocols is if present, the networking protocols this rule applies to.
	Protocols []FirewallRuleProtocol `json:"protocols,omitempty" yaml:"protocols,omitempty" tfsdk:"protocols"`
}

FirewallRuleFilter 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 FirewallRuleHostFilter added in v0.0.7

type FirewallRuleHostFilter struct {
	Type  string `json:"type,omitempty" yaml:"type,omitempty"`
	Value Name   `json:"value,omitempty" yaml:"value,omitempty"`
}

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

type FirewallRuleHostFilterInstance added in v0.0.7

type FirewallRuleHostFilterInstance struct {
	Type FirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleHostFilterIp added in v0.0.7

type FirewallRuleHostFilterIp struct {
	Type  FirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	Value string                     `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleHostFilterIpNet added in v0.0.7

type FirewallRuleHostFilterIpNet struct {
	Type FirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// Value is an `IpNet` represents an IP network, either IPv4 or IPv6.
	Value IpNet `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleHostFilterSubnet added in v0.0.7

type FirewallRuleHostFilterSubnet struct {
	Type FirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleHostFilterType added in v0.0.7

type FirewallRuleHostFilterType string

FirewallRuleHostFilterType is the type definition for a FirewallRuleHostFilterType.

const (
	// FirewallRuleHostFilterTypeInstance represents the FirewallRuleHostFilterType `"instance"`.
	FirewallRuleHostFilterTypeInstance FirewallRuleHostFilterType = "instance"
)
const (
	// FirewallRuleHostFilterTypeIp represents the FirewallRuleHostFilterType `"ip"`.
	FirewallRuleHostFilterTypeIp FirewallRuleHostFilterType = "ip"
)
const (
	// FirewallRuleHostFilterTypeIpNet represents the FirewallRuleHostFilterType `"ip_net"`.
	FirewallRuleHostFilterTypeIpNet FirewallRuleHostFilterType = "ip_net"
)
const (
	// FirewallRuleHostFilterTypeSubnet represents the FirewallRuleHostFilterType `"subnet"`.
	FirewallRuleHostFilterTypeSubnet FirewallRuleHostFilterType = "subnet"
)
const (
	// FirewallRuleHostFilterTypeVpc represents the FirewallRuleHostFilterType `"vpc"`.
	FirewallRuleHostFilterTypeVpc FirewallRuleHostFilterType = "vpc"
)

type FirewallRuleHostFilterVPC added in v0.0.7

type FirewallRuleHostFilterVPC struct {
	Type FirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleProtocol added in v0.0.7

type FirewallRuleProtocol string

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

const (
	// FirewallRuleProtocolTCP represents the FirewallRuleProtocol `"TCP"`.
	FirewallRuleProtocolTCP FirewallRuleProtocol = "TCP"
	// FirewallRuleProtocolUDP represents the FirewallRuleProtocol `"UDP"`.
	FirewallRuleProtocolUDP FirewallRuleProtocol = "UDP"
	// FirewallRuleProtocolICMP represents the FirewallRuleProtocol `"ICMP"`.
	FirewallRuleProtocolICMP FirewallRuleProtocol = "ICMP"
)

type FirewallRuleStatus added in v0.0.7

type FirewallRuleStatus string

FirewallRuleStatus is the type definition for a FirewallRuleStatus.

const (
	// FirewallRuleStatusDisabled represents the FirewallRuleStatus `"disabled"`.
	FirewallRuleStatusDisabled FirewallRuleStatus = "disabled"
	// FirewallRuleStatusEnabled represents the FirewallRuleStatus `"enabled"`.
	FirewallRuleStatusEnabled FirewallRuleStatus = "enabled"
)

type FirewallRuleTarget added in v0.0.7

type FirewallRuleTarget struct {
	Type  string `json:"type,omitempty" yaml:"type,omitempty"`
	Value Name   `json:"value,omitempty" yaml:"value,omitempty"`
}

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

type FirewallRuleTargetInstance added in v0.0.7

type FirewallRuleTargetInstance struct {
	Type FirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

FirewallRuleTargetInstance is the rule applies to this specific instance

type FirewallRuleTargetIp added in v0.0.7

type FirewallRuleTargetIp struct {
	Type  FirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	Value string                 `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

FirewallRuleTargetIp is the rule applies to a specific IP address

type FirewallRuleTargetIpNet added in v0.0.7

type FirewallRuleTargetIpNet struct {
	Type FirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// Value is an `IpNet` represents an IP network, either IPv4 or IPv6.
	Value IpNet `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

FirewallRuleTargetIpNet is the rule applies to a specific IP subnet

type FirewallRuleTargetSubnet added in v0.0.7

type FirewallRuleTargetSubnet struct {
	Type FirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type FirewallRuleTargetType added in v0.0.7

type FirewallRuleTargetType string

FirewallRuleTargetType is the type definition for a FirewallRuleTargetType.

const (
	// FirewallRuleTargetTypeInstance represents the FirewallRuleTargetType `"instance"`.
	FirewallRuleTargetTypeInstance FirewallRuleTargetType = "instance"
)
const (
	// FirewallRuleTargetTypeIp represents the FirewallRuleTargetType `"ip"`.
	FirewallRuleTargetTypeIp FirewallRuleTargetType = "ip"
)
const (
	// FirewallRuleTargetTypeIpNet represents the FirewallRuleTargetType `"ip_net"`.
	FirewallRuleTargetTypeIpNet FirewallRuleTargetType = "ip_net"
)
const (
	// FirewallRuleTargetTypeSubnet represents the FirewallRuleTargetType `"subnet"`.
	FirewallRuleTargetTypeSubnet FirewallRuleTargetType = "subnet"
)
const (
	// FirewallRuleTargetTypeVpc represents the FirewallRuleTargetType `"vpc"`.
	FirewallRuleTargetTypeVpc FirewallRuleTargetType = "vpc"
)

type FirewallRuleTargetVPC added in v0.0.7

type FirewallRuleTargetVPC struct {
	Type FirewallRuleTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

FirewallRuleTargetVPC is the rule applies to all instances in the VPC

type FirewallRuleUpdate added in v0.0.7

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

FirewallRuleUpdate is a single rule in a VPC firewall

type FirewallRuleUpdateParams added in v0.0.7

type FirewallRuleUpdateParams struct {
	Rules []FirewallRuleUpdate `json:"rules,omitempty" yaml:"rules,omitempty" tfsdk:"rules"`
}

FirewallRuleUpdateParams 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 FirewallRules added in v0.0.7

type FirewallRules struct {
	Rules []FirewallRule `json:"rules,omitempty" yaml:"rules,omitempty" tfsdk:"rules"`
}

FirewallRules is collection of a [`Vpc`]'s firewall rules

type FirewallService added in v0.0.7

type FirewallService service

FirewallService: Firewall operation controls the flow of network data into a VPC

func (*FirewallService) RulesList added in v0.0.7

func (s *FirewallService) RulesList(organizationName Name, projectName Name, vpcName Name) (*FirewallRules, error)

RulesList: List firewall rules for a VPC.

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

func (*FirewallService) RulesPut added in v0.0.7

func (s *FirewallService) RulesPut(organizationName Name, projectName Name, vpcName Name, j *FirewallRuleUpdateParams) (*FirewallRules, error)

RulesPut: Replace the firewall rules for a VPC

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

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 HiddenService added in v0.0.7

type HiddenService service

HiddenService: TODO operations that will not ship to customers

func (*HiddenService) Logout added in v0.0.7

func (s *HiddenService) Logout() error

Logout

func (*HiddenService) SessionMe added in v0.0.7

func (s *HiddenService) SessionMe() (*SessionUser, error)

SessionMe: Fetch the user associated with the current session

func (*HiddenService) SpoofLogin added in v0.0.7

func (s *HiddenService) SpoofLogin(j *LoginParams) error

SpoofLogin

type IPv4Net

type IPv4Net string

IPv4Net is an IPv4 subnet, including prefix and subnet mask

type IPv6Net

type IPv6Net string

IPv6Net is an IPv6 subnet, including prefix and subnet mask

type IdSortMode added in v0.0.6

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 represents the IdSortMode `"id-ascending"`.
	IdSortModeIdAscending IdSortMode = "id-ascending"
)

type Instance

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

Instance is client view of an [`Instance`]

type InstanceCPUCount added in v0.0.4

type InstanceCPUCount int

InstanceCPUCount is the number of CPUs in an Instance

type InstanceCreate

type InstanceCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	Hostname    string `json:"hostname,omitempty" yaml:"hostname,omitempty" tfsdk:"hostname"`
	// 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" tfsdk:"memory"`
	// 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 '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// NCPUs is the number of CPUs in an Instance
	NCPUs InstanceCPUCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty" tfsdk:"ncpus"`
	// NetworkInterfaces is the network interfaces to be created for this instance.
	NetworkInterfaces InstanceNetworkInterfaceAttachment `json:"network_interfaces,omitempty" yaml:"network_interfaces,omitempty" tfsdk:"network_interfaces"`
	OrganizationName  string                             `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName       string                             `json:"-" yaml:"-" tfsdk:"project"`
}

InstanceCreate is create-time parameters for an [`Instance`](omicron_common::api::external::Instance)

type InstanceMigrate added in v0.0.7

type InstanceMigrate struct {
	DstSledUuid string `json:"dst_sled_uuid,omitempty" yaml:"dst_sled_uuid,omitempty" tfsdk:"dst_sled_uuid"`
}

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

type InstanceNetworkInterfaceAttachment added in v0.0.7

type InstanceNetworkInterfaceAttachment struct {
	Params InstanceNetworkInterfaceCreate `json:"params,omitempty" yaml:"params,omitempty"`
	Type   string                         `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 added in v0.0.7

type InstanceNetworkInterfaceAttachmentCreate struct {
	Params           InstanceNetworkInterfaceCreate         `json:"params,omitempty" yaml:"params,omitempty" tfsdk:"params"`
	Type             InstanceNetworkInterfaceAttachmentType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	OrganizationName string                                 `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string                                 `json:"-" yaml:"-" tfsdk:"project"`
}

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

type InstanceNetworkInterfaceAttachmentDefault added in v0.0.7

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

InstanceNetworkInterfaceAttachmentDefault is default networking setup, which creates a single interface with an auto-assigned IP address from project's "default" VPC and "default" VPC Subnet.

type InstanceNetworkInterfaceAttachmentNone added in v0.0.7

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

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

type InstanceNetworkInterfaceAttachmentType added in v0.0.7

type InstanceNetworkInterfaceAttachmentType string

InstanceNetworkInterfaceAttachmentType is the type definition for a InstanceNetworkInterfaceAttachmentType.

const (
	// InstanceNetworkInterfaceAttachmentTypeCreate represents the InstanceNetworkInterfaceAttachmentType `"Create"`.
	InstanceNetworkInterfaceAttachmentTypeCreate InstanceNetworkInterfaceAttachmentType = "Create"
)
const (
	// InstanceNetworkInterfaceAttachmentTypeDefault represents the InstanceNetworkInterfaceAttachmentType `"Default"`.
	InstanceNetworkInterfaceAttachmentTypeDefault InstanceNetworkInterfaceAttachmentType = "Default"
)
const (
	// InstanceNetworkInterfaceAttachmentTypeNone represents the InstanceNetworkInterfaceAttachmentType `"None"`.
	InstanceNetworkInterfaceAttachmentTypeNone InstanceNetworkInterfaceAttachmentType = "None"
)

type InstanceNetworkInterfaceCreate added in v0.0.7

type InstanceNetworkInterfaceCreate struct {
	Params           []NetworkInterfaceCreate `json:"params,omitempty" yaml:"params,omitempty" tfsdk:"params"`
	OrganizationName string                   `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string                   `json:"-" yaml:"-" tfsdk:"project"`
}

InstanceNetworkInterfaceCreate is the type definition for a InstanceNetworkInterfaceCreate.

type InstanceResultsPage

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

InstanceResultsPage is a single page of results

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 represents the InstanceState `"creating"`.
	InstanceStateCreating InstanceState = "creating"
	// InstanceStateStarting represents the InstanceState `"starting"`.
	InstanceStateStarting InstanceState = "starting"
	// InstanceStateRunning represents the InstanceState `"running"`.
	InstanceStateRunning InstanceState = "running"
	// InstanceStateStopping represents the InstanceState `"stopping"`.
	InstanceStateStopping InstanceState = "stopping"
	// InstanceStateStopped represents the InstanceState `"stopped"`.
	InstanceStateStopped InstanceState = "stopped"
	// InstanceStateRebooting represents the InstanceState `"rebooting"`.
	InstanceStateRebooting InstanceState = "rebooting"
	// InstanceStateMigrating represents the InstanceState `"migrating"`.
	InstanceStateMigrating InstanceState = "migrating"
	// InstanceStateRepairing represents the InstanceState `"repairing"`.
	InstanceStateRepairing InstanceState = "repairing"
	// InstanceStateFailed represents the InstanceState `"failed"`.
	InstanceStateFailed InstanceState = "failed"
	// InstanceStateDestroyed represents the InstanceState `"destroyed"`.
	InstanceStateDestroyed InstanceState = "destroyed"
)

type InstancesService added in v0.0.3

type InstancesService service

InstancesService: Virtual machine instances are the basic unit of computation. These operations are used for provisioning, controlling, and destroying instances.

func (*InstancesService) Create added in v0.0.3

func (s *InstancesService) Create(organizationName Name, projectName Name, j *InstanceCreate) (*Instance, error)

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*InstancesService) Delete added in v0.0.3

func (s *InstancesService) Delete(instanceName Name, organizationName Name, projectName Name) error

Delete: Delete an instance from a project.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) DisksAttach added in v0.0.3

func (s *InstancesService) DisksAttach(instanceName Name, organizationName Name, projectName Name, j *DiskIdentifier) (*Disk, error)

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) DisksDetach added in v0.0.3

func (s *InstancesService) DisksDetach(instanceName Name, organizationName Name, projectName Name, j *DiskIdentifier) (*Disk, error)

DisksDetach

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) DisksList added in v0.0.3

func (s *InstancesService) DisksList(limit int, pageToken string, sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*DiskResultsPage, error)

DisksList: List disks attached to this instance.

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

Parameters:

  • `instanceName`
  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `sortBy`

func (*InstancesService) DisksListAllPages added in v0.0.3

func (s *InstancesService) DisksListAllPages(sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*[]Disk, error)

DisksListAllPages: List disks attached to this instance.

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

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`
  • `sortBy`

func (*InstancesService) Get added in v0.0.3

func (s *InstancesService) Get(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

Get: Get an instance in a project.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) List added in v0.0.3

func (s *InstancesService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*InstanceResultsPage, error)

List: List instances in a project.

To iterate over all pages, use the `ListAllPages` 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 retreive the subsequent page
  • `projectName`: The project's unique name within the organization.
  • `sortBy`

func (*InstancesService) ListAllPages added in v0.0.3

func (s *InstancesService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Instance, error)

ListAllPages: List instances in a project.

This method is a wrapper around the `List` 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 (*InstancesService) Migrate added in v0.0.7

func (s *InstancesService) Migrate(instanceName Name, organizationName Name, projectName Name, j *InstanceMigrate) (*Instance, error)

Migrate: Migrate an instance to a different propolis-server, possibly on a different sled.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) NetworkInterfacesCreate added in v0.0.7

func (s *InstancesService) NetworkInterfacesCreate(instanceName Name, organizationName Name, projectName Name, j *NetworkInterfaceCreate) (*NetworkInterface, error)

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) NetworkInterfacesDeleteInterface added in v0.0.7

func (s *InstancesService) NetworkInterfacesDeleteInterface(instanceName Name, interfaceName Name, organizationName Name, projectName Name) error

NetworkInterfacesDeleteInterface: Detach a network interface from an instance.

Parameters:

  • `instanceName`
  • `interfaceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) NetworkInterfacesGetInterface added in v0.0.7

func (s *InstancesService) NetworkInterfacesGetInterface(instanceName Name, interfaceName Name, organizationName Name, projectName Name) (*NetworkInterface, error)

NetworkInterfacesGetInterface: Get an interface attached to an instance.

Parameters:

  • `instanceName`
  • `interfaceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) NetworkInterfacesList added in v0.0.7

func (s *InstancesService) NetworkInterfacesList(limit int, pageToken string, sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*NetworkInterfaceResultsPage, error)

NetworkInterfacesList: List network interfaces attached to this instance.

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

Parameters:

  • `instanceName`
  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `sortBy`

func (*InstancesService) NetworkInterfacesListAllPages added in v0.0.7

func (s *InstancesService) NetworkInterfacesListAllPages(sortBy NameSortMode, instanceName Name, organizationName Name, projectName Name) (*[]NetworkInterface, error)

NetworkInterfacesListAllPages: List network interfaces attached to this instance.

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

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`
  • `sortBy`

func (*InstancesService) Reboot added in v0.0.3

func (s *InstancesService) Reboot(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

Reboot: Reboot an instance.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) Start added in v0.0.3

func (s *InstancesService) Start(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

Start: Boot an instance.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

func (*InstancesService) Stop added in v0.0.3

func (s *InstancesService) Stop(instanceName Name, organizationName Name, projectName Name) (*Instance, error)

Stop: Halt an instance.

Parameters:

  • `instanceName`
  • `organizationName`
  • `projectName`

type IpNet added in v0.0.7

type IpNet struct {
	V4 IPv4Net `json:"V4,omitempty" yaml:"V4,omitempty"`
	V6 IPv6Net `json:"V6,omitempty" yaml:"V6,omitempty"`
}

IpNet is an `IpNet` represents an IP network, either IPv4 or IPv6.

type IpNetV4 added in v0.0.7

type IpNetV4 struct {
	// V4 is an IPv4 subnet, including prefix and subnet mask
	V4 IPv4Net `json:"V4,omitempty" yaml:"V4,omitempty" tfsdk:"V4"`
}

IpNetV4 is the type definition for a IpNetV4.

type IpNetV6 added in v0.0.7

type IpNetV6 struct {
	// V6 is an IPv6 subnet, including prefix and subnet mask
	V6 IPv6Net `json:"V6,omitempty" yaml:"V6,omitempty" tfsdk:"V6"`
}

IpNetV6 is the type definition for a IpNetV6.

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 LoginParams

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

LoginParams is the type definition for a LoginParams.

type MacAddr

type MacAddr string

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

type MetricsService added in v0.0.3

type MetricsService service

MetricsService: Metrics provide insight into the operation of the Oxide deployment. These include telemetry on hardware and software components that can be used to understand the current state as well as to diagnose issues.

func (*MetricsService) TimeseriesSchemaList added in v0.0.3

func (s *MetricsService) TimeseriesSchemaList(limit int, pageToken string) (*TimeseriesSchemaResultsPage, error)

TimeseriesSchemaList: List all timeseries schema

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page

func (*MetricsService) TimeseriesSchemaListAllPages added in v0.0.3

func (s *MetricsService) TimeseriesSchemaListAllPages() (*[]TimeseriesSchema, error)

TimeseriesSchemaListAllPages: List all timeseries schema

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

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

type NameOrIdSortMode

type NameOrIdSortMode string

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

const (
	// NameOrIdSortModeNameAscending represents the NameOrIdSortMode `"name-ascending"`.
	NameOrIdSortModeNameAscending NameOrIdSortMode = "name-ascending"
	// NameOrIdSortModeNameDescending represents the NameOrIdSortMode `"name-descending"`.
	NameOrIdSortModeNameDescending NameOrIdSortMode = "name-descending"
	// NameOrIdSortModeIdAscending represents the NameOrIdSortMode `"id-ascending"`.
	NameOrIdSortModeIdAscending NameOrIdSortMode = "id-ascending"
)

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 represents the NameSortMode `"name-ascending"`.
	NameSortModeNameAscending 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" tfsdk:"description"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// InstanceID is the Instance to which the interface belongs.
	InstanceID string `json:"instance_id,omitempty" yaml:"instance_id,omitempty" tfsdk:"instance_id"`
	// Ip is the IP address assigned to this interface.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty" tfsdk:"ip"`
	// Mac is the MAC address assigned to this interface.
	Mac MacAddr `json:"mac,omitempty" yaml:"mac,omitempty" tfsdk:"mac"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// SubnetID is the subnet to which the interface belongs.
	SubnetID string `json:"subnet_id,omitempty" yaml:"subnet_id,omitempty" tfsdk:"subnet_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	// VPCId is the VPC to which the interface belongs.
	VPCId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty" tfsdk:"vpc_id"`
}

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

type NetworkInterfaceCreate added in v0.0.7

type NetworkInterfaceCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// Ip is the IP address for the interface. One will be auto-assigned if not provided.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty" tfsdk:"ip"`
	// 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 '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// SubnetName is the VPC Subnet in which to create the interface.
	SubnetName Name `json:"subnet_name,omitempty" yaml:"subnet_name,omitempty" tfsdk:"subnet_name"`
	// VPCName is the VPC in which to create the interface.
	VPCName          Name   `json:"vpc_name,omitempty" yaml:"vpc_name,omitempty" tfsdk:"vpc_name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
}

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

NetworkInterfaceResultsPage is a single page of results

type Organization

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

Organization is client view of an [`Organization`]

type OrganizationCreate

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

OrganizationResultsPage is a single page of results

type OrganizationUpdate

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

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

type OrganizationsService added in v0.0.3

type OrganizationsService service

OrganizationsService: Organizations represent a subset of users and projects in an Oxide deployment.

func (*OrganizationsService) Create added in v0.0.3

func (*OrganizationsService) Delete added in v0.0.3

func (s *OrganizationsService) Delete(organizationName Name) error

Delete: Delete a specific organization.

Parameters:

  • `organizationName`: The organization's unique name.

func (*OrganizationsService) Get added in v0.0.3

func (s *OrganizationsService) Get(organizationName Name) (*Organization, error)

Get: Fetch a specific organization

Parameters:

  • `organizationName`: The organization's unique name.

func (*OrganizationsService) List added in v0.0.3

func (s *OrganizationsService) List(limit int, pageToken string, sortBy NameOrIdSortMode) (*OrganizationResultsPage, error)

List: List all organizations.

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `sortBy`

func (*OrganizationsService) ListAllPages added in v0.0.3

func (s *OrganizationsService) ListAllPages(sortBy NameOrIdSortMode) (*[]Organization, error)

ListAllPages: List all organizations.

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

Parameters:

  • `sortBy`

func (*OrganizationsService) Put added in v0.0.3

func (s *OrganizationsService) Put(organizationName Name, j *OrganizationUpdate) (*Organization, error)

Put: Update a specific organization.

Parameters:

  • `organizationName`: The organization's unique name.

type Project

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

Project is client view of a [`Project`]

type ProjectCreate

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

ProjectResultsPage is a single page of results

type ProjectUpdate

type ProjectUpdate struct {
	Description      string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
}

ProjectUpdate is updateable properties of a [`Project`](crate::external_api::views::Project)

type ProjectsService added in v0.0.3

type ProjectsService service

ProjectsService: Projects are a grouping of associated resources such as instances and disks within an organization for purposes of billing and access control.

func (*ProjectsService) Create added in v0.0.3

func (s *ProjectsService) Create(organizationName Name, j *ProjectCreate) (*Project, error)

Parameters:

  • `organizationName`: The organization's unique name.

func (*ProjectsService) Delete added in v0.0.3

func (s *ProjectsService) Delete(organizationName Name, projectName Name) error

Delete: Delete a specific project.

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*ProjectsService) Get added in v0.0.3

func (s *ProjectsService) Get(organizationName Name, projectName Name) (*Project, error)

Get: Fetch a specific project

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*ProjectsService) List added in v0.0.3

func (s *ProjectsService) List(limit int, pageToken string, sortBy NameOrIdSortMode, organizationName Name) (*ProjectResultsPage, error)

List: List all projects.

To iterate over all pages, use the `ListAllPages` 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 retreive the subsequent page
  • `sortBy`

func (*ProjectsService) ListAllPages added in v0.0.3

func (s *ProjectsService) ListAllPages(sortBy NameOrIdSortMode, organizationName Name) (*[]Project, error)

ListAllPages: List all projects.

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

Parameters:

  • `organizationName`: The organization's unique name.
  • `sortBy`

func (*ProjectsService) Put added in v0.0.7

func (s *ProjectsService) Put(organizationName Name, projectName Name, j *ProjectUpdate) (*Project, error)

Put: Update a specific project.

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

type Rack

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

RackResultsPage is a single page of results

type RacksService added in v0.0.7

type RacksService service

RacksService: These operations pertain to hardware inventory and management. Racks are the unit of expansion of an Oxide deployment. Racks are in turn composed of sleds, switches, power supplies, and a cabled backplane.

func (*RacksService) Get added in v0.0.7

func (s *RacksService) Get(rackID string) (*Rack, error)

Parameters:

  • `rackId`: The rack's unique ID.

func (*RacksService) List added in v0.0.7

func (s *RacksService) List(limit int, pageToken string, sortBy IdSortMode) (*RackResultsPage, error)

List: List racks in the system.

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `sortBy`

func (*RacksService) ListAllPages added in v0.0.7

func (s *RacksService) ListAllPages(sortBy IdSortMode) (*[]Rack, error)

ListAllPages: List racks in the system.

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

Parameters:

  • `sortBy`

type Role

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

RoleResultsPage is a single page of results

type RolesService added in v0.0.3

type RolesService service

RolesService: Roles are a component of Identity and Access Management (IAM) that allow a user or agent account access to additional permissions.

func (*RolesService) Get added in v0.0.3

func (s *RolesService) Get(roleName string) (*Role, error)

Parameters:

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

func (*RolesService) List added in v0.0.3

func (s *RolesService) List(limit int, pageToken string) (*RoleResultsPage, error)

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page

func (*RolesService) ListAllPages added in v0.0.3

func (s *RolesService) ListAllPages() (*[]Role, error)

ListAllPages: List the built-in roles

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

type Route added in v0.0.7

type Route struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// 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" tfsdk:"destination"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// Kind is describes the kind of router. Set at creation. `read-only`
	Kind RouteKind `json:"kind,omitempty" yaml:"kind,omitempty" tfsdk:"kind"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// RouterID is the VPC Router to which the route belongs.
	RouterID string `json:"router_id,omitempty" yaml:"router_id,omitempty" tfsdk:"router_id"`
	// 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" tfsdk:"target"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified     *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	OrganizationName string     `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string     `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string     `json:"-" yaml:"-" tfsdk:"vpc"`
	RouterName       string     `json:"-" yaml:"-" tfsdk:"router"`
}

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

type RouteCreateParams added in v0.0.7

type RouteCreateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// 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" tfsdk:"destination"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// 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" tfsdk:"target"`
}

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

type RouteDestination

type RouteDestination struct {
	Type  string `json:"type,omitempty" yaml:"type,omitempty"`
	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" tfsdk:"type"`
	Value string               `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type RouteDestinationIpNet added in v0.0.7

type RouteDestinationIpNet struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// Value is an `IpNet` represents an IP network, either IPv4 or IPv6.
	Value IpNet `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

RouteDestinationSubnet is route applies to traffic

type RouteDestinationType

type RouteDestinationType string

RouteDestinationType is the type definition for a RouteDestinationType.

const (
	// RouteDestinationTypeIp represents the RouteDestinationType `"ip"`.
	RouteDestinationTypeIp RouteDestinationType = "ip"
)
const (
	// RouteDestinationTypeIpNet represents the RouteDestinationType `"ip_net"`.
	RouteDestinationTypeIpNet RouteDestinationType = "ip_net"
)
const (
	// RouteDestinationTypeSubnet represents the RouteDestinationType `"subnet"`.
	RouteDestinationTypeSubnet RouteDestinationType = "subnet"
)
const (
	// RouteDestinationTypeVpc represents the RouteDestinationType `"vpc"`.
	RouteDestinationTypeVpc RouteDestinationType = "vpc"
)

type RouteDestinationVPC

type RouteDestinationVPC struct {
	Type RouteDestinationType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

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

type RouteKind added in v0.0.7

type RouteKind string

RouteKind 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 (
	// RouteKindDefault represents the RouteKind `"default"`.
	RouteKindDefault RouteKind = "default"
	// RouteKindVpcSubnet represents the RouteKind `"vpc_subnet"`.
	RouteKindVpcSubnet RouteKind = "vpc_subnet"
	// RouteKindVpcPeering represents the RouteKind `"vpc_peering"`.
	RouteKindVpcPeering RouteKind = "vpc_peering"
	// RouteKindCustom represents the RouteKind `"custom"`.
	RouteKindCustom RouteKind = "custom"
)

type RouteResultsPage added in v0.0.7

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

RouteResultsPage is a single page of results

type RouteTarget

type RouteTarget struct {
	Type  string `json:"type,omitempty" yaml:"type,omitempty"`
	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" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

RouteTargetInstance is forward traffic to a specific instance

type RouteTargetInternetGateway

type RouteTargetInternetGateway struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

RouteTargetInternetGateway is forward traffic to an internet gateway

type RouteTargetIp

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

RouteTargetIp is forward traffic to a particular IP address.

type RouteTargetSubnet

type RouteTargetSubnet struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

RouteTargetSubnet is forward traffic to a VPC Subnet

type RouteTargetType

type RouteTargetType string

RouteTargetType is the type definition for a RouteTargetType.

const (
	// RouteTargetTypeInstance represents the RouteTargetType `"instance"`.
	RouteTargetTypeInstance RouteTargetType = "instance"
)
const (
	// RouteTargetTypeInternetGateway represents the RouteTargetType `"internet_gateway"`.
	RouteTargetTypeInternetGateway RouteTargetType = "internet_gateway"
)
const (
	// RouteTargetTypeIp represents the RouteTargetType `"ip"`.
	RouteTargetTypeIp RouteTargetType = "ip"
)
const (
	// RouteTargetTypeSubnet represents the RouteTargetType `"subnet"`.
	RouteTargetTypeSubnet RouteTargetType = "subnet"
)
const (
	// RouteTargetTypeVpc represents the RouteTargetType `"vpc"`.
	RouteTargetTypeVpc RouteTargetType = "vpc"
)

type RouteTargetVPC

type RouteTargetVPC struct {
	Type RouteTargetType `json:"type,omitempty" yaml:"type,omitempty" tfsdk:"type"`
	// 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 '-'.
	Value Name `json:"value,omitempty" yaml:"value,omitempty" tfsdk:"value"`
}

RouteTargetVPC is forward traffic to a VPC

type RouteUpdateParams added in v0.0.7

type RouteUpdateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// 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" tfsdk:"destination"`
	Name        Name             `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// 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" tfsdk:"target"`
}

RouteUpdateParams is updateable properties of a [`RouterRoute`]

type Router added in v0.0.7

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

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

type RouterCreate added in v0.0.7

type RouterCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string `json:"-" yaml:"-" tfsdk:"vpc"`
}

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

type RouterKind added in v0.0.7

type RouterKind string

RouterKind is the type definition for a RouterKind.

const (
	// RouterKindSystem represents the RouterKind `"system"`.
	RouterKindSystem RouterKind = "system"
	// RouterKindCustom represents the RouterKind `"custom"`.
	RouterKindCustom RouterKind = "custom"
)

type RouterResultsPage added in v0.0.7

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

RouterResultsPage is a single page of results

type RouterUpdate added in v0.0.7

type RouterUpdate struct {
	Description      string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string `json:"-" yaml:"-" tfsdk:"vpc"`
}

RouterUpdate is updateable properties of a [`VpcRouter`](crate::external_api::views::VpcRouter)

type RoutersService added in v0.0.7

type RoutersService service

RoutersService: Routers direct the flow of network traffic into, out of, and within a VPC via routes.

func (*RoutersService) Create added in v0.0.7

func (s *RoutersService) Create(organizationName Name, projectName Name, vpcName Name, j *RouterCreate) (*Router, error)

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

func (*RoutersService) Delete added in v0.0.7

func (s *RoutersService) Delete(organizationName Name, projectName Name, routerName Name, vpcName Name) error

Delete: Delete a router from its VPC

Parameters:

  • `organizationName`
  • `projectName`
  • `routerName`
  • `vpcName`

func (*RoutersService) Get added in v0.0.7

func (s *RoutersService) Get(organizationName Name, projectName Name, routerName Name, vpcName Name) (*Router, error)

Get: Get a VPC Router

Parameters:

  • `organizationName`
  • `projectName`
  • `routerName`
  • `vpcName`

func (*RoutersService) List added in v0.0.7

func (s *RoutersService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*RouterResultsPage, error)

List: List VPC Custom and System Routers

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `sortBy`
  • `vpcName`

func (*RoutersService) ListAllPages added in v0.0.7

func (s *RoutersService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*[]Router, error)

ListAllPages: List VPC Custom and System Routers

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

Parameters:

  • `organizationName`
  • `projectName`
  • `sortBy`
  • `vpcName`

func (*RoutersService) Put added in v0.0.7

func (s *RoutersService) Put(organizationName Name, projectName Name, routerName Name, vpcName Name, j *RouterUpdate) (*Router, error)

Put: Update a VPC Router

Parameters:

  • `organizationName`
  • `projectName`
  • `routerName`
  • `vpcName`

type RoutesService added in v0.0.7

type RoutesService service

RoutesService: Routes define router policy.

func (*RoutesService) Create added in v0.0.7

func (s *RoutesService) Create(organizationName Name, projectName Name, routerName Name, vpcName Name, j *RouteCreateParams) (*Route, error)

Parameters:

  • `organizationName`
  • `projectName`
  • `routerName`
  • `vpcName`

func (*RoutesService) Delete added in v0.0.7

func (s *RoutesService) Delete(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name) error

Delete: Delete a route from its router

Parameters:

  • `organizationName`
  • `projectName`
  • `routeName`
  • `routerName`
  • `vpcName`

func (*RoutesService) Get added in v0.0.7

func (s *RoutesService) Get(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name) (*Route, error)

Get: Get a VPC Router route

Parameters:

  • `organizationName`
  • `projectName`
  • `routeName`
  • `routerName`
  • `vpcName`

func (*RoutesService) List added in v0.0.7

func (s *RoutesService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, routerName Name, vpcName Name) (*RouteResultsPage, error)

List: List a Router's routes

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `routerName`
  • `sortBy`
  • `vpcName`

func (*RoutesService) ListAllPages added in v0.0.7

func (s *RoutesService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, routerName Name, vpcName Name) (*[]Route, error)

ListAllPages: List a Router's routes

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

Parameters:

  • `organizationName`
  • `projectName`
  • `routerName`
  • `sortBy`
  • `vpcName`

func (*RoutesService) Put added in v0.0.7

func (s *RoutesService) Put(organizationName Name, projectName Name, routeName Name, routerName Name, vpcName Name, j *RouteUpdateParams) (*Route, error)

Put: Update a Router route

Parameters:

  • `organizationName`
  • `projectName`
  • `routeName`
  • `routerName`
  • `vpcName`

type Saga

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

Saga is the type definition for a Saga.

type SagaErrorInfo

type SagaErrorInfo struct {
	Error       string      `json:"error,omitempty" yaml:"error,omitempty"`
	SourceError interface{} `json:"source_error,omitempty" yaml:"source_error,omitempty"`
	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" tfsdk:"error"`
	SourceError interface{}        `json:"source_error,omitempty" yaml:"source_error,omitempty" tfsdk:"source_error"`
}

SagaErrorInfoActionFailed is the type definition for a SagaErrorInfoActionFailed.

type SagaErrorInfoDeserializeFailed

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

SagaErrorInfoDeserializeFailed is the type definition for a SagaErrorInfoDeserializeFailed.

type SagaErrorInfoError

type SagaErrorInfoError string

SagaErrorInfoError is the type definition for a SagaErrorInfoError.

const (
	// SagaErrorInfoErrorActionFailed represents the SagaErrorInfoError `"action_failed"`.
	SagaErrorInfoErrorActionFailed SagaErrorInfoError = "action_failed"
)
const (
	// SagaErrorInfoErrorDeserializeFailed represents the SagaErrorInfoError `"deserialize_failed"`.
	SagaErrorInfoErrorDeserializeFailed SagaErrorInfoError = "deserialize_failed"
)
const (
	// SagaErrorInfoErrorInjectedError represents the SagaErrorInfoError `"injected_error"`.
	SagaErrorInfoErrorInjectedError SagaErrorInfoError = "injected_error"
)
const (
	// SagaErrorInfoErrorSerializeFailed represents the SagaErrorInfoError `"serialize_failed"`.
	SagaErrorInfoErrorSerializeFailed SagaErrorInfoError = "serialize_failed"
)
const (
	// SagaErrorInfoErrorSubsagaCreateFailed represents the SagaErrorInfoError `"subsaga_create_failed"`.
	SagaErrorInfoErrorSubsagaCreateFailed SagaErrorInfoError = "subsaga_create_failed"
)

type SagaErrorInfoInjectedError

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

SagaErrorInfoInjectedError is the type definition for a SagaErrorInfoInjectedError.

type SagaErrorInfoSerializeFailed

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

SagaErrorInfoSerializeFailed is the type definition for a SagaErrorInfoSerializeFailed.

type SagaErrorInfoSubsagaCreateFailed

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

SagaResultsPage is a single page of results

type SagaState

type SagaState struct {
	State         string        `json:"state,omitempty" yaml:"state,omitempty"`
	ErrorInfo     SagaErrorInfo `json:"error_info,omitempty" yaml:"error_info,omitempty"`
	ErrorNodeName string        `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" tfsdk:"error_info"`
	ErrorNodeName string         `json:"error_node_name,omitempty" yaml:"error_node_name,omitempty" tfsdk:"error_node_name"`
	State         SagaStateState `json:"state,omitempty" yaml:"state,omitempty" tfsdk:"state"`
}

SagaStateFailed is the type definition for a SagaStateFailed.

type SagaStateRunning

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

SagaStateRunning is the type definition for a SagaStateRunning.

type SagaStateState

type SagaStateState string

SagaStateState is the type definition for a SagaStateState.

const (
	// SagaStateStateFailed represents the SagaStateState `"failed"`.
	SagaStateStateFailed SagaStateState = "failed"
)
const (
	// SagaStateStateRunning represents the SagaStateState `"running"`.
	SagaStateStateRunning SagaStateState = "running"
)
const (
	// SagaStateStateSucceeded represents the SagaStateState `"succeeded"`.
	SagaStateStateSucceeded SagaStateState = "succeeded"
)

type SagaStateSucceeded

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

SagaStateSucceeded is the type definition for a SagaStateSucceeded.

type SagasService added in v0.0.3

type SagasService service

SagasService: Sagas are the abstraction used to represent multi-step operations within the Oxide deployment. These operations can be used to query saga status and report errors.

func (*SagasService) Get added in v0.0.3

func (s *SagasService) Get(sagaID string) (*Saga, error)

Parameters:

  • `sagaId`

func (*SagasService) List added in v0.0.3

func (s *SagasService) List(limit int, pageToken string, sortBy IdSortMode) (*SagaResultsPage, error)

List: List all sagas (for debugging)

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `sortBy`

func (*SagasService) ListAllPages added in v0.0.3

func (s *SagasService) ListAllPages(sortBy IdSortMode) (*[]Saga, error)

ListAllPages: List all sagas (for debugging)

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

Parameters:

  • `sortBy`

type SessionUser

type SessionUser struct {
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
}

SessionUser is client view of currently authed user.

type Sled

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

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

SledResultsPage is a single page of results

type SledsService added in v0.0.7

type SledsService service

SledsService: This tag should be moved into hardware

func (*SledsService) Get added in v0.0.7

func (s *SledsService) Get(sledID string) (*Sled, error)

Parameters:

  • `sledId`: The sled's unique ID.

func (*SledsService) List added in v0.0.7

func (s *SledsService) List(limit int, pageToken string, sortBy IdSortMode) (*SledResultsPage, error)

List: List sleds in the system.

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `sortBy`

func (*SledsService) ListAllPages added in v0.0.7

func (s *SledsService) ListAllPages(sortBy IdSortMode) (*[]Sled, error)

ListAllPages: List sleds in the system.

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

Parameters:

  • `sortBy`

type Snapshot added in v0.0.7

type Snapshot struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	DiskID      string `json:"disk_id,omitempty" yaml:"disk_id,omitempty" tfsdk:"disk_id"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name      Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	ProjectID string `json:"project_id,omitempty" yaml:"project_id,omitempty" tfsdk:"project_id"`
	// 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" tfsdk:"size"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified     *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	OrganizationName string     `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string     `json:"-" yaml:"-" tfsdk:"project"`
}

Snapshot is client view of a Snapshot

type SnapshotCreate added in v0.0.7

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

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

type SnapshotResultsPage added in v0.0.7

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

SnapshotResultsPage is a single page of results

type SnapshotsService added in v0.0.7

type SnapshotsService service

SnapshotsService: Snapshots of Virtual Disks at a particular point in time.

func (*SnapshotsService) Create added in v0.0.7

func (s *SnapshotsService) Create(organizationName Name, projectName Name, j *SnapshotCreate) (*Snapshot, error)

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*SnapshotsService) Delete added in v0.0.7

func (s *SnapshotsService) Delete(organizationName Name, projectName Name, snapshotName Name) error

Delete: Delete a snapshot from a project.

Parameters:

  • `organizationName`
  • `projectName`
  • `snapshotName`

func (*SnapshotsService) Get added in v0.0.7

func (s *SnapshotsService) Get(organizationName Name, projectName Name, snapshotName Name) (*Snapshot, error)

Get: Get a snapshot in a project.

Parameters:

  • `organizationName`
  • `projectName`
  • `snapshotName`

func (*SnapshotsService) List added in v0.0.7

func (s *SnapshotsService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*SnapshotResultsPage, error)

List: List snapshots in a project.

To iterate over all pages, use the `ListAllPages` 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 retreive the subsequent page
  • `projectName`: The project's unique name within the organization.
  • `sortBy`

func (*SnapshotsService) ListAllPages added in v0.0.7

func (s *SnapshotsService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]Snapshot, error)

ListAllPages: List snapshots in a project.

This method is a wrapper around the `List` 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`

type Subnet added in v0.0.7

type Subnet struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// IPv4Block is the IPv4 subnet CIDR block.
	IPv4Block IPv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty" tfsdk:"ipv4_block"`
	// IPv6Block is the IPv6 subnet CIDR block.
	IPv6Block IPv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty" tfsdk:"ipv6_block"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	// VPCId is the VPC to which the subnet belongs.
	VPCId            string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty" tfsdk:"vpc_id"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string `json:"-" yaml:"-" tfsdk:"vpc"`
}

Subnet 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 SubnetCreate added in v0.0.7

type SubnetCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// IPv4Block is the IPv4 address range for this subnet.
	//
	// It must be allocated from an RFC 1918 private address range, and must not overlap with any other existing subnet in the VPC.
	IPv4Block IPv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty" tfsdk:"ipv4_block"`
	// IPv6Block is the IPv6 address range for this subnet.
	//
	// It must be allocated from the RFC 4193 Unique Local Address range, with the prefix equal to the parent VPC's prefix. A random `/64` block will be assigned if one is not provided. It must not overlap with any existing subnet in the VPC.
	IPv6Block IPv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty" tfsdk:"ipv6_block"`
	// 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 '-'.
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string `json:"-" yaml:"-" tfsdk:"vpc"`
}

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

type SubnetResultsPage added in v0.0.7

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

SubnetResultsPage is a single page of results

type SubnetUpdate added in v0.0.7

type SubnetUpdate struct {
	Description      string  `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	IPv4Block        IPv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty" tfsdk:"ipv4_block"`
	IPv6Block        IPv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty" tfsdk:"ipv6_block"`
	Name             Name    `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string  `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string  `json:"-" yaml:"-" tfsdk:"project"`
	VPCName          string  `json:"-" yaml:"-" tfsdk:"vpc"`
}

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

type SubnetsService added in v0.0.7

type SubnetsService service

SubnetsService: This tag should be moved into a generic network tag

func (*SubnetsService) Create added in v0.0.7

func (s *SubnetsService) Create(organizationName Name, projectName Name, vpcName Name, j *SubnetCreate) (*Subnet, error)

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

func (*SubnetsService) Delete added in v0.0.7

func (s *SubnetsService) Delete(organizationName Name, projectName Name, subnetName Name, vpcName Name) error

Delete: Delete a subnet from a VPC.

Parameters:

  • `organizationName`
  • `projectName`
  • `subnetName`
  • `vpcName`

func (*SubnetsService) Get added in v0.0.7

func (s *SubnetsService) Get(organizationName Name, projectName Name, subnetName Name, vpcName Name) (*Subnet, error)

Get: Get subnet in a VPC.

Parameters:

  • `organizationName`
  • `projectName`
  • `subnetName`
  • `vpcName`

func (*SubnetsService) List added in v0.0.7

func (s *SubnetsService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*SubnetResultsPage, error)

List: List subnets in a VPC.

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `sortBy`
  • `vpcName`

func (*SubnetsService) ListAllPages added in v0.0.7

func (s *SubnetsService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, vpcName Name) (*[]Subnet, error)

ListAllPages: List subnets in a VPC.

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

Parameters:

  • `organizationName`
  • `projectName`
  • `sortBy`
  • `vpcName`

func (*SubnetsService) NetworkInterfacesList added in v0.0.7

func (s *SubnetsService) NetworkInterfacesList(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, subnetName Name, vpcName Name) (*NetworkInterfaceResultsPage, error)

NetworkInterfacesList: List network interfaces in a VPC subnet.

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `organizationName`
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `projectName`
  • `sortBy`
  • `subnetName`
  • `vpcName`

func (*SubnetsService) NetworkInterfacesListAllPages added in v0.0.7

func (s *SubnetsService) NetworkInterfacesListAllPages(sortBy NameSortMode, organizationName Name, projectName Name, subnetName Name, vpcName Name) (*[]NetworkInterface, error)

NetworkInterfacesListAllPages: List network interfaces in a VPC subnet.

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

Parameters:

  • `organizationName`
  • `projectName`
  • `sortBy`
  • `subnetName`
  • `vpcName`

func (*SubnetsService) Put added in v0.0.7

func (s *SubnetsService) Put(organizationName Name, projectName Name, subnetName Name, vpcName Name, j *SubnetUpdate) (*Subnet, error)

Put: Update a VPC Subnet.

Parameters:

  • `organizationName`
  • `projectName`
  • `subnetName`
  • `vpcName`

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" tfsdk:"created"`
	// DatumType is the type of an individual datum of a metric.
	DatumType   DatumType     `json:"datum_type,omitempty" yaml:"datum_type,omitempty" tfsdk:"datum_type"`
	FieldSchema []FieldSchema `json:"field_schema,omitempty" yaml:"field_schema,omitempty" tfsdk:"field_schema"`
	// TimeseriesName is names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words.
	TimeseriesName TimeseriesName `json:"timeseries_name,omitempty" yaml:"timeseries_name,omitempty" tfsdk:"timeseries_name"`
}

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" tfsdk:"items"`
	// NextPage is token used to fetch the next page of results (if any)
	NextPage string `json:"next_page,omitempty" yaml:"next_page,omitempty" tfsdk:"next_page"`
}

TimeseriesSchemaResultsPage is a single page of results

type UpdatesService added in v0.0.7

type UpdatesService service

UpdatesService: This tag should be moved into a operations tag

func (*UpdatesService) Refresh added in v0.0.7

func (s *UpdatesService) Refresh() error

type User

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

User is client view of a [`User`]

type UserResultsPage

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

UserResultsPage is a single page of results

type UsersService added in v0.0.3

type UsersService service

UsersService: This tag should be moved into an IAM tag

func (*UsersService) Get added in v0.0.3

func (s *UsersService) Get(userName Name) (*User, error)

Parameters:

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

func (*UsersService) List added in v0.0.3

func (s *UsersService) List(limit int, pageToken string, sortBy NameSortMode) (*UserResultsPage, error)

List: List the built-in system users

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

Parameters:

  • `limit`: Maximum number of items returned by a single call
  • `pageToken`: Token returned by previous call to retreive the subsequent page
  • `sortBy`

func (*UsersService) ListAllPages added in v0.0.3

func (s *UsersService) ListAllPages(sortBy NameSortMode) (*[]User, error)

ListAllPages: List the built-in system users

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

Parameters:

  • `sortBy`

type VPC

type VPC struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// DnsName is the name used for the VPC in DNS.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty" tfsdk:"dns_name"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty" tfsdk:"id"`
	// IPv6Prefix is the unique local IPv6 address range for subnets in this VPC
	IPv6Prefix IPv6Net `json:"ipv6_prefix,omitempty" yaml:"ipv6_prefix,omitempty" tfsdk:"ipv6_prefix"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	// ProjectID is id for the project containing this VPC
	ProjectID string `json:"project_id,omitempty" yaml:"project_id,omitempty" tfsdk:"project_id"`
	// 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" tfsdk:"system_router_id"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"time_created,omitempty" yaml:"time_created,omitempty" tfsdk:"time_created"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified     *time.Time `json:"time_modified,omitempty" yaml:"time_modified,omitempty" tfsdk:"time_modified"`
	OrganizationName string     `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string     `json:"-" yaml:"-" tfsdk:"project"`
}

VPC is client view of a [`Vpc`]

type VPCCreate

type VPCCreate struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	// DnsName is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	DnsName Name `json:"dns_name,omitempty" yaml:"dns_name,omitempty" tfsdk:"dns_name"`
	// 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" tfsdk:"ipv6_prefix"`
	// 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 '-'.
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
}

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

type VPCResultsPage

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

VPCResultsPage is a single page of results

type VPCUpdate

type VPCUpdate struct {
	Description      string `json:"description,omitempty" yaml:"description,omitempty" tfsdk:"description"`
	DnsName          Name   `json:"dns_name,omitempty" yaml:"dns_name,omitempty" tfsdk:"dns_name"`
	Name             Name   `json:"name,omitempty" yaml:"name,omitempty" tfsdk:"name"`
	OrganizationName string `json:"-" yaml:"-" tfsdk:"organization"`
	ProjectName      string `json:"-" yaml:"-" tfsdk:"project"`
}

VPCUpdate is updateable properties of a [`Vpc`](crate::external_api::views::Vpc)

type VPCsService added in v0.0.7

type VPCsService service

VPCsService: A Virtual Private Cloud (VPC) is an isolated network environment that should probaby be moved into a more generic networking tag

func (*VPCsService) Create added in v0.0.7

func (s *VPCsService) Create(organizationName Name, projectName Name, j *VPCCreate) (*VPC, error)

Parameters:

  • `organizationName`: The organization's unique name.
  • `projectName`: The project's unique name within the organization.

func (*VPCsService) Delete added in v0.0.7

func (s *VPCsService) Delete(organizationName Name, projectName Name, vpcName Name) error

Delete: Delete a vpc from a project.

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

func (*VPCsService) Get added in v0.0.7

func (s *VPCsService) Get(organizationName Name, projectName Name, vpcName Name) (*VPC, error)

Get: Get a VPC in a project.

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

func (*VPCsService) List added in v0.0.7

func (s *VPCsService) List(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name) (*VPCResultsPage, error)

List: List VPCs in a project.

To iterate over all pages, use the `ListAllPages` 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 retreive the subsequent page
  • `projectName`: The project's unique name within the organization.
  • `sortBy`

func (*VPCsService) ListAllPages added in v0.0.7

func (s *VPCsService) ListAllPages(sortBy NameSortMode, organizationName Name, projectName Name) (*[]VPC, error)

ListAllPages: List VPCs in a project.

This method is a wrapper around the `List` 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 (*VPCsService) Put added in v0.0.7

func (s *VPCsService) Put(organizationName Name, projectName Name, vpcName Name, j *VPCUpdate) (*VPC, error)

Put: Update a VPC.

Parameters:

  • `organizationName`
  • `projectName`
  • `vpcName`

Jump to

Keyboard shortcuts

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