oxide

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 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 DefaultServerURL = "https://api.oxide.computer"

DefaultServerURL is the default server URL for the Oxide API.

View Source
const TokenEnvVar = "OXIDE_API_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.

View Source
var IDSortModes = []IDSortMode{
	IDSortModeIdAscending,
}

IDSortModes is the collection of all IDSortMode 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.

RouteTargetTypes is the collection of all RouteTargetType values.

RouterRouteKinds is the collection of all RouterRouteKind values.

SagaErrorInfoErrors is the collection of all SagaErrorInfoError values.

SagaStateStates is the collection of all SagaStateState values.

VPCFirewallRuleActions is the collection of all VPCFirewallRuleAction values.

VPCFirewallRuleDirections is the collection of all VPCFirewallRuleDirection values.

VPCFirewallRuleHostFilterTypes is the collection of all VPCFirewallRuleHostFilterType values.

VPCFirewallRuleProtocols is the collection of all VPCFirewallRuleProtocol values.

VPCFirewallRuleStatuses is the collection of all VPCFirewallRuleStatus values.

VPCFirewallRuleTargetTypes is the collection of all VPCFirewallRuleTargetType values.

VPCRouterKinds is the collection of all VPCRouterKind values.

Functions

This section is empty.

Types

type 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 {
	// contains filtered or unexported fields
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(token, userAgent 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_API_TOKEN`.

func (*Client) HardwareRacksGet

func (c *Client) HardwareRacksGet(limit int, pageToken string, sortBy IDSortMode) (*RackResultsPage, error)

HardwareRacksGet:

List racks in the system.

Parameters:

func (*Client) HardwareRacksGetRack

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

HardwareRacksGetRack:

Fetch information about a particular rack.

Parameters:

func (*Client) HardwareSledsGet

func (c *Client) HardwareSledsGet(limit int, pageToken string, sortBy IDSortMode) (*SledResultsPage, error)

HardwareSledsGet:

List sleds in the system.

Parameters:

func (*Client) HardwareSledsGetSled

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

HardwareSledsGetSled:

Fetch information about a sled in the system.

Parameters:

func (*Client) InstanceDisksAttach

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

InstanceDisksAttach:

Parameters:

func (*Client) InstanceDisksDetach

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

InstanceDisksDetach:

Parameters:

func (*Client) InstanceDisksGet

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

InstanceDisksGet:

List disks attached to this instance.

Parameters:

func (*Client) Logout

func (c *Client) Logout() error

Logout:

func (*Client) OrganizationProjectsDeleteProject

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

OrganizationProjectsDeleteProject:

Delete a specific project.

Parameters:

func (*Client) OrganizationProjectsGet

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

OrganizationProjectsGet:

List all projects.

Parameters:

func (*Client) OrganizationProjectsGetProject

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

OrganizationProjectsGetProject:

Fetch a specific project

Parameters:

func (*Client) OrganizationProjectsPost

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

OrganizationProjectsPost:

Create a new project.

Parameters:

func (*Client) OrganizationProjectsPutProject

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

OrganizationProjectsPutProject:

Update a specific project.

  • TODO-correctness: Is it valid for PUT to accept application/json that's a subset of what the resource actually represents? If not, is that a problem? (HTTP may require that this be idempotent.) If so, can we get around that having this be a slightly different content-type (e.g., "application/json-patch")? We should see what other APIs do.

Parameters:

func (*Client) OrganizationsDeleteOrganization

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

OrganizationsDeleteOrganization:

Delete a specific organization.

Parameters:

func (*Client) OrganizationsGet

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

OrganizationsGet:

List all organizations.

Parameters:

func (*Client) OrganizationsGetOrganization

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

OrganizationsGetOrganization:

Fetch a specific organization

Parameters:

func (*Client) OrganizationsPost

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

OrganizationsPost:

Create a new organization.

func (*Client) OrganizationsPutOrganization

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

OrganizationsPutOrganization:

Update a specific organization.

  • TODO-correctness: Is it valid for PUT to accept application/json that's a subset of what the resource actually represents? If not, is that a problem? (HTTP may require that this be idempotent.) If so, can we get around that having this be a slightly different content-type (e.g., "application/json-patch")? We should see what other APIs do.

Parameters:

func (*Client) ProjectDisksDeleteDisk

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

ProjectDisksDeleteDisk:

Delete a disk from a project.

Parameters:

func (*Client) ProjectDisksGet

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

ProjectDisksGet:

List disks in a project.

Parameters:

func (*Client) ProjectDisksGetDisk

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

ProjectDisksGetDisk:

Fetch a single disk in a project.

Parameters:

func (*Client) ProjectDisksPost

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

ProjectDisksPost:

Create a disk in a project.

  • TODO-correctness See note about instance create. This should be async.

Parameters:

func (*Client) ProjectInstancesDeleteInstance

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

ProjectInstancesDeleteInstance:

Delete an instance from a project.

Parameters:

func (*Client) ProjectInstancesGet

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

ProjectInstancesGet:

List instances in a project.

Parameters:

func (*Client) ProjectInstancesGetInstance

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

ProjectInstancesGetInstance:

Get an instance in a project.

Parameters:

func (*Client) ProjectInstancesInstanceReboot

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

ProjectInstancesInstanceReboot:

Reboot an instance.

Parameters:

func (*Client) ProjectInstancesInstanceStart

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

ProjectInstancesInstanceStart:

Boot an instance.

Parameters:

func (*Client) ProjectInstancesInstanceStop

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

ProjectInstancesInstanceStop:

Halt an instance.

Parameters:

func (*Client) ProjectInstancesPost

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

ProjectInstancesPost:

Create an instance in a project.

  • TODO-correctness This is supposed to be async. Is that right? We can create the instance immediately -- it's just not booted yet. Maybe the boot operation is what's a separate operation_id. What about the response code (201 Created vs 202 Accepted)? Is that orthogonal? Things can return a useful response, including an operation id, with either response code. Maybe a "reboot" operation would return a 202 Accepted because there's no actual resource created?

Parameters:

func (*Client) ProjectVpcsDeleteVpc

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

ProjectVpcsDeleteVpc:

Delete a vpc from a project.

Parameters:

func (*Client) ProjectVpcsGet

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

ProjectVpcsGet:

List VPCs in a project.

Parameters:

func (*Client) ProjectVpcsGetVpc

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

ProjectVpcsGetVpc:

Get a VPC in a project.

Parameters:

func (*Client) ProjectVpcsPost

func (c *Client) ProjectVpcsPost(organizationName Name, projectName Name, j *VPCCreate) (*VPC, error)

ProjectVpcsPost:

Create a VPC in a project.

Parameters:

func (*Client) ProjectVpcsPutVpc

func (c *Client) ProjectVpcsPutVpc(organizationName Name, projectName Name, vpcName Name, j *VPCUpdate) error

ProjectVpcsPutVpc:

Update a VPC.

Parameters:

func (*Client) RolesGet

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

RolesGet:

List the built-in roles

Parameters:

func (*Client) RolesGetRole

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

RolesGetRole:

Fetch a specific built-in role

Parameters:

func (*Client) RoutersRoutesDeleteRoute

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

RoutersRoutesDeleteRoute:

Delete a route from its router

Parameters:

func (*Client) RoutersRoutesGet

func (c *Client) RoutersRoutesGet(limit int, pageToken string, sortBy NameSortMode, organizationName Name, projectName Name, routerName Name, vpcName Name) (*RouterRouteResultsPage, error)

RoutersRoutesGet:

List a Router's routes

Parameters:

func (*Client) RoutersRoutesGetRoute

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

RoutersRoutesGetRoute:

Get a VPC Router route

Parameters:

func (*Client) RoutersRoutesPost

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

RoutersRoutesPost:

Create a VPC Router

Parameters:

func (*Client) RoutersRoutesPutRoute

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

RoutersRoutesPutRoute:

Update a Router route

Parameters:

func (*Client) SagasGet

func (c *Client) SagasGet(limit int, pageToken string, sortBy IDSortMode) (*SagaResultsPage, error)

SagasGet:

List all sagas (for debugging)

Parameters:

func (*Client) SagasGetSaga

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

SagasGetSaga:

Fetch information about a single saga (for debugging)

Parameters:

func (*Client) SessionMe

func (c *Client) SessionMe() (*SessionUser, error)

SessionMe:

Fetch the user associated with the current session

func (*Client) SpoofLogin

func (c *Client) SpoofLogin(j *LoginParams) error

SpoofLogin:

func (*Client) SubnetsIpsGet

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

SubnetsIpsGet:

List IP addresses on a VPC subnet.

Parameters:

func (*Client) TimeseriesSchemaGet

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

TimeseriesSchemaGet:

List all timeseries schema

Parameters:

func (*Client) UsersGet

func (c *Client) UsersGet(limit int, pageToken string, sortBy NameSortMode) (*UserResultsPage, error)

UsersGet:

List the built-in system users

Parameters:

func (*Client) UsersGetUser

func (c *Client) UsersGetUser(userName Name) (*User, error)

UsersGetUser:

Fetch a specific built-in system user

Parameters:

func (*Client) VpcFirewallRulesGet

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

VpcFirewallRulesGet:

List firewall rules for a VPC.

Parameters:

func (*Client) VpcFirewallRulesPut

func (c *Client) VpcFirewallRulesPut(organizationName Name, projectName Name, vpcName Name, j *VPCFirewallRuleUpdateParams) (*VPCFirewallRuleUpdateResult, error)

VpcFirewallRulesPut:

Replace the firewall rules for a VPC

Parameters:

func (*Client) VpcRoutersDeleteRouter

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

VpcRoutersDeleteRouter:

Delete a router from its VPC

Parameters:

func (*Client) VpcRoutersGet

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

VpcRoutersGet:

List VPC Custom and System Routers

Parameters:

func (*Client) VpcRoutersGetRouter

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

VpcRoutersGetRouter:

Get a VPC Router

Parameters:

func (*Client) VpcRoutersPost

func (c *Client) VpcRoutersPost(organizationName Name, projectName Name, vpcName Name, j *VPCRouterCreate) (*VPCRouter, error)

VpcRoutersPost:

Create a VPC Router

Parameters:

func (*Client) VpcRoutersPutRouter

func (c *Client) VpcRoutersPutRouter(organizationName Name, projectName Name, routerName Name, vpcName Name, j *VPCRouterUpdate) error

VpcRoutersPutRouter:

Update a VPC Router

Parameters:

func (*Client) VpcSubnetsDeleteSubnet

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

VpcSubnetsDeleteSubnet:

Delete a subnet from a VPC.

Parameters:

func (*Client) VpcSubnetsGet

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

VpcSubnetsGet:

List subnets in a VPC.

Parameters:

func (*Client) VpcSubnetsGetSubnet

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

VpcSubnetsGetSubnet:

Get subnet in a VPC.

Parameters:

func (*Client) VpcSubnetsPost

func (c *Client) VpcSubnetsPost(organizationName Name, projectName Name, vpcName Name, j *VPCSubnetCreate) (*VPCSubnet, error)

VpcSubnetsPost:

Create a subnet in a VPC.

Parameters:

func (*Client) VpcSubnetsPutSubnet

func (c *Client) VpcSubnetsPutSubnet(organizationName Name, projectName Name, subnetName Name, vpcName Name, j *VPCSubnetUpdate) error

VpcSubnetsPutSubnet:

Update a VPC Subnet.

Parameters:

func (*Client) WithBaseURL

func (c *Client) WithBaseURL(baseURL string) error

WithBaseURL overrides the baseURL.

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

Disk is client view of an [`Disk`]

type DiskCreate

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

DiskCreate is create-time parameters for a [`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"`
}

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

DiskResultsPage is a single page of results

type 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"`
	State    DiskStateState `json:"state,omitempty" yaml:"state,omitempty"`
}

DiskStateAttached is disk is attached to the given Instance

type DiskStateAttaching

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

DiskStateAttaching is disk is being attached to the given Instance

type DiskStateCreating

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

DiskStateCreating is disk is being initialized

type DiskStateDestroyed

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

DiskStateDestroyed is disk has been destroyed

type DiskStateDetached

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

DiskStateDetached is disk is ready but detached from any Instance

type DiskStateDetaching

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

DiskStateDetaching is disk is being detached from the given Instance

type DiskStateFaulted

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

DiskStateFaulted is disk is unavailable

type DiskStateState

type DiskStateState string

DiskStateState is the type definition for a DiskStateState.

const (
	// DiskStateStateAttached 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 FieldSchema

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

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

type FieldSource

type FieldSource string

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

const (
	// 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 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 IDSortMode

type IDSortMode string

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

Currently, we only support scanning in ascending order.

const (
	// IDSortModeIdAscending represents the IDSortMode `"id-ascending"`.
	IDSortModeIdAscending IDSortMode = "id-ascending"
)

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 IdentityMetadata

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

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

type Instance

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

Instance is client view of an [`Instance`]

type InstanceCpuCount

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"`
	Hostname    string `json:"hostname,omitempty" yaml:"hostname,omitempty"`
	// Memory is a count of bytes, typically used either for memory or storage capacity
	//
	// The maximum supported byte count is [`i64::MAX`].  This makes it somewhat inconvenient to define constructors: a u32 constructor can be infallible, but an i64 constructor can fail (if the value is negative) and a u64 constructor can fail (if the value is larger than i64::MAX).  We provide all of these for consumers' convenience.
	Memory ByteCount `json:"memory,omitempty" yaml:"memory,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Ncpus is the number of CPUs in an Instance
	Ncpus InstanceCpuCount `json:"ncpus,omitempty" yaml:"ncpus,omitempty"`
}

InstanceCreate is create-time parameters for an [`Instance`]

type InstanceResultsPage

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

InstanceResultsPage is a single page of results

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

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 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 {
	// Identity is common identifying metadata
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
	// InstanceId is the Instance to which the interface belongs.
	InstanceId string `json:"instance_id,omitempty" yaml:"instance_id,omitempty"`
	// Ip is the IP address assigned to this interface.
	Ip string `json:"ip,omitempty" yaml:"ip,omitempty"`
	// Mac is the MAC address assigned to this interface.
	Mac MacAddr `json:"mac,omitempty" yaml:"mac,omitempty"`
	// SubnetId is the subnet to which the interface belongs.
	SubnetId string `json:"subnet_id,omitempty" yaml:"subnet_id,omitempty"`
	// VPCId is the VPC to which the interface belongs.
	VPCId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

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

type NetworkInterfaceResultsPage

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

NetworkInterfaceResultsPage is a single page of results

type Organization

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

Organization is client view of an [`Organization`]

type OrganizationCreate

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

OrganizationCreate is create-time parameters for an [`Organization`]

type OrganizationResultsPage

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

OrganizationResultsPage is a single page of results

type OrganizationUpdate

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

OrganizationUpdate is updateable properties of an [`Organization`]

type Project

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

Project is client view of a [`Project`]

type ProjectCreate

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

ProjectCreate is create-time parameters for a [`Project`]

type ProjectResultsPage

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

ProjectResultsPage is a single page of results

type ProjectUpdate

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

ProjectUpdate is updateable properties of a [`Project`]

type Rack

type Rack struct {
	// Identity is identity-related metadata that's included in nearly all public API objects
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
}

Rack is client view of an [`Rack`]

type RackResultsPage

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

RackResultsPage is a single page of results

type Role

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

Role is client view of a [`Role`]

type RoleName

type RoleName string

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

type RoleResultsPage

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

RoleResultsPage is a single page of results

type RouteDestination

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

RouteDestination is a subset of [`NetworkTarget`], `RouteDestination` specifies the kind of network traffic that will be matched to be forwarded to the [`RouteTarget`].

type RouteDestinationIp

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

RouteDestinationIp is the type definition for a RouteDestinationIp.

type RouteDestinationSubnet

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

RouteDestinationSubnet is the type definition for a RouteDestinationSubnet.

type RouteDestinationType

type RouteDestinationType string

RouteDestinationType is the type definition for a RouteDestinationType.

const (
	// RouteDestinationTypeIp represents the RouteDestinationType `"ip"`.
	RouteDestinationTypeIp RouteDestinationType = "ip"
)
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"`
	// 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"`
}

RouteDestinationVPC is the type definition for a RouteDestinationVPC.

type RouteTarget

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

RouteTarget is a subset of [`NetworkTarget`], `RouteTarget` specifies all possible targets that a route can forward to.

type RouteTargetInstance

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

RouteTargetInstance is the type definition for a RouteTargetInstance.

type RouteTargetInternetGateway

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

RouteTargetInternetGateway is the type definition for a RouteTargetInternetGateway.

type RouteTargetIp

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

RouteTargetIp is the type definition for a RouteTargetIp.

type RouteTargetSubnet

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

RouteTargetSubnet is the type definition for a RouteTargetSubnet.

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 `"internetGateway"`.
	RouteTargetTypeInternetGateway RouteTargetType = "internetGateway"
)
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"`
	// 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"`
}

RouteTargetVPC is the type definition for a RouteTargetVPC.

type RouterRoute

type RouterRoute struct {
	// Destination is a subset of [`NetworkTarget`], `RouteDestination` specifies the kind of network traffic that will be matched to be forwarded to the [`RouteTarget`].
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Identity is common identifying metadata
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
	// Kind is describes the kind of router. Set at creation. `read-only`
	Kind RouterRouteKind `json:"kind,omitempty" yaml:"kind,omitempty"`
	// RouterId is the VPC Router to which the route belongs.
	RouterId string `json:"router_id,omitempty" yaml:"router_id,omitempty"`
	// Target is a subset of [`NetworkTarget`], `RouteTarget` specifies all possible targets that a route can forward to.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

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

type RouterRouteCreateParams

type RouterRouteCreateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is a subset of [`NetworkTarget`], `RouteDestination` specifies the kind of network traffic that will be matched to be forwarded to the [`RouteTarget`].
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	// Name is names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is a subset of [`NetworkTarget`], `RouteTarget` specifies all possible targets that a route can forward to.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

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

type RouterRouteKind

type RouterRouteKind string

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

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

const (
	// RouterRouteKindDefault represents the RouterRouteKind `"Default"`.
	RouterRouteKindDefault RouterRouteKind = "Default"
	// RouterRouteKindVpcSubnet represents the RouterRouteKind `"VpcSubnet"`.
	RouterRouteKindVpcSubnet RouterRouteKind = "VpcSubnet"
	// RouterRouteKindVpcPeering represents the RouterRouteKind `"VpcPeering"`.
	RouterRouteKindVpcPeering RouterRouteKind = "VpcPeering"
	// RouterRouteKindCustom represents the RouterRouteKind `"Custom"`.
	RouterRouteKindCustom RouterRouteKind = "Custom"
)

type RouterRouteResultsPage

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

RouterRouteResultsPage is a single page of results

type RouterRouteUpdateParams

type RouterRouteUpdateParams struct {
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// Destination is a subset of [`NetworkTarget`], `RouteDestination` specifies the kind of network traffic that will be matched to be forwarded to the [`RouteTarget`].
	Destination RouteDestination `json:"destination,omitempty" yaml:"destination,omitempty"`
	Name        Name             `json:"name,omitempty" yaml:"name,omitempty"`
	// Target is a subset of [`NetworkTarget`], `RouteTarget` specifies all possible targets that a route can forward to.
	Target RouteTarget `json:"target,omitempty" yaml:"target,omitempty"`
}

RouterRouteUpdateParams is updateable properties of a [`RouterRoute`]

type Saga

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

Saga is the type definition for a Saga.

type SagaErrorInfo

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

SagaErrorInfoActionFailed is the type definition for a SagaErrorInfoActionFailed.

type SagaErrorInfoDeserializeFailed

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

SagaErrorInfoDeserializeFailed is the type definition for a SagaErrorInfoDeserializeFailed.

type SagaErrorInfoError

type SagaErrorInfoError string

SagaErrorInfoError is the type definition for a SagaErrorInfoError.

const (
	// SagaErrorInfoErrorActionFailed represents the SagaErrorInfoError `"actionFailed"`.
	SagaErrorInfoErrorActionFailed SagaErrorInfoError = "actionFailed"
)
const (
	// SagaErrorInfoErrorDeserializeFailed represents the SagaErrorInfoError `"deserializeFailed"`.
	SagaErrorInfoErrorDeserializeFailed SagaErrorInfoError = "deserializeFailed"
)
const (
	// SagaErrorInfoErrorInjectedError represents the SagaErrorInfoError `"injectedError"`.
	SagaErrorInfoErrorInjectedError SagaErrorInfoError = "injectedError"
)
const (
	// SagaErrorInfoErrorSerializeFailed represents the SagaErrorInfoError `"serializeFailed"`.
	SagaErrorInfoErrorSerializeFailed SagaErrorInfoError = "serializeFailed"
)
const (
	// SagaErrorInfoErrorSubsagaCreateFailed represents the SagaErrorInfoError `"subsagaCreateFailed"`.
	SagaErrorInfoErrorSubsagaCreateFailed SagaErrorInfoError = "subsagaCreateFailed"
)

type SagaErrorInfoInjectedError

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

SagaErrorInfoInjectedError is the type definition for a SagaErrorInfoInjectedError.

type SagaErrorInfoSerializeFailed

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

SagaErrorInfoSerializeFailed is the type definition for a SagaErrorInfoSerializeFailed.

type SagaErrorInfoSubsagaCreateFailed

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

SagaErrorInfoSubsagaCreateFailed is the type definition for a SagaErrorInfoSubsagaCreateFailed.

type SagaResultsPage

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

SagaResultsPage is a single page of results

type SagaState

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

SagaStateFailed is the type definition for a SagaStateFailed.

type SagaStateRunning

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

SagaStateRunning is the type definition for a SagaStateRunning.

type SagaStateState

type SagaStateState string

SagaStateState is the type definition for a SagaStateState.

const (
	// SagaStateStateFailed 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"`
}

SagaStateSucceeded is the type definition for a SagaStateSucceeded.

type SessionUser

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

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"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name           Name   `json:"name,omitempty" yaml:"name,omitempty"`
	ServiceAddress string `json:"serviceAddress,omitempty" yaml:"serviceAddress,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"timeCreated,omitempty" yaml:"timeCreated,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"timeModified,omitempty" yaml:"timeModified,omitempty"`
}

Sled is client view of an [`Sled`]

type SledResultsPage

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

SledResultsPage is a single page of results

type TimeseriesName

type TimeseriesName string

TimeseriesName is names are constructed by concatenating the target and metric names with ':'. Target and metric names must be lowercase alphanumeric characters with '_' separating words.

type TimeseriesSchema

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

TimeseriesSchema is the schema for a timeseries.

This includes the name of the timeseries, as well as the datum type of its metric and the schema for each field.

type TimeseriesSchemaResultsPage

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

TimeseriesSchemaResultsPage is a single page of results

type User

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

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

UserResultsPage is a single page of results

type VPC

type VPC struct {
	// Description is human-readable free-form text about a resource
	Description string `json:"description,omitempty" yaml:"description,omitempty"`
	// DnsName is the name used for the VPC in DNS.
	DnsName Name `json:"dnsName,omitempty" yaml:"dnsName,omitempty"`
	// ID is unique, immutable, system-controlled identifier for each resource
	ID string `json:"id,omitempty" yaml:"id,omitempty"`
	// Name is unique, mutable, user-controlled identifier for each resource
	Name Name `json:"name,omitempty" yaml:"name,omitempty"`
	// ProjectId is id for the project containing this VPC
	ProjectId string `json:"projectId,omitempty" yaml:"projectId,omitempty"`
	// SystemRouterId is id for the system router where subnet default routes are registered
	SystemRouterId string `json:"systemRouterId,omitempty" yaml:"systemRouterId,omitempty"`
	// TimeCreated is timestamp when this resource was created
	TimeCreated *time.Time `json:"timeCreated,omitempty" yaml:"timeCreated,omitempty"`
	// TimeModified is timestamp when this resource was last modified
	TimeModified *time.Time `json:"timeModified,omitempty" yaml:"timeModified,omitempty"`
}

VPC is client view of a [`Vpc`]

type VPCCreate

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

VPCCreate is create-time parameters for a [`Vpc`]

type VPCFirewallRule

type VPCFirewallRule struct {
	// Action is whether traffic matching the rule should be allowed or dropped
	Action VPCFirewallRuleAction `json:"action,omitempty" yaml:"action,omitempty"`
	// Direction is whether this rule is for incoming or outgoing traffic
	Direction VPCFirewallRuleDirection `json:"direction,omitempty" yaml:"direction,omitempty"`
	// Filters is reductions on the scope of the rule
	Filters VPCFirewallRuleFilter `json:"filters,omitempty" yaml:"filters,omitempty"`
	// Identity is common identifying metadata
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
	// Priority is the relative priority of this rule
	Priority int `json:"priority,omitempty" yaml:"priority,omitempty"`
	// Status is whether this rule is in effect
	Status VPCFirewallRuleStatus `json:"status,omitempty" yaml:"status,omitempty"`
	// Targets is list of sets of instances that the rule applies to
	Targets []VPCFirewallRuleTarget `json:"targets,omitempty" yaml:"targets,omitempty"`
}

VPCFirewallRule is a single rule in a VPC firewall

type VPCFirewallRuleAction

type VPCFirewallRuleAction string

VPCFirewallRuleAction is the type definition for a VPCFirewallRuleAction.

const (
	// VPCFirewallRuleActionAllow represents the VPCFirewallRuleAction `"allow"`.
	VPCFirewallRuleActionAllow VPCFirewallRuleAction = "allow"
	// VPCFirewallRuleActionDeny represents the VPCFirewallRuleAction `"deny"`.
	VPCFirewallRuleActionDeny VPCFirewallRuleAction = "deny"
)

type VPCFirewallRuleDirection

type VPCFirewallRuleDirection string

VPCFirewallRuleDirection is the type definition for a VPCFirewallRuleDirection.

const (
	// VPCFirewallRuleDirectionInbound represents the VPCFirewallRuleDirection `"inbound"`.
	VPCFirewallRuleDirectionInbound VPCFirewallRuleDirection = "inbound"
	// VPCFirewallRuleDirectionOutbound represents the VPCFirewallRuleDirection `"outbound"`.
	VPCFirewallRuleDirectionOutbound VPCFirewallRuleDirection = "outbound"
)

type VPCFirewallRuleFilter

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

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

type VPCFirewallRuleHostFilter

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

VPCFirewallRuleHostFilter is a subset of [`NetworkTarget`], `VpcFirewallRuleHostFilter` specifies all possible targets that a route can forward to.

type VPCFirewallRuleHostFilterInstance

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

VPCFirewallRuleHostFilterInstance is the type definition for a VPCFirewallRuleHostFilterInstance.

type VPCFirewallRuleHostFilterInternetGateway

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

VPCFirewallRuleHostFilterInternetGateway is the type definition for a VPCFirewallRuleHostFilterInternetGateway.

type VPCFirewallRuleHostFilterIp

type VPCFirewallRuleHostFilterIp struct {
	Type  VPCFirewallRuleHostFilterType `json:"type,omitempty" yaml:"type,omitempty"`
	Value string                        `json:"value,omitempty" yaml:"value,omitempty"`
}

VPCFirewallRuleHostFilterIp is the type definition for a VPCFirewallRuleHostFilterIp.

type VPCFirewallRuleHostFilterSubnet

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

VPCFirewallRuleHostFilterSubnet is the type definition for a VPCFirewallRuleHostFilterSubnet.

type VPCFirewallRuleHostFilterType

type VPCFirewallRuleHostFilterType string

VPCFirewallRuleHostFilterType is the type definition for a VPCFirewallRuleHostFilterType.

const (
	// VPCFirewallRuleHostFilterTypeInstance represents the VPCFirewallRuleHostFilterType `"instance"`.
	VPCFirewallRuleHostFilterTypeInstance VPCFirewallRuleHostFilterType = "instance"
)
const (
	// VPCFirewallRuleHostFilterTypeInternetGateway represents the VPCFirewallRuleHostFilterType `"internetGateway"`.
	VPCFirewallRuleHostFilterTypeInternetGateway VPCFirewallRuleHostFilterType = "internetGateway"
)
const (
	// VPCFirewallRuleHostFilterTypeIp represents the VPCFirewallRuleHostFilterType `"ip"`.
	VPCFirewallRuleHostFilterTypeIp VPCFirewallRuleHostFilterType = "ip"
)
const (
	// VPCFirewallRuleHostFilterTypeSubnet represents the VPCFirewallRuleHostFilterType `"subnet"`.
	VPCFirewallRuleHostFilterTypeSubnet VPCFirewallRuleHostFilterType = "subnet"
)
const (
	// VPCFirewallRuleHostFilterTypeVpc represents the VPCFirewallRuleHostFilterType `"vpc"`.
	VPCFirewallRuleHostFilterTypeVpc VPCFirewallRuleHostFilterType = "vpc"
)

type VPCFirewallRuleHostFilterVPC

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

VPCFirewallRuleHostFilterVPC is the type definition for a VPCFirewallRuleHostFilterVPC.

type VPCFirewallRuleProtocol

type VPCFirewallRuleProtocol string

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

const (
	// VPCFirewallRuleProtocolTCP represents the VPCFirewallRuleProtocol `"TCP"`.
	VPCFirewallRuleProtocolTCP VPCFirewallRuleProtocol = "TCP"
	// VPCFirewallRuleProtocolUDP represents the VPCFirewallRuleProtocol `"UDP"`.
	VPCFirewallRuleProtocolUDP VPCFirewallRuleProtocol = "UDP"
	// VPCFirewallRuleProtocolICMP represents the VPCFirewallRuleProtocol `"ICMP"`.
	VPCFirewallRuleProtocolICMP VPCFirewallRuleProtocol = "ICMP"
)

type VPCFirewallRuleResultsPage

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

VPCFirewallRuleResultsPage is a single page of results

type VPCFirewallRuleStatus

type VPCFirewallRuleStatus string

VPCFirewallRuleStatus is the type definition for a VPCFirewallRuleStatus.

const (
	// VPCFirewallRuleStatusDisabled represents the VPCFirewallRuleStatus `"disabled"`.
	VPCFirewallRuleStatusDisabled VPCFirewallRuleStatus = "disabled"
	// VPCFirewallRuleStatusEnabled represents the VPCFirewallRuleStatus `"enabled"`.
	VPCFirewallRuleStatusEnabled VPCFirewallRuleStatus = "enabled"
)

type VPCFirewallRuleTarget

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

VPCFirewallRuleTarget is a subset of [`NetworkTarget`], `VpcFirewallRuleTarget` specifies all possible targets that a firewall rule can be attached to.

type VPCFirewallRuleTargetInstance

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

VPCFirewallRuleTargetInstance is the type definition for a VPCFirewallRuleTargetInstance.

type VPCFirewallRuleTargetSubnet

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

VPCFirewallRuleTargetSubnet is the type definition for a VPCFirewallRuleTargetSubnet.

type VPCFirewallRuleTargetType

type VPCFirewallRuleTargetType string

VPCFirewallRuleTargetType is the type definition for a VPCFirewallRuleTargetType.

const (
	// VPCFirewallRuleTargetTypeInstance represents the VPCFirewallRuleTargetType `"instance"`.
	VPCFirewallRuleTargetTypeInstance VPCFirewallRuleTargetType = "instance"
)
const (
	// VPCFirewallRuleTargetTypeSubnet represents the VPCFirewallRuleTargetType `"subnet"`.
	VPCFirewallRuleTargetTypeSubnet VPCFirewallRuleTargetType = "subnet"
)
const (
	// VPCFirewallRuleTargetTypeVpc represents the VPCFirewallRuleTargetType `"vpc"`.
	VPCFirewallRuleTargetTypeVpc VPCFirewallRuleTargetType = "vpc"
)

type VPCFirewallRuleTargetVPC

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

VPCFirewallRuleTargetVPC is the type definition for a VPCFirewallRuleTargetVPC.

type VPCFirewallRuleUpdate

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

VPCFirewallRuleUpdate is a single rule in a VPC firewall

type VPCFirewallRuleUpdateParams

type VPCFirewallRuleUpdateParams struct {
}

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

type VPCFirewallRuleUpdateResult

type VPCFirewallRuleUpdateResult struct {
}

VPCFirewallRuleUpdateResult is response to an update replacing [`Vpc`]'s firewall

type VPCResultsPage

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

VPCResultsPage is a single page of results

type VPCRouter

type VPCRouter struct {
	// Identity is common identifying metadata
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
	Kind     VPCRouterKind    `json:"kind,omitempty" yaml:"kind,omitempty"`
	// VPCId is the VPC to which the router belongs.
	VPCId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

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

type VPCRouterCreate

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

VPCRouterCreate is create-time parameters for a [`VpcRouter`]

type VPCRouterKind

type VPCRouterKind string

VPCRouterKind is the type definition for a VPCRouterKind.

const (
	// VPCRouterKindSystem represents the VPCRouterKind `"system"`.
	VPCRouterKindSystem VPCRouterKind = "system"
	// VPCRouterKindCustom represents the VPCRouterKind `"custom"`.
	VPCRouterKindCustom VPCRouterKind = "custom"
)

type VPCRouterResultsPage

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

VPCRouterResultsPage is a single page of results

type VPCRouterUpdate

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

VPCRouterUpdate is updateable properties of a [`VpcRouter`]

type VPCSubnet

type VPCSubnet struct {
	// Identity is common identifying metadata
	Identity IdentityMetadata `json:"identity,omitempty" yaml:"identity,omitempty"`
	// IPv4Block is the IPv4 subnet CIDR block.
	IPv4Block IPv4Net `json:"ipv4_block,omitempty" yaml:"ipv4_block,omitempty"`
	// IPv6Block is the IPv6 subnet CIDR block.
	IPv6Block IPv6Net `json:"ipv6_block,omitempty" yaml:"ipv6_block,omitempty"`
	// VPCId is the VPC to which the subnet belongs.
	VPCId string `json:"vpc_id,omitempty" yaml:"vpc_id,omitempty"`
}

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

type VPCSubnetCreate

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

VPCSubnetCreate is create-time parameters for a [`VpcSubnet`]

type VPCSubnetResultsPage

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

VPCSubnetResultsPage is a single page of results

type VPCSubnetUpdate

type VPCSubnetUpdate struct {
	Description string  `json:"description,omitempty" yaml:"description,omitempty"`
	IPv4Block   IPv4Net `json:"ipv4Block,omitempty" yaml:"ipv4Block,omitempty"`
	IPv6Block   IPv6Net `json:"ipv6Block,omitempty" yaml:"ipv6Block,omitempty"`
	Name        Name    `json:"name,omitempty" yaml:"name,omitempty"`
}

VPCSubnetUpdate is updateable properties of a [`VpcSubnet`]

type VPCUpdate

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

VPCUpdate is updateable properties of a [`Vpc`]

Jump to

Keyboard shortcuts

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