Documentation
¶
Overview ¶
Package packngo implements the Equinix Metal API documented at https://metal.equinix.com/developers/api.
Index ¶
- Constants
- Variables
- func StreamToString(stream io.Reader) (string, error)
- func Stringify(message interface{}) string
- func ValidateUUID(uuid string) error
- type APIKey
- type APIKeyCreateRequest
- type APIKeyService
- type APIKeyServiceOp
- func (s *APIKeyServiceOp) Create(createRequest *APIKeyCreateRequest) (*APIKey, *Response, error)
- func (s *APIKeyServiceOp) Delete(apiKeyID string) (*Response, error)
- func (s *APIKeyServiceOp) ProjectGet(projectID, apiKeyID string, opts *GetOptions) (*APIKey, error)
- func (s *APIKeyServiceOp) ProjectList(projectID string, opts *ListOptions) ([]APIKey, *Response, error)
- func (s *APIKeyServiceOp) UserGet(apiKeyID string, opts *GetOptions) (*APIKey, error)
- func (s *APIKeyServiceOp) UserList(opts *ListOptions) ([]APIKey, *Response, error)
- type Address
- type AddressRequest
- type AddressStruct
- type AnnualReservationPricing
- type AvailableRequest
- type AvailableResponse
- type BGPConfig
- type BGPConfigService
- type BGPConfigServiceOp
- type BGPDiscoverResponse
- type BGPNeighbor
- type BGPRoute
- type BGPSession
- type BGPSessionService
- type BGPSessionServiceOp
- func (s *BGPSessionServiceOp) Create(deviceID string, request CreateBGPSessionRequest) (*BGPSession, *Response, error)
- func (s *BGPSessionServiceOp) Delete(id string) (*Response, error)
- func (s *BGPSessionServiceOp) Get(id string, opts *GetOptions) (session *BGPSession, response *Response, err error)
- func (s *BGPSessionServiceOp) Update(sessionID string, request UpdateBGPSessionRequest) (*BGPSession, *Response, error)
- type BackToL3Request
- type BandwidthComponent
- type BandwidthIO
- type BandwidthOpts
- type BandwidthTags
- type BandwidthTarget
- type Batch
- type BatchCreateDevice
- type BatchCreateRequest
- type BatchService
- type BatchServiceOp
- func (s *BatchServiceOp) Create(projectID string, request *BatchCreateRequest) ([]Batch, *Response, error)
- func (s *BatchServiceOp) Delete(id string, removeDevices bool) (*Response, error)
- func (s *BatchServiceOp) Get(batchID string, opts *GetOptions) (*Batch, *Response, error)
- func (s *BatchServiceOp) List(projectID string, opts *ListOptions) (batches []Batch, resp *Response, err error)
- type BatchedVLANAssignment
- type BillingAddress
- type BondData
- type BondRequest
- type CPR
- type CapacityInput
- type CapacityList
- type CapacityPerBaremetal
- type CapacityReport
- type CapacityService
- type CapacityServiceOp
- func (s *CapacityServiceOp) Check(input *CapacityInput) (capInput *CapacityInput, resp *Response, err error)
- func (s *CapacityServiceOp) CheckMetros(input *CapacityInput) (capInput *CapacityInput, resp *Response, err error)
- func (s *CapacityServiceOp) List() (*CapacityReport, *Response, error)
- func (s *CapacityServiceOp) ListMetros() (*CapacityReport, *Response, error)
- type Client
- func (c *Client) Do(req *http.Request, v interface{}) (*Response, error)
- func (c *Client) DoRequest(method, path string, body, v interface{}) (*Response, error)
- func (c *Client) DoRequestWithHeader(method string, headers map[string]string, path string, body, v interface{}) (*Response, error)
- func (c *Client) NewRequest(method, path string, body interface{}) (*http.Request, error)
- type ClientOpt
- type Connection
- type ConnectionCreateRequest
- type ConnectionMode
- type ConnectionPort
- type ConnectionPortRole
- type ConnectionRedundancy
- type ConnectionService
- type ConnectionServiceOp
- func (s *ConnectionServiceOp) Delete(id string, wait bool) (*Response, error)
- func (s *ConnectionServiceOp) Events(id string, opts *GetOptions) ([]Event, *Response, error)
- func (s *ConnectionServiceOp) Get(id string, opts *GetOptions) (*Connection, *Response, error)
- func (s *ConnectionServiceOp) OrganizationCreate(id string, createRequest *ConnectionCreateRequest) (*Connection, *Response, error)
- func (s *ConnectionServiceOp) OrganizationList(id string, opts *GetOptions) ([]Connection, *Response, error)
- func (s *ConnectionServiceOp) Port(connID, portID string, opts *GetOptions) (*ConnectionPort, *Response, error)
- func (s *ConnectionServiceOp) PortEvents(connID, portID string, opts *GetOptions) ([]Event, *Response, error)
- func (s *ConnectionServiceOp) Ports(connID string, opts *GetOptions) ([]ConnectionPort, *Response, error)
- func (s *ConnectionServiceOp) ProjectCreate(id string, createRequest *ConnectionCreateRequest) (*Connection, *Response, error)
- func (s *ConnectionServiceOp) ProjectList(id string, opts *GetOptions) ([]Connection, *Response, error)
- func (s *ConnectionServiceOp) Update(id string, updateRequest *ConnectionUpdateRequest, opts *GetOptions) (*Connection, *Response, error)
- func (s *ConnectionServiceOp) VirtualCircuits(connID, portID string, opts *GetOptions) (vcs []VirtualCircuit, resp *Response, err error)
- type ConnectionType
- type ConnectionUpdateRequest
- type Coordinates
- type Cpus
- type CreateBGPConfigRequest
- type CreateBGPSessionRequest
- type Datapoint
- type Device
- func (d *Device) GetBondPorts() map[string]*Port
- func (d *Device) GetNetworkInfo() NetworkInfo
- func (d *Device) GetNetworkType() string
- func (d *Device) GetPhysicalPorts() map[string]*Port
- func (d *Device) GetPortByName(name string) (*Port, error)
- func (d *Device) GetPortsInBond(name string) map[string]*Port
- func (d *Device) HasManagementIPs() bool
- func (d *Device) NumOfBonds() int
- func (d Device) String() string
- type DeviceActionRequest
- type DeviceCreateRequest
- type DeviceDeleteRequest
- type DeviceIPService
- type DeviceIPServiceOp
- func (i *DeviceIPServiceOp) Assign(deviceID string, assignRequest *AddressStruct) (*IPAddressAssignment, *Response, error)
- func (i *DeviceIPServiceOp) Get(assignmentID string, opts *GetOptions) (*IPAddressAssignment, *Response, error)
- func (i *DeviceIPServiceOp) List(deviceID string, opts *ListOptions) ([]IPAddressAssignment, *Response, error)
- func (i *DeviceIPServiceOp) Unassign(assignmentID string) (*Response, error)
- type DevicePortServicedeprecated
- type DevicePortServiceOpdeprecated
- func (i *DevicePortServiceOp) Assign(par *PortAssignRequest) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) AssignNative(par *PortAssignRequest) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) Bond(p *Port, bulk_enable bool) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) ConvertDevice(d *Device, targetType string) errordeprecated
- func (i *DevicePortServiceOp) DeviceNetworkType(deviceID string) (string, error)deprecated
- func (i *DevicePortServiceOp) DeviceToNetworkType(deviceID string, targetType string) (*Device, error)deprecated
- func (i *DevicePortServiceOp) Disbond(p *Port, bulk_disable bool) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) GetAllEthPorts(d *Device) (map[string]*Port, error)deprecated
- func (i *DevicePortServiceOp) GetOddEthPorts(d *Device) (map[string]*Port, error)deprecated
- func (i *DevicePortServiceOp) GetPortByName(deviceID, name string) (*Port, error)deprecated
- func (i *DevicePortServiceOp) PortToLayerThree(deviceID, portName string) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) PortToLayerTwo(deviceID, portName string) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) Unassign(par *PortAssignRequest) (*Port, *Response, error)deprecated
- func (i *DevicePortServiceOp) UnassignNative(portID string) (*Port, *Response, error)deprecated
- type DeviceReinstallFields
- type DeviceReinstallRequest
- type DeviceService
- type DeviceServiceOp
- func (s *DeviceServiceOp) Create(createRequest *DeviceCreateRequest) (*Device, *Response, error)
- func (s *DeviceServiceOp) Delete(deviceID string, force bool) (*Response, error)
- func (s *DeviceServiceOp) Get(deviceID string, opts *GetOptions) (*Device, *Response, error)
- func (d *DeviceServiceOp) GetBandwidth(deviceID string, opts *BandwidthOpts) (*BandwidthIO, *Response, error)
- func (s *DeviceServiceOp) List(projectID string, opts *ListOptions) (devices []Device, resp *Response, err error)
- func (s *DeviceServiceOp) ListBGPNeighbors(deviceID string, opts *ListOptions) ([]BGPNeighbor, *Response, error)
- func (s *DeviceServiceOp) ListBGPSessions(deviceID string, opts *ListOptions) (bgpSessions []BGPSession, resp *Response, err error)
- func (s *DeviceServiceOp) ListEvents(deviceID string, opts *ListOptions) ([]Event, *Response, error)
- func (s *DeviceServiceOp) Lock(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) PowerOff(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) PowerOn(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) Reboot(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) Reinstall(deviceID string, fields *DeviceReinstallFields) (*Response, error)
- func (s *DeviceServiceOp) Rescue(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) Unlock(deviceID string) (*Response, error)
- func (s *DeviceServiceOp) Update(deviceID string, updateRequest *DeviceUpdateRequest) (*Device, *Response, error)
- type DeviceUpdateRequest
- type DisbondRequest
- type Drives
- type Email
- type EmailRequest
- type EmailService
- type EmailServiceOp
- func (s *EmailServiceOp) Create(request *EmailRequest) (*Email, *Response, error)
- func (s *EmailServiceOp) Delete(emailID string) (*Response, error)
- func (s *EmailServiceOp) Get(emailID string, opts *GetOptions) (*Email, *Response, error)
- func (s *EmailServiceOp) Update(emailID string, request *EmailRequest) (*Email, *Response, error)
- type ErrorResponse
- type Event
- type EventService
- type EventServiceOp
- type FabricServiceToken
- type FabricServiceTokenServiceOp
- type FabricServiceTokenType
- type Facility
- type FacilityService
- type FacilityServiceOp
- type Features
- type GetOptions
- func (g *GetOptions) AddParam(key, value string) *GetOptions
- func (g *GetOptions) CopyOrNew() *GetOptions
- func (g *GetOptions) Encode() string
- func (g *GetOptions) Excluding(refs ...string) *GetOptions
- func (g *GetOptions) Filter(key, value string) *GetOptions
- func (g *GetOptions) GetOptions() *GetOptions
- func (g *GetOptions) GetPage() int
- func (g *GetOptions) Including(refs ...string) *GetOptions
- func (g *GetOptions) WithQuery(apiPath string) string
- type HardwareReservation
- type HardwareReservationService
- type HardwareReservationServiceOp
- func (s *HardwareReservationServiceOp) Get(hardwareReservationdID string, opts *GetOptions) (*HardwareReservation, *Response, error)
- func (s *HardwareReservationServiceOp) List(projectID string, opts *ListOptions) (reservations []HardwareReservation, resp *Response, err error)
- func (s *HardwareReservationServiceOp) Move(hardwareReservationdID, projectID string) (*HardwareReservation, *Response, error)
- type Href
- type IPAddressAssignment
- type IPAddressCreateRequest
- type IPAddressReservation
- type IPAddressUpdateRequest
- type IPReservationCreateRequest
- type IPReservationRequest
- type IPReservationState
- type IPReservationType
- type Invitation
- type InvitationCreateRequest
- type InvitationService
- type InvitationServiceOp
- func (s *InvitationServiceOp) Accept(id string, updateRequest *InvitationUpdateRequest) (*Invitation, *Response, error)
- func (s *InvitationServiceOp) Create(organizationID string, createRequest *InvitationCreateRequest, ...) (*Invitation, *Response, error)
- func (s *InvitationServiceOp) Delete(id string) (*Response, error)
- func (s *InvitationServiceOp) Get(invitationID string, opts *GetOptions) (*Invitation, *Response, error)
- func (s *InvitationServiceOp) List(organizationID string, opts *ListOptions) (invitations []Invitation, resp *Response, err error)
- func (s *InvitationServiceOp) Resend(id string) (*Invitation, *Response, error)
- type InvitationUpdateRequest
- type IpAddressCommon
- type ListOptions
- type ListSortDirection
- type Member
- type MemberService
- type MemberServiceOp
- type Memory
- type MetalGateway
- type MetalGatewayCreateRequest
- type MetalGatewayLite
- type MetalGatewayService
- type MetalGatewayServiceOp
- func (s *MetalGatewayServiceOp) Create(projectID string, input *MetalGatewayCreateRequest) (*MetalGateway, *Response, error)
- func (s *MetalGatewayServiceOp) Delete(metalGatewayID string) (*Response, error)
- func (s *MetalGatewayServiceOp) Get(metalGatewayID string, opts *GetOptions) (*MetalGateway, *Response, error)
- func (s *MetalGatewayServiceOp) List(projectID string, opts *ListOptions) (metalGateways []MetalGateway, resp *Response, err error)
- type MetalGatewayState
- type Metro
- type MetroPricing
- type MetroService
- type MetroServiceOp
- type NetworkInfo
- type Nics
- type Notification
- type NotificationService
- type NotificationServiceOp
- func (s *NotificationServiceOp) Get(notificationID string, opts *GetOptions) (*Notification, *Response, error)
- func (s *NotificationServiceOp) List(listOpt *ListOptions) ([]Notification, *Response, error)
- func (s *NotificationServiceOp) MarkAsRead(notificationID string) (*Notification, *Response, error)
- type OS
- type OSService
- type OSServiceOp
- type OptionsGetter
- type Organization
- type OrganizationCreateRequest
- type OrganizationService
- type OrganizationServiceOp
- func (s *OrganizationServiceOp) Create(createRequest *OrganizationCreateRequest) (*Organization, *Response, error)
- func (s *OrganizationServiceOp) Delete(organizationID string) (*Response, error)
- func (s *OrganizationServiceOp) Get(organizationID string, opts *GetOptions) (*Organization, *Response, error)
- func (s *OrganizationServiceOp) List(opts *ListOptions) (orgs []Organization, resp *Response, err error)
- func (s *OrganizationServiceOp) ListEvents(organizationID string, listOpt *ListOptions) ([]Event, *Response, error)
- func (s *OrganizationServiceOp) ListPaymentMethods(organizationID string) ([]PaymentMethod, *Response, error)
- func (s *OrganizationServiceOp) Update(id string, updateRequest *OrganizationUpdateRequest) (*Organization, *Response, error)
- type OrganizationUpdateRequest
- type ParentBlock
- type PaymentMethod
- type PaymentMethodCreateRequest
- type PaymentMethodService
- type PaymentMethodServiceOp
- type PaymentMethodUpdateRequest
- type Plan
- type PlanService
- type PlanServiceOp
- type Port
- type PortAssignRequest
- type PortData
- type PortService
- type PortServiceOp
- func (i *PortServiceOp) Assign(portID, vlanID string) (*Port, *Response, error)
- func (i *PortServiceOp) AssignNative(portID, vlanID string) (*Port, *Response, error)
- func (i *PortServiceOp) Bond(portID string, bulkEnable bool) (*Port, *Response, error)
- func (i *PortServiceOp) ConvertToLayerThree(portID string, ips []AddressRequest) (*Port, *Response, error)
- func (i *PortServiceOp) ConvertToLayerTwo(portID string) (*Port, *Response, error)
- func (i *PortServiceOp) Disbond(portID string, bulkEnable bool) (*Port, *Response, error)
- func (s *PortServiceOp) Get(portID string, opts *GetOptions) (*Port, *Response, error)
- func (i *PortServiceOp) Unassign(portID, vlanID string) (*Port, *Response, error)
- func (i *PortServiceOp) UnassignNative(portID string) (*Port, *Response, error)
- type PriceMap
- type Pricing
- type Project
- type ProjectCreateRequest
- type ProjectIPService
- type ProjectIPServiceOp
- func (i *ProjectIPServiceOp) AvailableAddresses(ipReservationID string, r *AvailableRequest) ([]string, *Response, error)
- func (i *ProjectIPServiceOp) Create(projectID string, ipReservationReq *IPReservationCreateRequest) (*IPAddressReservation, *Response, error)
- func (i *ProjectIPServiceOp) Delete(ipReservationID string) (*Response, error)
- func (i *ProjectIPServiceOp) Get(reservationID string, opts *GetOptions) (*IPAddressReservation, *Response, error)
- func (i *ProjectIPServiceOp) List(projectID string, opts *ListOptions) ([]IPAddressReservation, *Response, error)
- func (i *ProjectIPServiceOp) Remove(ipReservationID string) (*Response, error)
- func (i *ProjectIPServiceOp) Request(projectID string, ipReservationReq *IPReservationRequest) (*IPAddressReservation, *Response, error)deprecated
- func (i *ProjectIPServiceOp) Update(reservationID string, updateRequest *IPAddressUpdateRequest, opts *GetOptions) (*IPAddressReservation, *Response, error)
- type ProjectService
- type ProjectServiceOp
- func (s *ProjectServiceOp) Create(createRequest *ProjectCreateRequest) (*Project, *Response, error)
- func (s *ProjectServiceOp) Delete(projectID string) (*Response, error)
- func (p *ProjectServiceOp) DiscoverBGPSessions(projectID string, opts *GetOptions) (*BGPDiscoverResponse, *Response, error)
- func (s *ProjectServiceOp) Get(projectID string, opts *GetOptions) (*Project, *Response, error)
- func (s *ProjectServiceOp) List(opts *ListOptions) (projects []Project, resp *Response, err error)
- func (s *ProjectServiceOp) ListBGPSessions(projectID string, opts *ListOptions) (bgpSessions []BGPSession, resp *Response, err error)
- func (s *ProjectServiceOp) ListEvents(projectID string, listOpt *ListOptions) ([]Event, *Response, error)
- func (s *ProjectServiceOp) ListSSHKeys(projectID string, opts *SearchOptions) (sshKeys []SSHKey, resp *Response, err error)
- func (s *ProjectServiceOp) Update(id string, updateRequest *ProjectUpdateRequest) (*Project, *Response, error)
- type ProjectUpdateRequest
- type ProjectVirtualNetworkService
- type ProjectVirtualNetworkServiceOp
- func (i *ProjectVirtualNetworkServiceOp) Create(input *VirtualNetworkCreateRequest) (*VirtualNetwork, *Response, error)
- func (i *ProjectVirtualNetworkServiceOp) Delete(virtualNetworkID string) (*Response, error)
- func (i *ProjectVirtualNetworkServiceOp) Get(vlanID string, opts *GetOptions) (*VirtualNetwork, *Response, error)
- func (i *ProjectVirtualNetworkServiceOp) List(projectID string, opts *ListOptions) (*VirtualNetworkListResponse, *Response, error)
- type QueryAppender
- type Rate
- type ReservationPricing
- type Response
- type SSHKey
- type SSHKeyCreateRequest
- type SSHKeyService
- type SSHKeyServiceOp
- func (s *SSHKeyServiceOp) Create(createRequest *SSHKeyCreateRequest) (*SSHKey, *Response, error)
- func (s *SSHKeyServiceOp) Delete(sshKeyID string) (*Response, error)
- func (s *SSHKeyServiceOp) Get(sshKeyID string, opts *GetOptions) (*SSHKey, *Response, error)
- func (s *SSHKeyServiceOp) List() ([]SSHKey, *Response, error)
- func (s *SSHKeyServiceOp) ProjectList(projectID string) ([]SSHKey, *Response, error)
- func (s *SSHKeyServiceOp) Update(id string, updateRequest *SSHKeyUpdateRequest) (*SSHKey, *Response, error)
- type SSHKeyUpdateRequest
- type SearchOptions
- type ServerInfo
- type SnapshotPolicy
- type SocialAccounts
- type Specs
- type SpotMarketRequest
- type SpotMarketRequestCreateRequest
- type SpotMarketRequestInstanceParameters
- type SpotMarketRequestService
- type SpotMarketRequestServiceOp
- func (s *SpotMarketRequestServiceOp) Create(cr *SpotMarketRequestCreateRequest, pID string) (*SpotMarketRequest, *Response, error)
- func (s *SpotMarketRequestServiceOp) Delete(id string, forceDelete bool) (*Response, error)
- func (s *SpotMarketRequestServiceOp) Get(id string, opts *GetOptions) (*SpotMarketRequest, *Response, error)
- func (s *SpotMarketRequestServiceOp) List(pID string, opts *ListOptions) ([]SpotMarketRequest, *Response, error)
- type SpotMarketService
- type SpotMarketServiceOp
- type Timestamp
- type TwoFactorAuthService
- type TwoFactorAuthServiceOp
- func (s *TwoFactorAuthServiceOp) DisableApp(token string) (resp *Response, err error)
- func (s *TwoFactorAuthServiceOp) DisableSms(token string) (resp *Response, err error)
- func (s *TwoFactorAuthServiceOp) EnableApp(token string) (resp *Response, err error)
- func (s *TwoFactorAuthServiceOp) EnableSms(token string) (resp *Response, err error)
- func (s *TwoFactorAuthServiceOp) ReceiveSms() (resp *Response, err error)
- func (s *TwoFactorAuthServiceOp) SeedApp() (otpURI string, resp *Response, err error)
- type UpdateBGPSessionRequest
- type User
- type UserCreateRequest
- type UserLite
- type UserService
- type UserServiceOp
- func (s *UserServiceOp) Create(createRequest *UserCreateRequest) (*User, *Response, error)
- func (s *UserServiceOp) Current() (*User, *Response, error)
- func (s *UserServiceOp) Get(userID string, opts *GetOptions) (*User, *Response, error)
- func (s *UserServiceOp) List(opts *ListOptions) (users []User, resp *Response, err error)
- func (s *UserServiceOp) Update(updateRequest *UserUpdateRequest) (*User, *Response, error)
- type UserUpdateRequest
- type VCCreateRequest
- type VCStatus
- type VCUpdateRequest
- type VLANAssignment
- type VLANAssignmentBatch
- type VLANAssignmentBatchCreateRequest
- type VLANAssignmentBatchState
- type VLANAssignmentCreateRequest
- type VLANAssignmentService
- type VLANAssignmentServiceOp
- func (s *VLANAssignmentServiceOp) CreateBatch(portID string, request *VLANAssignmentBatchCreateRequest, opts *GetOptions) (*VLANAssignmentBatch, *Response, error)
- func (s *VLANAssignmentServiceOp) Get(portID, assignmentID string, opts *GetOptions) (*VLANAssignment, *Response, error)
- func (s *VLANAssignmentServiceOp) GetBatch(portID, batchID string, opts *GetOptions) (*VLANAssignmentBatch, *Response, error)
- func (s *VLANAssignmentServiceOp) List(portID string, opts *ListOptions) (results []VLANAssignment, resp *Response, err error)
- func (s *VLANAssignmentServiceOp) ListBatch(portID string, opts *ListOptions) (results []VLANAssignmentBatch, resp *Response, err error)
- type VLANAssignmentState
- type VRF
- type VRFCreateRequest
- type VRFService
- type VRFServiceOp
- func (s *VRFServiceOp) Create(projectID string, input *VRFCreateRequest) (*VRF, *Response, error)
- func (s *VRFServiceOp) Delete(vrfID string) (*Response, error)
- func (s *VRFServiceOp) Get(vrfID string, opts *GetOptions) (*VRF, *Response, error)
- func (s *VRFServiceOp) List(projectID string, opts *ListOptions) (vrfs []VRF, resp *Response, err error)
- func (s *VRFServiceOp) ListIPs(vrfID string, opts *ListOptions) (ips []IPAddressReservation, resp *Response, err error)
- func (s *VRFServiceOp) Update(vrfID string, updateRequest *VRFUpdateRequest) (*VRF, *Response, error)
- type VRFUpdateRequest
- type VirtualCircuit
- type VirtualCircuitService
- type VirtualCircuitServiceOp
- func (s *VirtualCircuitServiceOp) Create(projectID, connID, portID string, request *VCCreateRequest, opts *GetOptions) (*VirtualCircuit, *Response, error)
- func (s *VirtualCircuitServiceOp) Delete(id string) (*Response, error)
- func (s *VirtualCircuitServiceOp) Events(id string, opts *GetOptions) ([]Event, *Response, error)
- func (s *VirtualCircuitServiceOp) Get(id string, opts *GetOptions) (*VirtualCircuit, *Response, error)
- func (s *VirtualCircuitServiceOp) Update(vcID string, req *VCUpdateRequest, opts *GetOptions) (*VirtualCircuit, *Response, error)
- type VirtualNetwork
- type VirtualNetworkCreateRequest
- type VirtualNetworkListResponse
- type Volume
- type VolumeAttachment
- type VolumeAttachmentService
- type VolumeAttachmentServiceOp
- func (v *VolumeAttachmentServiceOp) Create(volumeID, deviceID string) (*VolumeAttachment, *Response, error)
- func (v *VolumeAttachmentServiceOp) Delete(attachmentID string) (*Response, error)
- func (v *VolumeAttachmentServiceOp) Get(attachmentID string, opts *GetOptions) (*VolumeAttachment, *Response, error)
- type VolumeCreateRequest
- type VolumeService
- type VolumeServiceOp
- func (v *VolumeServiceOp) Create(createRequest *VolumeCreateRequest, projectID string) (*Volume, *Response, error)
- func (v *VolumeServiceOp) Delete(volumeID string) (*Response, error)
- func (v *VolumeServiceOp) Get(volumeID string, opts *GetOptions) (*Volume, *Response, error)
- func (v *VolumeServiceOp) List(projectID string, opts *ListOptions) (volumes []Volume, resp *Response, err error)
- func (v *VolumeServiceOp) Lock(id string) (*Response, error)
- func (v *VolumeServiceOp) Unlock(id string) (*Response, error)
- func (v *VolumeServiceOp) Update(id string, updateRequest *VolumeUpdateRequest) (*Volume, *Response, error)
- type VolumeUpdateRequest
Constants ¶
const ( IncludeParam = "include" ExcludeParam = "exclude" PageParam = "page" PerPageParam = "per_page" SearchParam = "search" SortByParam = "sort_by" SortDirectionParam = "sort_direction" )
const ( ConnectionDedicated ConnectionType = "dedicated" ConnectionRedundant ConnectionRedundancy = "redundant" ConnectionPrimary ConnectionRedundancy = "primary" ConnectionPortPrimary ConnectionPortRole = "primary" ConnectionPortSecondary ConnectionPortRole = "secondary" ConnectionModeStandard ConnectionMode = "standard" ConnectionModeTunnel ConnectionMode = "tunnel" ConnectionDeleteTimeout = 60 * time.Second ConnectionDeleteCheck = 2 * time.Second )
const ( NetworkTypeHybrid = "hybrid" NetworkTypeL2Bonded = "layer2-bonded" NetworkTypeL2Individual = "layer2-individual" NetworkTypeL3 = "layer3" )
Variables ¶
var ( // Facilities DEPRECATED Use Facilities.List Facilities = []string{ "yyz1", "nrt1", "atl1", "mrs1", "hkg1", "ams1", "ewr1", "sin1", "dfw1", "lax1", "syd1", "sjc1", "ord1", "iad1", "fra1", "sea1", "dfw2"} // FacilityFeatures DEPRECATED Use Facilities.List FacilityFeatures = []string{ "baremetal", "layer_2", "backend_transfer", "storage", "global_ipv4"} // UtilizationLevels DEPRECATED UtilizationLevels = []string{"unavailable", "critical", "limited", "normal"} // DevicePlans DEPRECATED Use Plans.List DevicePlans = []string{"c2.medium.x86", "g2.large.x86", "m2.xlarge.x86", "x2.xlarge.x86", "baremetal_2a", "baremetal_2a2", "baremetal_1", "baremetal_3", "baremetal_2", "baremetal_s", "baremetal_0", "baremetal_1e", } )
var ( // Version of the packngo package. Version will be updated at runtime. Version = "(devel)" // UserAgent is the default HTTP User-Agent Header value that will be used by NewClient. // init() will update the version to match the built version of packngo. UserAgent = "packngo/(devel)" )
Functions ¶
func StreamToString ¶
StreamToString converts a reader to a string DEPRECATED This is unused and should not be exported by packngo
Types ¶
type APIKey ¶ added in v0.3.0
type APIKey struct { // ID is the UUIDv4 representing an API key in API requests and responses. ID string `json:"id"` // Description is any text description of the key. This can be used to // describe the purpose of the key. Description string `json:"description"` // Token is a sensitive credential that can be used as a `Client.APIKey` to // access Equinix Metal resources. Token string `json:"token"` // ReadOnly keys can not create new resources. ReadOnly bool `json:"read_only"` // Created is the creation date of the API key. Created string `json:"created_at"` // Updated is the last-update date of the API key. Updated string `json:"updated_at"` // User will be non-nil when getting or listing an User API key. User *User `json:"user"` // Project will be non-nil when getting or listing a Project API key Project *Project `json:"project"` }
type APIKeyCreateRequest ¶ added in v0.3.0
type APIKeyCreateRequest struct { // Description is any text description of the key. This can be used to // describe the purpose of the key. Description string `json:"description"` // ReadOnly keys can not create new resources. ReadOnly bool `json:"read_only"` // ProjectID when non-empty will result in the creation of a Project API // key. ProjectID string `json:"-"` }
APIKeyCreateRequest type used to create an api key.
func (APIKeyCreateRequest) String ¶ added in v0.3.0
func (s APIKeyCreateRequest) String() string
type APIKeyService ¶ added in v0.3.0
type APIKeyService interface { UserList(*ListOptions) ([]APIKey, *Response, error) ProjectList(string, *ListOptions) ([]APIKey, *Response, error) UserGet(string, *GetOptions) (*APIKey, error) ProjectGet(string, string, *GetOptions) (*APIKey, error) Create(*APIKeyCreateRequest) (*APIKey, *Response, error) Delete(string) (*Response, error) }
APIKeyService interface defines available device methods
type APIKeyServiceOp ¶ added in v0.3.0
type APIKeyServiceOp struct {
// contains filtered or unexported fields
}
APIKeyServiceOp implements APIKeyService
func (*APIKeyServiceOp) Create ¶ added in v0.3.0
func (s *APIKeyServiceOp) Create(createRequest *APIKeyCreateRequest) (*APIKey, *Response, error)
Create creates a new API key.
The API key can be either an User API key or a Project API key, determined by the value (or emptiness) of `APIKeyCreateRequest.ProjectID`. Either `User` or `Project` will be non-nil in the `APIKey` depending on this factor.
func (*APIKeyServiceOp) Delete ¶ added in v0.3.0
func (s *APIKeyServiceOp) Delete(apiKeyID string) (*Response, error)
Delete deletes an API key by `APIKey.ID`
The API key can be either an User API key or a Project API key.
Project API keys can not be used to delete themselves.
func (*APIKeyServiceOp) ProjectGet ¶ added in v0.3.0
func (s *APIKeyServiceOp) ProjectGet(projectID, apiKeyID string, opts *GetOptions) (*APIKey, error)
ProjectGet returns the Project API key with the given `APIKey.ID`.
In other methods, it is typical for a Response to be returned, which could include a StatusCode of `http.StatusNotFound` (404 error) when the resource was not found. The Equinix Metal API does not expose a get by ID endpoint for APIKeys. That is why in this method, all API keys are listed and compared for a match. Therefor, the Response is not returned and a custom error will be returned when the key is not found.
func (*APIKeyServiceOp) ProjectList ¶ added in v0.3.0
func (s *APIKeyServiceOp) ProjectList(projectID string, opts *ListOptions) ([]APIKey, *Response, error)
ProjectList lists the API keys associated with a project having `projectID` match `Project.ID`.
func (*APIKeyServiceOp) UserGet ¶ added in v0.3.0
func (s *APIKeyServiceOp) UserGet(apiKeyID string, opts *GetOptions) (*APIKey, error)
UserGet returns the User API key with the given `APIKey.ID`.
In other methods, it is typical for a Response to be returned, which could include a StatusCode of `http.StatusNotFound` (404 error) when the resource was not found. The Equinix Metal API does not expose a get by ID endpoint for APIKeys. That is why in this method, all API keys are listed and compared for a match. Therefor, the Response is not returned and a custom error will be returned when the key is not found.
func (*APIKeyServiceOp) UserList ¶ added in v0.3.0
func (s *APIKeyServiceOp) UserList(opts *ListOptions) ([]APIKey, *Response, error)
UserList returns the API keys for the User associated with the `Client.APIKey`.
When `Client.APIKey` is a Project API key, this method will return an access denied error.
type Address ¶
type Address struct { ID string `json:"id,omitempty"` Address string `json:"address"` Address2 *string `json:"address2,omitempty"` City *string `json:"city,omitempty"` State *string `json:"state,omitempty"` ZipCode string `json:"zip_code"` Country string `json:"country"` Coordinates *Coordinates `json:"coordinates,omitempty"` }
Address - the physical address of the facility
type AddressRequest ¶ added in v0.2.0
type AddressStruct ¶ added in v0.2.0
type AddressStruct struct {
Address string `json:"address"`
}
AddressStruct is a helper type for request/response with dict like {"address": ... }
type AnnualReservationPricing ¶ added in v0.26.0
type AnnualReservationPricing struct { OneYear *Pricing `json:"one_year"` ThreeYear *Pricing `json:"three_year"` }
func (AnnualReservationPricing) String ¶ added in v0.26.0
func (m AnnualReservationPricing) String() string
type AvailableRequest ¶ added in v0.2.0
type AvailableRequest struct {
CIDR int `json:"cidr"`
}
AvailableRequest is a type for listing available addresses from a reserved block.
type AvailableResponse ¶ added in v0.2.0
type AvailableResponse struct {
Available []string `json:"available"`
}
AvailableResponse is a type for listing of available addresses from a reserved block.
type BGPConfig ¶ added in v0.2.0
type BGPConfig struct { ID string `json:"id,omitempty"` Status string `json:"status,omitempty"` DeploymentType string `json:"deployment_type,omitempty"` Asn int `json:"asn,omitempty"` RouteObject string `json:"route_object,omitempty"` Md5 string `json:"md5,omitempty"` MaxPrefix int `json:"max_prefix,omitempty"` Project Project `json:"project,omitempty"` CreatedAt Timestamp `json:"created_at,omitempty"` RequestedAt Timestamp `json:"requested_at,omitempty"` Sessions []BGPSession `json:"sessions,omitempty"` Href string `json:"href,omitempty"` }
BGPConfig represents an Equinix Metal BGP Config
type BGPConfigService ¶ added in v0.2.0
type BGPConfigService interface { Get(projectID string, getOpt *GetOptions) (*BGPConfig, *Response, error) Create(projectID string, request CreateBGPConfigRequest) (*Response, error) }
BGPConfigService interface defines available BGP config methods
type BGPConfigServiceOp ¶ added in v0.2.0
type BGPConfigServiceOp struct {
// contains filtered or unexported fields
}
BGPConfigServiceOp implements BgpConfigService
func (*BGPConfigServiceOp) Create ¶ added in v0.2.0
func (s *BGPConfigServiceOp) Create(projectID string, request CreateBGPConfigRequest) (*Response, error)
Create function
func (*BGPConfigServiceOp) Get ¶ added in v0.2.0
func (s *BGPConfigServiceOp) Get(projectID string, opts *GetOptions) (bgpConfig *BGPConfig, resp *Response, err error)
Get function
type BGPDiscoverResponse ¶ added in v0.23.0
type BGPDiscoverResponse struct {
UpdatedAt Timestamp `json:"updated_at"`
}
BGPDiscoverResponse struct is returned from the bgp/discover endpoint
type BGPNeighbor ¶ added in v0.3.0
type BGPNeighbor struct { AddressFamily int `json:"address_family"` CustomerAs int `json:"customer_as"` CustomerIP string `json:"customer_ip"` Md5Enabled bool `json:"md5_enabled"` Md5Password string `json:"md5_password"` Multihop bool `json:"multihop"` PeerAs int `json:"peer_as"` PeerIps []string `json:"peer_ips"` RoutesIn []BGPRoute `json:"routes_in"` RoutesOut []BGPRoute `json:"routes_out"` }
BGPNeighor is struct for listing BGP neighbors of a device
type BGPSession ¶ added in v0.2.0
type BGPSession struct { ID string `json:"id,omitempty"` Status string `json:"status,omitempty"` LearnedRoutes []string `json:"learned_routes,omitempty"` AddressFamily string `json:"address_family,omitempty"` Device Device `json:"device,omitempty"` Href string `json:"href,omitempty"` DefaultRoute *bool `json:"default_route,omitempty"` }
BGPSession represents an Equinix Metal BGP Session
type BGPSessionService ¶ added in v0.2.0
type BGPSessionService interface { Get(string, *GetOptions) (*BGPSession, *Response, error) Create(string, CreateBGPSessionRequest) (*BGPSession, *Response, error) Update(string, UpdateBGPSessionRequest) (*BGPSession, *Response, error) Delete(string) (*Response, error) }
BGPSessionService interface defines available BGP session methods
type BGPSessionServiceOp ¶ added in v0.2.0
type BGPSessionServiceOp struct {
// contains filtered or unexported fields
}
BGPSessionServiceOp implements BgpSessionService
func (*BGPSessionServiceOp) Create ¶ added in v0.2.0
func (s *BGPSessionServiceOp) Create(deviceID string, request CreateBGPSessionRequest) (*BGPSession, *Response, error)
Create function
func (*BGPSessionServiceOp) Delete ¶ added in v0.2.0
func (s *BGPSessionServiceOp) Delete(id string) (*Response, error)
Delete function
func (*BGPSessionServiceOp) Get ¶ added in v0.2.0
func (s *BGPSessionServiceOp) Get(id string, opts *GetOptions) (session *BGPSession, response *Response, err error)
Get function
func (*BGPSessionServiceOp) Update ¶ added in v0.30.0
func (s *BGPSessionServiceOp) Update(sessionID string, request UpdateBGPSessionRequest) (*BGPSession, *Response, error)
Update function
type BackToL3Request ¶ added in v0.2.0
type BackToL3Request struct {
RequestIPs []AddressRequest `json:"request_ips"`
}
type BandwidthComponent ¶ added in v0.15.0
type BandwidthComponent struct { // Datapoints Datapoints []Datapoint `json:"datapoints"` // Tags Tags BandwidthTags `json:"tags"` // Target Target BandwidthTarget `json:"target"` }
BandwidthComponent
type BandwidthIO ¶ added in v0.15.0
type BandwidthIO struct { Inbound BandwidthComponent `json:"inbound"` Outbound BandwidthComponent `json:"outbound"` }
func (*BandwidthIO) UnmarshalJSON ¶ added in v0.15.0
func (b *BandwidthIO) UnmarshalJSON(buf []byte) error
type BandwidthOpts ¶ added in v0.15.0
type BandwidthOpts struct { From *Timestamp `json:"from,omitempty"` Until *Timestamp `json:"until,omitempty"` }
func (*BandwidthOpts) Encode ¶ added in v0.15.0
func (b *BandwidthOpts) Encode() string
func (*BandwidthOpts) WithQuery ¶ added in v0.15.0
func (b *BandwidthOpts) WithQuery(apiPath string) string
type BandwidthTags ¶ added in v0.15.0
type BandwidthTags struct { // AggregatedBy AggregatedBy string `json:"aggregatedBy"` // Name Name string `json:"name"` }
BandwidthTags
type BandwidthTarget ¶ added in v0.15.0
type BandwidthTarget string
const ( BandwidthInbound BandwidthTarget = "inbound" BandwidthOutbound BandwidthTarget = "outbound" )
BandwidthTarget enums
type Batch ¶ added in v0.2.0
type Batch struct { ID string `json:"id"` ErrorMessages []string `json:"error_messages,omitempty"` // State may be 'failed' or 'completed' State string `json:"state,omitempty"` Quantity int32 `json:"quantity,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` Href string `json:"href,omitempty"` Project Href `json:"project,omitempty"` Devices []Device `json:"devices,omitempty"` }
Batch type
type BatchCreateDevice ¶ added in v0.2.0
type BatchCreateDevice struct { DeviceCreateRequest Quantity int32 `json:"quantity"` FacilityDiversityLevel int32 `json:"facility_diversity_level,omitempty"` SpotInstance bool `json:"spot_instance,omitempty"` SpotPriceMax float64 `json:"spot_price_max,omitempty"` }
BatchCreateDevice type used to describe batch instances
type BatchCreateRequest ¶ added in v0.2.0
type BatchCreateRequest struct {
Batches []BatchCreateDevice `json:"batches"`
}
BatchCreateRequest type used to create batch of device instances
type BatchService ¶ added in v0.2.0
type BatchService interface { Get(batchID string, getOpt *GetOptions) (*Batch, *Response, error) List(ProjectID string, listOpt *ListOptions) ([]Batch, *Response, error) Create(projectID string, batches *BatchCreateRequest) ([]Batch, *Response, error) Delete(string, bool) (*Response, error) }
BatchService interface defines available batch methods
type BatchServiceOp ¶ added in v0.2.0
type BatchServiceOp struct {
// contains filtered or unexported fields
}
BatchServiceOp implements BatchService
func (*BatchServiceOp) Create ¶ added in v0.2.0
func (s *BatchServiceOp) Create(projectID string, request *BatchCreateRequest) ([]Batch, *Response, error)
Create function to create batch of device instances
func (*BatchServiceOp) Delete ¶ added in v0.2.0
func (s *BatchServiceOp) Delete(id string, removeDevices bool) (*Response, error)
Delete function to remove an instance batch
func (*BatchServiceOp) Get ¶ added in v0.2.0
func (s *BatchServiceOp) Get(batchID string, opts *GetOptions) (*Batch, *Response, error)
Get returns batch details
func (*BatchServiceOp) List ¶ added in v0.2.0
func (s *BatchServiceOp) List(projectID string, opts *ListOptions) (batches []Batch, resp *Response, err error)
List returns batches on a project
type BatchedVLANAssignment ¶ added in v0.19.0
type BatchedVLANAssignment struct { // VirtualNetworkID is the VirtualNetwork.ID of the VLAN the assignment was made to VirtualNetworkID string `json:"id,omitempty"` // Native indicates the VLAN is the native VLAN on the port and packets for this vlan will be untagged Native bool `json:"native,omitempty"` // State of the assignment State VLANAssignmentState `json:"state,omitempty"` // VLAN is the VirtualNetwork.VXLAN of the VLAN the assignment was made to VLAN int `json:"vlan,omitempty"` }
BatchedVLANAssignment represents the data requested in the batch before being processed. ID represents the VLAN ID, not the VLAN Assignment ID.
type BillingAddress ¶ added in v0.2.0
type BondRequest ¶ added in v0.2.0
type BondRequest struct {
BulkEnable bool `json:"bulk_enable"`
}
type CPR ¶ added in v0.3.0
type CPR struct { Disks []struct { Device string `json:"device"` WipeTable bool `json:"wipeTable"` Partitions []struct { Label string `json:"label"` Number int `json:"number"` Size string `json:"size"` } `json:"partitions"` } `json:"disks"` Raid []struct { Devices []string `json:"devices"` Level string `json:"level"` Name string `json:"name"` } `json:"raid,omitempty"` Filesystems []struct { Mount struct { Device string `json:"device"` Format string `json:"format"` Point string `json:"point"` Create struct { Options []string `json:"options"` } `json:"create"` } `json:"mount"` } `json:"filesystems"` }
CPR is a struct for custom partitioning and RAID If you don't want to bother writing the struct, just write the CPR conf to a string and then do
var cpr CPR err := json.Unmarshal([]byte(cprString), &cpr) if err != nil { log.Fatal(err) }
type CapacityInput ¶ added in v0.2.0
type CapacityInput struct {
Servers []ServerInfo `json:"servers,omitempty"`
}
CapacityInput struct
type CapacityList ¶ added in v0.2.0
type CapacityList struct {
Capacity CapacityReport `json:"capacity,omitempty"`
}
CapacityList struct
type CapacityPerBaremetal ¶ added in v0.2.0
type CapacityPerBaremetal struct {
Level string `json:"level,omitempty"`
}
CapacityPerBaremetal struct
type CapacityReport ¶ added in v0.2.0
type CapacityReport map[string]map[string]CapacityPerBaremetal
CapacityReport map
type CapacityService ¶ added in v0.2.0
type CapacityService interface { List() (*CapacityReport, *Response, error) ListMetros() (*CapacityReport, *Response, error) Check(*CapacityInput) (*CapacityInput, *Response, error) CheckMetros(*CapacityInput) (*CapacityInput, *Response, error) }
CapacityService interface defines available capacity methods
type CapacityServiceOp ¶ added in v0.2.0
type CapacityServiceOp struct {
// contains filtered or unexported fields
}
CapacityServiceOp implements CapacityService
func (*CapacityServiceOp) Check ¶ added in v0.2.0
func (s *CapacityServiceOp) Check(input *CapacityInput) (capInput *CapacityInput, resp *Response, err error)
Check validates if a deploy can be fulfilled in a capacity.
func (*CapacityServiceOp) CheckMetros ¶ added in v0.8.0
func (s *CapacityServiceOp) CheckMetros(input *CapacityInput) (capInput *CapacityInput, resp *Response, err error)
Check validates if a deploy can be fulfilled in a metro.
func (*CapacityServiceOp) List ¶ added in v0.2.0
func (s *CapacityServiceOp) List() (*CapacityReport, *Response, error)
List returns a list of facilities and plans with their current capacity.
func (*CapacityServiceOp) ListMetros ¶ added in v0.8.0
func (s *CapacityServiceOp) ListMetros() (*CapacityReport, *Response, error)
ListMetros returns a list of metros and plans with their current capacity.
type Client ¶
type Client struct { BaseURL *url.URL UserAgent string ConsumerToken string APIKey string RateLimit Rate // Equinix Metal Api Objects APIKeys APIKeyService BGPConfig BGPConfigService BGPSessions BGPSessionService Batches BatchService CapacityService CapacityService Connections ConnectionService DeviceIPs DeviceIPService Devices DeviceService Emails EmailService Events EventService Facilities FacilityService HardwareReservations HardwareReservationService Invitations InvitationService Members MemberService Metros MetroService Notifications NotificationService OperatingSystems OSService Organizations OrganizationService Plans PlanService Ports PortService ProjectIPs ProjectIPService ProjectVirtualNetworks ProjectVirtualNetworkService Projects ProjectService SSHKeys SSHKeyService SpotMarket SpotMarketService SpotMarketRequests SpotMarketRequestService MetalGateways MetalGatewayService TwoFactorAuth TwoFactorAuthService Users UserService VirtualCircuits VirtualCircuitService VLANAssignments VLANAssignmentService VolumeAttachments VolumeAttachmentService Volumes VolumeService VRFs VRFService // DevicePorts // // Deprecated: Use Client.Ports or Device methods DevicePorts DevicePortService // contains filtered or unexported fields }
Client is the base API Client
func NewClient ¶
NewClient initializes and returns a Client. The opts are functions such as WithAuth, WithHTTPClient, etc.
An example:
c, err := NewClient()
An alternative example, which avoids reading PACKET_AUTH_TOKEN environment variable:
c, err := NewClient(WithAuth("packngo lib", packetAuthToken))
func NewClientWithAuth ¶ added in v0.2.0
NewClientWithAuth initializes and returns a Client, use this to get an API Client to operate on N.B.: Equinix Metal's API certificate requires Go 1.5+ to successfully parse. If you are using an older version of Go, pass in a custom http.Client with a custom TLS configuration that sets "InsecureSkipVerify" to "true"
func NewClientWithBaseURL ¶
func NewClientWithBaseURL(consumerToken string, apiKey string, httpClient *http.Client, apiBaseURL string) (*Client, error)
NewClientWithBaseURL returns a Client pointing to nonstandard API URL, e.g. for mocking the remote API
func (*Client) DoRequest ¶ added in v0.2.0
DoRequest is a convenience method, it calls NewRequest followed by Do v is the interface to unmarshal the response JSON into
type ClientOpt ¶ added in v0.29.0
ClientOpt is an option usable as an argument to NewClient constructor.
func WithAuth ¶ added in v0.29.0
WithAuth configures Client with a specific consumerToken and apiKey for subsequent HTTP requests.
func WithBaseURL ¶ added in v0.29.0
WithBaseURL configures Client to use a nonstandard API URL, e.g. for mocking the remote API.
func WithHTTPClient ¶ added in v0.29.0
WithHTTPClient configures Client to use a specific httpClient for subsequent HTTP requests.
func WithHeader ¶ added in v0.29.0
WithHeader configures Client to use the given HTTP header set. The headers X-Auth-Token, X-Consumer-Token, User-Agent will be ignored even if provided in the set.
type Connection ¶ added in v0.6.0
type Connection struct { ID string `json:"id"` ContactEmail string `json:"contact_email,omitempty"` Name string `json:"name,omitempty"` Status string `json:"status,omitempty"` Redundancy ConnectionRedundancy `json:"redundancy,omitempty"` Facility *Facility `json:"facility,omitempty"` Metro *Metro `json:"metro,omitempty"` Type ConnectionType `json:"type,omitempty"` Mode *ConnectionMode `json:"mode,omitempty"` Description string `json:"description,omitempty"` Project *Project `json:"project,omitempty"` Organization *Organization `json:"organization,omitempty"` Speed uint64 `json:"speed,omitempty"` Token string `json:"token,omitempty"` Tokens []FabricServiceToken `json:"service_tokens,omitempty"` Tags []string `json:"tags,omitempty"` Ports []ConnectionPort `json:"ports,omitempty"` ServiceTokenType string `json:"service_token_type,omitempty"` }
func (*Connection) PortByRole ¶ added in v0.6.0
func (c *Connection) PortByRole(r ConnectionPortRole) *ConnectionPort
type ConnectionCreateRequest ¶ added in v0.6.0
type ConnectionCreateRequest struct { ContactEmail string `json:"contact_email,omitempty"` Description *string `json:"description,omitempty"` Facility string `json:"facility,omitempty"` Metro string `json:"metro,omitempty"` Mode ConnectionMode `json:"mode,omitempty"` Name string `json:"name,omitempty"` Project string `json:"project,omitempty"` Redundancy ConnectionRedundancy `json:"redundancy,omitempty"` ServiceTokenType FabricServiceTokenType `json:"service_token_type,omitempty"` Speed uint64 `json:"speed,omitempty"` Tags []string `json:"tags,omitempty"` Type ConnectionType `json:"type,omitempty"` VLANs []int `json:"vlans,omitempty"` }
type ConnectionMode ¶ added in v0.16.0
type ConnectionMode string
type ConnectionPort ¶ added in v0.6.0
type ConnectionPort struct { *Href `json:",inline"` ID string `json:"id"` LinkStatus string `json:"link_status,omitempty"` Name string `json:"name,omitempty"` Organization *Organization `json:"organization,omitempty"` Role ConnectionPortRole `json:"role,omitempty"` // Speed is the maximum allowed throughput. This value inherits changes made in the Equinix Fabric API. Speed uint64 `json:"speed,omitempty"` Status string `json:"status,omitempty"` Tokens []FabricServiceToken `json:"tokens,omitempty"` VirtualCircuits []VirtualCircuit `json:"virtual_circuits,omitempty"` }
type ConnectionPortRole ¶ added in v0.6.0
type ConnectionPortRole string
type ConnectionRedundancy ¶ added in v0.6.0
type ConnectionRedundancy string
type ConnectionService ¶ added in v0.6.0
type ConnectionService interface { OrganizationCreate(string, *ConnectionCreateRequest) (*Connection, *Response, error) ProjectCreate(string, *ConnectionCreateRequest) (*Connection, *Response, error) Update(string, *ConnectionUpdateRequest, *GetOptions) (*Connection, *Response, error) OrganizationList(string, *GetOptions) ([]Connection, *Response, error) ProjectList(string, *GetOptions) ([]Connection, *Response, error) Delete(string, bool) (*Response, error) Get(string, *GetOptions) (*Connection, *Response, error) Events(string, *GetOptions) ([]Event, *Response, error) PortEvents(string, string, *GetOptions) ([]Event, *Response, error) Ports(string, *GetOptions) ([]ConnectionPort, *Response, error) Port(string, string, *GetOptions) (*ConnectionPort, *Response, error) VirtualCircuits(string, string, *GetOptions) ([]VirtualCircuit, *Response, error) }
type ConnectionServiceOp ¶ added in v0.6.0
type ConnectionServiceOp struct {
// contains filtered or unexported fields
}
func (*ConnectionServiceOp) Delete ¶ added in v0.6.0
func (s *ConnectionServiceOp) Delete(id string, wait bool) (*Response, error)
func (*ConnectionServiceOp) Events ¶ added in v0.6.0
func (s *ConnectionServiceOp) Events(id string, opts *GetOptions) ([]Event, *Response, error)
func (*ConnectionServiceOp) Get ¶ added in v0.6.0
func (s *ConnectionServiceOp) Get(id string, opts *GetOptions) (*Connection, *Response, error)
func (*ConnectionServiceOp) OrganizationCreate ¶ added in v0.6.0
func (s *ConnectionServiceOp) OrganizationCreate(id string, createRequest *ConnectionCreateRequest) (*Connection, *Response, error)
func (*ConnectionServiceOp) OrganizationList ¶ added in v0.6.0
func (s *ConnectionServiceOp) OrganizationList(id string, opts *GetOptions) ([]Connection, *Response, error)
func (*ConnectionServiceOp) Port ¶ added in v0.6.0
func (s *ConnectionServiceOp) Port(connID, portID string, opts *GetOptions) (*ConnectionPort, *Response, error)
func (*ConnectionServiceOp) PortEvents ¶ added in v0.6.0
func (s *ConnectionServiceOp) PortEvents(connID, portID string, opts *GetOptions) ([]Event, *Response, error)
func (*ConnectionServiceOp) Ports ¶ added in v0.6.0
func (s *ConnectionServiceOp) Ports(connID string, opts *GetOptions) ([]ConnectionPort, *Response, error)
func (*ConnectionServiceOp) ProjectCreate ¶ added in v0.6.0
func (s *ConnectionServiceOp) ProjectCreate(id string, createRequest *ConnectionCreateRequest) (*Connection, *Response, error)
func (*ConnectionServiceOp) ProjectList ¶ added in v0.6.0
func (s *ConnectionServiceOp) ProjectList(id string, opts *GetOptions) ([]Connection, *Response, error)
func (*ConnectionServiceOp) Update ¶ added in v0.16.0
func (s *ConnectionServiceOp) Update(id string, updateRequest *ConnectionUpdateRequest, opts *GetOptions) (*Connection, *Response, error)
func (*ConnectionServiceOp) VirtualCircuits ¶ added in v0.6.0
func (s *ConnectionServiceOp) VirtualCircuits(connID, portID string, opts *GetOptions) (vcs []VirtualCircuit, resp *Response, err error)
type ConnectionType ¶ added in v0.6.0
type ConnectionType string
type ConnectionUpdateRequest ¶ added in v0.16.0
type ConnectionUpdateRequest struct { Redundancy ConnectionRedundancy `json:"redundancy,omitempty"` Mode *ConnectionMode `json:"mode,omitempty"` Description *string `json:"description,omitempty"` Tags []string `json:"tags,omitempty"` }
type Coordinates ¶ added in v0.17.0
type Coordinates struct { Latitude *string `json:"latitude,omitempty"` Longitude *string `json:"longitude,omitempty"` }
Coordinates struct for Coordinates
type CreateBGPConfigRequest ¶ added in v0.2.0
type CreateBGPConfigRequest struct { DeploymentType string `json:"deployment_type,omitempty"` Asn int `json:"asn,omitempty"` Md5 string `json:"md5,omitempty"` UseCase string `json:"use_case,omitempty"` }
CreateBGPConfigRequest struct
type CreateBGPSessionRequest ¶ added in v0.2.0
type CreateBGPSessionRequest struct { AddressFamily string `json:"address_family"` DefaultRoute *bool `json:"default_route,omitempty"` }
CreateBGPSessionRequest struct
type Datapoint ¶ added in v0.15.0
type Datapoint struct { // Rate is the aggregated sum of Bytes/Second across all ports Rate *float64 `json:"rate"` // When the rate was captured When Timestamp `json:"when"` }
func (*Datapoint) UnmarshalJSON ¶ added in v0.15.0
type Device ¶
type Device struct { ID string `json:"id"` Href string `json:"href,omitempty"` Hostname string `json:"hostname,omitempty"` Description *string `json:"description,omitempty"` State string `json:"state,omitempty"` Created string `json:"created_at,omitempty"` CreatedBy *UserLite `json:"created_by,omitempty"` Updated string `json:"updated_at,omitempty"` Locked bool `json:"locked,omitempty"` BillingCycle string `json:"billing_cycle,omitempty"` Storage *CPR `json:"storage,omitempty"` Tags []string `json:"tags,omitempty"` Network []*IPAddressAssignment `json:"ip_addresses"` Volumes []*Volume `json:"volumes"` OS *OS `json:"operating_system,omitempty"` Plan *Plan `json:"plan,omitempty"` Facility *Facility `json:"facility,omitempty"` Metro *Metro `json:"metro,omitempty"` Project *Project `json:"project,omitempty"` ProvisionEvents []*Event `json:"provisioning_events,omitempty"` ProvisionPer float32 `json:"provisioning_percentage,omitempty"` UserData string `json:"userdata,omitempty"` User string `json:"user,omitempty"` RootPassword string `json:"root_password,omitempty"` IPXEScriptURL string `json:"ipxe_script_url,omitempty"` AlwaysPXE bool `json:"always_pxe,omitempty"` HardwareReservation *HardwareReservation `json:"hardware_reservation,omitempty"` SpotInstance bool `json:"spot_instance,omitempty"` SpotPriceMax float64 `json:"spot_price_max,omitempty"` TerminationTime *Timestamp `json:"termination_time,omitempty"` NetworkPorts []Port `json:"network_ports,omitempty"` CustomData map[string]interface{} `json:"customdata,omitempty"` SSHKeys []SSHKey `json:"ssh_keys,omitempty"` ShortID string `json:"short_id,omitempty"` SwitchUUID string `json:"switch_uuid,omitempty"` SOS string `json:"sos,omitempty"` }
Device represents an Equinix Metal device from API
func (*Device) GetBondPorts ¶ added in v0.3.0
func (*Device) GetNetworkInfo ¶ added in v0.2.0
func (d *Device) GetNetworkInfo() NetworkInfo
func (*Device) GetNetworkType ¶ added in v0.3.0
GetNetworkType returns a composite network type identification for a device based on the plan, network_type, and IP management state of the device. GetNetworkType provides the same composite state rendered in the Packet Portal for a given device.
func (*Device) GetPhysicalPorts ¶ added in v0.3.0
func (*Device) GetPortByName ¶ added in v0.3.0
func (*Device) GetPortsInBond ¶ added in v0.3.0
func (*Device) HasManagementIPs ¶ added in v0.5.0
func (*Device) NumOfBonds ¶ added in v0.3.0
type DeviceActionRequest ¶
type DeviceActionRequest struct {
Type string `json:"type"`
}
DeviceActionRequest type used to execute actions on devices
func (DeviceActionRequest) String ¶
func (d DeviceActionRequest) String() string
type DeviceCreateRequest ¶
type DeviceCreateRequest struct { Hostname string `json:"hostname,omitempty"` Plan string `json:"plan"` Facility []string `json:"facility,omitempty"` Metro string `json:"metro,omitempty"` OS string `json:"operating_system"` BillingCycle string `json:"billing_cycle,omitempty"` ProjectID string `json:"project_id"` UserData string `json:"userdata,omitempty"` Storage *CPR `json:"storage,omitempty"` Tags []string `json:"tags"` Description string `json:"description,omitempty"` IPXEScriptURL string `json:"ipxe_script_url,omitempty"` PublicIPv4SubnetSize int `json:"public_ipv4_subnet_size,omitempty"` AlwaysPXE bool `json:"always_pxe,omitempty"` HardwareReservationID string `json:"hardware_reservation_id,omitempty"` SpotInstance bool `json:"spot_instance,omitempty"` SpotPriceMax float64 `json:"spot_price_max,omitempty,string"` TerminationTime *Timestamp `json:"termination_time,omitempty"` CustomData string `json:"customdata,omitempty"` // UserSSHKeys is a list of user UUIDs - essentially a list of // collaborators. The users must be a collaborator in the same project // where the device is created. The user's SSH keys then go to the // device UserSSHKeys []string `json:"user_ssh_keys,omitempty"` // Project SSHKeys is a list of SSHKeys resource UUIDs. If this param // is supplied, only the listed SSHKeys will go to the device. // Any other Project SSHKeys and any User SSHKeys will not be present // in the device. ProjectSSHKeys []string `json:"project_ssh_keys,omitempty"` Features map[string]string `json:"features,omitempty"` IPAddresses []IPAddressCreateRequest `json:"ip_addresses,omitempty"` NoSSHKeys bool `json:"no_ssh_keys,omitempty"` }
DeviceCreateRequest type used to create an Equinix Metal device
func (DeviceCreateRequest) String ¶
func (d DeviceCreateRequest) String() string
type DeviceDeleteRequest ¶ added in v0.3.0
type DeviceDeleteRequest struct {
Force bool `json:"force_delete"`
}
type DeviceIPService ¶ added in v0.2.0
type DeviceIPService interface { Assign(deviceID string, assignRequest *AddressStruct) (*IPAddressAssignment, *Response, error) Unassign(assignmentID string) (*Response, error) Get(assignmentID string, getOpt *GetOptions) (*IPAddressAssignment, *Response, error) List(deviceID string, opts *ListOptions) ([]IPAddressAssignment, *Response, error) }
DeviceIPService handles assignment of addresses from reserved blocks to instances in a project.
type DeviceIPServiceOp ¶ added in v0.2.0
type DeviceIPServiceOp struct {
// contains filtered or unexported fields
}
DeviceIPServiceOp is interface for IP-address assignment methods.
func (*DeviceIPServiceOp) Assign ¶ added in v0.2.0
func (i *DeviceIPServiceOp) Assign(deviceID string, assignRequest *AddressStruct) (*IPAddressAssignment, *Response, error)
Assign assigns an IP address to a device. The IP address must be in one of the IP ranges assigned to the device’s project.
func (*DeviceIPServiceOp) Get ¶ added in v0.2.0
func (i *DeviceIPServiceOp) Get(assignmentID string, opts *GetOptions) (*IPAddressAssignment, *Response, error)
Get returns assignment by ID.
func (*DeviceIPServiceOp) List ¶ added in v0.3.0
func (i *DeviceIPServiceOp) List(deviceID string, opts *ListOptions) ([]IPAddressAssignment, *Response, error)
List list all of the IP address assignments on a device
func (*DeviceIPServiceOp) Unassign ¶ added in v0.2.0
func (i *DeviceIPServiceOp) Unassign(assignmentID string) (*Response, error)
Unassign unassigns an IP address from the device to which it is currently assigned. This will remove the relationship between an IP and the device and will make the IP address available to be assigned to another device.
type DevicePortService
deprecated
added in
v0.2.0
type DevicePortService interface { Assign(*PortAssignRequest) (*Port, *Response, error) Unassign(*PortAssignRequest) (*Port, *Response, error) AssignNative(*PortAssignRequest) (*Port, *Response, error) UnassignNative(string) (*Port, *Response, error) Bond(*Port, bool) (*Port, *Response, error) Disbond(*Port, bool) (*Port, *Response, error) DeviceToNetworkType(string, string) (*Device, error) DeviceNetworkType(string) (string, error) PortToLayerTwo(string, string) (*Port, *Response, error) PortToLayerThree(string, string) (*Port, *Response, error) GetPortByName(string, string) (*Port, error) GetOddEthPorts(*Device) (map[string]*Port, error) GetAllEthPorts(*Device) (map[string]*Port, error) ConvertDevice(*Device, string) error }
DevicePortService handles operations on a port which belongs to a particular device
Deprecated: use PortService or Device methods
type DevicePortServiceOp
deprecated
added in
v0.2.0
type DevicePortServiceOp struct {
// contains filtered or unexported fields
}
DevicePortServiceOp implements DevicePortService on the Equinix Metal API
Deprecated: use PortServiceOp or Device methods
func (*DevicePortServiceOp) Assign
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) Assign(par *PortAssignRequest) (*Port, *Response, error)
Assign the specified VLAN to the specified Port
Deprecated: use PortServiceOp.Assign
func (*DevicePortServiceOp) AssignNative
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) AssignNative(par *PortAssignRequest) (*Port, *Response, error)
AssignNative designates the specified VLAN as the native VLAN for the specified Port
Deprecated: use PortServiceOp.AssignNative
func (*DevicePortServiceOp) ConvertDevice
deprecated
added in
v0.5.0
func (i *DevicePortServiceOp) ConvertDevice(d *Device, targetType string) error
ConvertDevice converts the specified device's network ports (including addresses and vlans) to the named network type, consistent with the Equinix Metal console experience.
Deprecated: Equinix Metal devices may support more than two ports and the whole-device single word network type can no longer capture the capabilities and permutations of device port configurations.
func (*DevicePortServiceOp) DeviceNetworkType
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) DeviceNetworkType(deviceID string) (string, error)
DeviceNetworkType fetches the specified Device and returns a heuristic single word network type consistent with the Equinix Metal console experience.
Deprecated: use Device.GetNetworkType
func (*DevicePortServiceOp) DeviceToNetworkType
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) DeviceToNetworkType(deviceID string, targetType string) (*Device, error)
DeviceToNetworkType fetches the specified device and converts its network ports (including addresses and vlans) to the named network type, consistent with the Equinix Metal console experience.
Deprecated: use DevicePortServiceOp.ConvertDevice which this function thinly wraps.
func (*DevicePortServiceOp) GetAllEthPorts
deprecated
added in
v0.5.0
func (i *DevicePortServiceOp) GetAllEthPorts(d *Device) (map[string]*Port, error)
GetAllEthPorts fetches the specified Device and returns a heuristic single word network type consistent with the Equinix Metal console experience.
Deprecated: use Device.GetPhysicalPorts
func (*DevicePortServiceOp) GetOddEthPorts
deprecated
added in
v0.5.0
func (i *DevicePortServiceOp) GetOddEthPorts(d *Device) (map[string]*Port, error)
GetOddEthPorts fetches the specified Device and returns physical ports eth1 and eth3.
Deprecated: use Device.GetPhysicalPorts and filter the map to only the keys ending with odd digits
func (*DevicePortServiceOp) GetPortByName
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) GetPortByName(deviceID, name string) (*Port, error)
GetPortByName returns the matching Port on the specified device
Deprecated: use Device.GetPortByName
func (*DevicePortServiceOp) PortToLayerThree
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) PortToLayerThree(deviceID, portName string) (*Port, *Response, error)
PortToLayerThree fetches the specified device, finds the matching port by name, and converts it to layer3. A port may already be in a layer3 mode, in which case the port will be returned with a nil response and nil error with no additional action taking place.
When switching to Layer3, a new set of IP addresses will be requested including Public IPv4, Public IPv6, and Private IPv6 addresses.
Deprecated: use PortServiceOp.ConvertToLayerTwo
func (*DevicePortServiceOp) PortToLayerTwo
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) PortToLayerTwo(deviceID, portName string) (*Port, *Response, error)
PortToLayerTwo fetches the specified device, finds the matching port by name, and converts it to layer2. A port may already be in a layer2 mode, in which case the port will be returned with a nil response and nil error with no additional action taking place.
Deprecated: use PortServiceOp.ConvertToLayerTwo
func (*DevicePortServiceOp) Unassign
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) Unassign(par *PortAssignRequest) (*Port, *Response, error)
Unassign removes the specified VLAN from the specified Port
Deprecated: use PortServiceOp.Unassign
func (*DevicePortServiceOp) UnassignNative
deprecated
added in
v0.2.0
func (i *DevicePortServiceOp) UnassignNative(portID string) (*Port, *Response, error)
UnassignNative removes the native VLAN from the specified Port
Deprecated: use PortServiceOp.UnassignNative
type DeviceReinstallFields ¶ added in v0.17.0
type DeviceReinstallRequest ¶ added in v0.17.0
type DeviceReinstallRequest struct { DeviceActionRequest *DeviceReinstallFields }
type DeviceService ¶
type DeviceService interface { List(ProjectID string, opts *ListOptions) ([]Device, *Response, error) Get(DeviceID string, opts *GetOptions) (*Device, *Response, error) Create(*DeviceCreateRequest) (*Device, *Response, error) Update(string, *DeviceUpdateRequest) (*Device, *Response, error) Delete(string, bool) (*Response, error) Reboot(string) (*Response, error) Reinstall(string, *DeviceReinstallFields) (*Response, error) PowerOff(string) (*Response, error) PowerOn(string) (*Response, error) Rescue(string) (*Response, error) Lock(string) (*Response, error) Unlock(string) (*Response, error) ListBGPSessions(deviceID string, opts *ListOptions) ([]BGPSession, *Response, error) ListBGPNeighbors(deviceID string, opts *ListOptions) ([]BGPNeighbor, *Response, error) ListEvents(deviceID string, opts *ListOptions) ([]Event, *Response, error) GetBandwidth(deviceID string, opts *BandwidthOpts) (*BandwidthIO, *Response, error) }
DeviceService interface defines available device methods
type DeviceServiceOp ¶
type DeviceServiceOp struct {
// contains filtered or unexported fields
}
DeviceServiceOp implements DeviceService
func (*DeviceServiceOp) Create ¶
func (s *DeviceServiceOp) Create(createRequest *DeviceCreateRequest) (*Device, *Response, error)
Create creates a new device
func (*DeviceServiceOp) Delete ¶
func (s *DeviceServiceOp) Delete(deviceID string, force bool) (*Response, error)
Delete deletes a device
func (*DeviceServiceOp) Get ¶
func (s *DeviceServiceOp) Get(deviceID string, opts *GetOptions) (*Device, *Response, error)
Get returns a device by id
func (*DeviceServiceOp) GetBandwidth ¶ added in v0.15.0
func (d *DeviceServiceOp) GetBandwidth(deviceID string, opts *BandwidthOpts) (*BandwidthIO, *Response, error)
func (*DeviceServiceOp) List ¶
func (s *DeviceServiceOp) List(projectID string, opts *ListOptions) (devices []Device, resp *Response, err error)
List returns devices on a project
Regarding ListOptions.Search: The API documentation does not provide guidance on the fields that will be searched using this parameter, so this behavior is undefined and prone to change.
As of 2020-10-20, ListOptions.Search will look for matches in the following Device properties: Hostname, Description, Tags, ID, ShortID, Network.Address, Plan.Name, Plan.Slug, Facility.Code, Facility.Name, OS.Name, OS.Slug, HardwareReservation.ID, HardwareReservation.ShortID
func (*DeviceServiceOp) ListBGPNeighbors ¶ added in v0.3.0
func (s *DeviceServiceOp) ListBGPNeighbors(deviceID string, opts *ListOptions) ([]BGPNeighbor, *Response, error)
func (*DeviceServiceOp) ListBGPSessions ¶ added in v0.2.0
func (s *DeviceServiceOp) ListBGPSessions(deviceID string, opts *ListOptions) (bgpSessions []BGPSession, resp *Response, err error)
ListBGPSessions returns all BGP Sessions associated with the device
func (*DeviceServiceOp) ListEvents ¶ added in v0.2.0
func (s *DeviceServiceOp) ListEvents(deviceID string, opts *ListOptions) ([]Event, *Response, error)
ListEvents returns list of device events
func (*DeviceServiceOp) Lock ¶
func (s *DeviceServiceOp) Lock(deviceID string) (*Response, error)
Lock sets a device to "locked"
func (*DeviceServiceOp) PowerOff ¶
func (s *DeviceServiceOp) PowerOff(deviceID string) (*Response, error)
PowerOff powers on a device
func (*DeviceServiceOp) PowerOn ¶
func (s *DeviceServiceOp) PowerOn(deviceID string) (*Response, error)
PowerOn powers on a device
func (*DeviceServiceOp) Reboot ¶
func (s *DeviceServiceOp) Reboot(deviceID string) (*Response, error)
Reboot reboots on a device
func (*DeviceServiceOp) Reinstall ¶ added in v0.17.0
func (s *DeviceServiceOp) Reinstall(deviceID string, fields *DeviceReinstallFields) (*Response, error)
Reinstall reinstalls a device
func (*DeviceServiceOp) Rescue ¶ added in v0.30.0
func (s *DeviceServiceOp) Rescue(deviceID string) (*Response, error)
Rescue boots a device into Rescue OS
func (*DeviceServiceOp) Unlock ¶
func (s *DeviceServiceOp) Unlock(deviceID string) (*Response, error)
Unlock sets a device to "unlocked"
func (*DeviceServiceOp) Update ¶
func (s *DeviceServiceOp) Update(deviceID string, updateRequest *DeviceUpdateRequest) (*Device, *Response, error)
Update updates an existing device
type DeviceUpdateRequest ¶
type DeviceUpdateRequest struct { Hostname *string `json:"hostname,omitempty"` Description *string `json:"description,omitempty"` UserData *string `json:"userdata,omitempty"` Locked *bool `json:"locked,omitempty"` Tags *[]string `json:"tags,omitempty"` AlwaysPXE *bool `json:"always_pxe,omitempty"` IPXEScriptURL *string `json:"ipxe_script_url,omitempty"` CustomData *string `json:"customdata,omitempty"` }
DeviceUpdateRequest type used to update an Equinix Metal device
type DisbondRequest ¶ added in v0.2.0
type DisbondRequest struct {
BulkDisable bool `json:"bulk_disable"`
}
type Drives ¶
type Drives struct { Count int `json:"count,omitempty"` Size string `json:"size,omitempty"` Type string `json:"type,omitempty"` }
Drives - the storage config details for specs on a plan
type Email ¶
type Email struct { ID string `json:"id"` Address string `json:"address"` Default bool `json:"default,omitempty"` URL string `json:"href,omitempty"` }
Email represents a user's email address
type EmailRequest ¶ added in v0.2.0
type EmailRequest struct { Address string `json:"address,omitempty"` Default *bool `json:"default,omitempty"` }
EmailRequest type used to add an email address to the current user
type EmailService ¶
type EmailService interface { Get(string, *GetOptions) (*Email, *Response, error) Create(*EmailRequest) (*Email, *Response, error) Update(string, *EmailRequest) (*Email, *Response, error) Delete(string) (*Response, error) }
EmailService interface defines available email methods
type EmailServiceOp ¶
type EmailServiceOp struct {
// contains filtered or unexported fields
}
EmailServiceOp implements EmailService
func (*EmailServiceOp) Create ¶ added in v0.2.0
func (s *EmailServiceOp) Create(request *EmailRequest) (*Email, *Response, error)
Create adds a new email address to the current user.
func (*EmailServiceOp) Delete ¶ added in v0.2.0
func (s *EmailServiceOp) Delete(emailID string) (*Response, error)
Delete removes the email address from the current user account
func (*EmailServiceOp) Get ¶
func (s *EmailServiceOp) Get(emailID string, opts *GetOptions) (*Email, *Response, error)
Get retrieves an email by id
func (*EmailServiceOp) Update ¶ added in v0.2.0
func (s *EmailServiceOp) Update(emailID string, request *EmailRequest) (*Email, *Response, error)
Update email parameters
type ErrorResponse ¶
type ErrorResponse struct { Response *http.Response Errors []string `json:"errors"` SingleError string `json:"error"` }
ErrorResponse is the http response used on errors
func (*ErrorResponse) Error ¶
func (r *ErrorResponse) Error() string
type Event ¶ added in v0.2.0
type Event struct { ID string `json:"id,omitempty"` State string `json:"state,omitempty"` Type string `json:"type,omitempty"` Body string `json:"body,omitempty"` Relationships []Href `json:"relationships,omitempty"` Interpolated string `json:"interpolated,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` Href string `json:"href,omitempty"` }
Event struct
type EventService ¶ added in v0.2.0
type EventService interface { List(*ListOptions) ([]Event, *Response, error) Get(string, *GetOptions) (*Event, *Response, error) }
EventService interface defines available event functions
type EventServiceOp ¶ added in v0.2.0
type EventServiceOp struct {
// contains filtered or unexported fields
}
EventServiceOp implements EventService
func (*EventServiceOp) Get ¶ added in v0.2.0
func (s *EventServiceOp) Get(eventID string, getOpt *GetOptions) (*Event, *Response, error)
Get returns an event by ID
func (*EventServiceOp) List ¶ added in v0.2.0
func (s *EventServiceOp) List(listOpt *ListOptions) ([]Event, *Response, error)
List returns all events
type FabricServiceToken ¶ added in v0.21.0
type FabricServiceToken struct { *Href `json:",inline"` ExpiresAt *Timestamp `json:"expires_at,omitempty"` ID string `json:"id"` MaxAllowedSpeed uint64 `json:"max_allowed_speed,omitempty"` Role ConnectionPortRole `json:"role,omitempty"` ServiceTokenType FabricServiceTokenType `json:"service_token_type,omitempty"` State string `json:"state,omitempty"` }
FabricServiceToken represents an Equinix Metal metro
func (FabricServiceToken) String ¶ added in v0.21.0
func (f FabricServiceToken) String() string
type FabricServiceTokenServiceOp ¶ added in v0.21.0
type FabricServiceTokenServiceOp struct {
// contains filtered or unexported fields
}
FabricServiceTokenServiceOp implements FabricServiceTokenService
func (*FabricServiceTokenServiceOp) Get ¶ added in v0.21.0
func (s *FabricServiceTokenServiceOp) Get(id string, opts *GetOptions) (*FabricServiceToken, *Response, error)
type FabricServiceTokenType ¶ added in v0.21.0
type FabricServiceTokenType string
const ( FabricServiceTokenASide FabricServiceTokenType = "a_side" FabricServiceTokenZSide FabricServiceTokenType = "z_side" )
type Facility ¶
type Facility struct { ID string `json:"id"` Name string `json:"name,omitempty"` Code string `json:"code,omitempty"` Features []string `json:"features,omitempty"` Address *Address `json:"address,omitempty"` Metro *Metro `json:"metro,omitempty"` URL string `json:"href,omitempty"` }
Facility represents an Equinix Metal facility
type FacilityService ¶
type FacilityService interface {
List(*ListOptions) ([]Facility, *Response, error)
}
FacilityService interface defines available facility methods
type FacilityServiceOp ¶
type FacilityServiceOp struct {
// contains filtered or unexported fields
}
FacilityServiceOp implements FacilityService
func (*FacilityServiceOp) List ¶
func (s *FacilityServiceOp) List(opts *ListOptions) ([]Facility, *Response, error)
List returns all facilities
type GetOptions ¶ added in v0.2.0
type GetOptions struct { // Includes are a list of fields to expand in the request results. // // For resources that contain collections of other resources, the Equinix Metal API // will only return the `Href` value of these resources by default. In // nested API Go types, this will result in objects that have zero values in // all fiends except their `Href` field. When an object's associated field // name is "included", the returned fields will be Uumarshalled into the // nested object. Field specifiers can use a dotted notation up to three // references deep. (For example, "memberships.projects" can be used in // ListUsers.) Includes []string `url:"include,omitempty,comma"` // Excludes reduce the size of the API response by removing nested objects // that may be returned. // // The default behavior of the Equinix Metal API is to "exclude" fields, but some // API endpoints have an "include" behavior on certain fields. Nested Go // types unmarshalled into an "excluded" field will only have a values in // their `Href` field. Excludes []string `url:"exclude,omitempty,comma"` // QueryParams for API URL, used for arbitrary filters QueryParams map[string]string `url:"-"` // Page is the page of results to retrieve for paginated result sets Page int `url:"page,omitempty"` // PerPage is the number of results to return per page for paginated result // sets, PerPage int `url:"per_page,omitempty"` // Search is a special API query parameter that, for resources that support // it, will filter results to those with any one of various fields matching // the supplied keyword. For example, a resource may have a defined search // behavior matches either a name or a fingerprint field, while another // resource may match entirely different fields. Search is currently // implemented for SSHKeys and uses an exact match. Search string `url:"search,omitempty"` SortBy string `url:"sort_by,omitempty"` SortDirection ListSortDirection `url:"sort_direction,omitempty"` Meta meta `url:"-"` }
GetOptions are options common to Equinix Metal API GET requests
func (*GetOptions) AddParam ¶ added in v0.19.0
func (g *GetOptions) AddParam(key, value string) *GetOptions
AddParam adds key=value to URL path
func (*GetOptions) CopyOrNew ¶ added in v0.6.0
func (g *GetOptions) CopyOrNew() *GetOptions
func (*GetOptions) Encode ¶ added in v0.6.0
func (g *GetOptions) Encode() string
Encode generates a URL query string ("?foo=bar")
func (*GetOptions) Excluding ¶ added in v0.11.0
func (g *GetOptions) Excluding(refs ...string) *GetOptions
Excluding ensures that the variadic refs are included in the "Excluded" param in a copy of the options. Unknown values within refs will be silently ignore by the API.
func (*GetOptions) Filter ¶ added in v0.19.0
func (g *GetOptions) Filter(key, value string) *GetOptions
func (*GetOptions) GetOptions ¶ added in v0.3.0
func (g *GetOptions) GetOptions() *GetOptions
GetOptions returns GetOptions from GetOptions (and is nil-receiver safe)
func (*GetOptions) GetPage ¶ added in v0.6.0
func (g *GetOptions) GetPage() int
func (*GetOptions) Including ¶ added in v0.5.0
func (g *GetOptions) Including(refs ...string) *GetOptions
Including ensures that the variadic refs are included in a copy of the options, resulting in expansion of the the referred sub-resources. Unknown values within refs will be silently ignore by the API.
func (*GetOptions) WithQuery ¶ added in v0.6.0
func (g *GetOptions) WithQuery(apiPath string) string
type HardwareReservation ¶ added in v0.2.0
type HardwareReservation struct { ID string `json:"id,omitempty"` ShortID string `json:"short_id,omitempty"` Facility Facility `json:"facility,omitempty"` Plan Plan `json:"plan,omitempty"` Provisionable bool `json:"provisionable,omitempty"` Spare bool `json:"spare,omitempty"` SwitchUUID string `json:"switch_uuid,omitempty"` Intervals int `json:"intervals,omitempty"` CurrentPeriod int `json:"current_period,omitempty"` Href string `json:"href,omitempty"` Project Project `json:"project,omitempty"` Device *Device `json:"device,omitempty"` CreatedAt Timestamp `json:"created_at,omitempty"` }
HardwareReservation struct
type HardwareReservationService ¶ added in v0.2.0
type HardwareReservationService interface { Get(hardwareReservationID string, getOpt *GetOptions) (*HardwareReservation, *Response, error) List(projectID string, listOpt *ListOptions) ([]HardwareReservation, *Response, error) Move(string, string) (*HardwareReservation, *Response, error) }
HardwareReservationService interface defines available hardware reservation functions
type HardwareReservationServiceOp ¶ added in v0.2.0
type HardwareReservationServiceOp struct {
// contains filtered or unexported fields
}
HardwareReservationServiceOp implements HardwareReservationService
func (*HardwareReservationServiceOp) Get ¶ added in v0.2.0
func (s *HardwareReservationServiceOp) Get(hardwareReservationdID string, opts *GetOptions) (*HardwareReservation, *Response, error)
Get returns a single hardware reservation
func (*HardwareReservationServiceOp) List ¶ added in v0.2.0
func (s *HardwareReservationServiceOp) List(projectID string, opts *ListOptions) (reservations []HardwareReservation, resp *Response, err error)
List returns all hardware reservations for a given project
func (*HardwareReservationServiceOp) Move ¶ added in v0.2.0
func (s *HardwareReservationServiceOp) Move(hardwareReservationdID, projectID string) (*HardwareReservation, *Response, error)
Move a hardware reservation to another project
type IPAddressAssignment ¶ added in v0.2.0
type IPAddressAssignment struct { IpAddressCommon AssignedTo Href `json:"assigned_to"` }
IPAddressAssignment is created when an IP address from reservation block is assigned to a device.
func (IPAddressAssignment) String ¶ added in v0.2.0
func (i IPAddressAssignment) String() string
type IPAddressCreateRequest ¶ added in v0.2.0
type IPAddressCreateRequest struct { // Address Family for IP Address AddressFamily int `json:"address_family"` // Address Type for IP Address Public bool `json:"public"` // CIDR Size for the IP Block created. Valid values depends on the operating system provisioned. CIDR int `json:"cidr,omitempty"` // Reservations are UUIDs of any IP reservations to use when assigning IPs Reservations []string `json:"ip_reservations,omitempty"` }
type IPAddressReservation ¶ added in v0.2.0
type IPAddressReservation struct { IpAddressCommon Assignments []*IPAddressAssignment `json:"assignments"` Facility *Facility `json:"facility,omitempty"` Available string `json:"available"` Addon bool `json:"addon"` Bill bool `json:"bill"` State IPReservationState `json:"state"` Description *string `json:"details"` Enabled bool `json:"enabled"` MetalGateway *MetalGatewayLite `json:"metal_gateway,omitempty"` RequestedBy *UserLite `json:"requested_by,omitempty"` }
IPAddressReservation is created when user sends IP reservation request for a project (considering it's within quota).
func (IPAddressReservation) String ¶ added in v0.2.0
func (i IPAddressReservation) String() string
type IPAddressUpdateRequest ¶ added in v0.22.0
type IPAddressUpdateRequest struct { Tags *[]string `json:"tags,omitempty"` Description *string `json:"details,omitempty"` CustomData interface{} `json:"customdata,omitempty"` }
IPAddressUpdateRequest represents the body of an IPAddress patch
type IPReservationCreateRequest ¶ added in v0.23.0
type IPReservationCreateRequest struct { // Type of IP reservation. Type IPReservationType `json:"type"` Quantity int `json:"quantity"` Description string `json:"details,omitempty"` Facility *string `json:"facility,omitempty"` Metro *string `json:"metro,omitempty"` Tags []string `json:"tags,omitempty"` CustomData interface{} `json:"customdata,omitempty"` // FailOnApprovalRequired if the IP request cannot be approved // automatically, rather than sending to the longer Equinix Metal approval // process, fail immediately with a 422 error FailOnApprovalRequired bool `json:"fail_on_approval_required,omitempty"` // Comments in support of the request for additional addresses when the // request must be manually approved. Comments string `json:"comments,omitempty"` // VRFID is the ID of the VRF to associate and draw the IP range from. // * Required when Type is VRFIPRange, not valid otherwise // * Network and CIDR are required when set // * Metro and Facility are not required when set VRFID string `json:"vrf_id,omitempty"` // Network an unreserved network address from an existing VRF ip_range. // * Required when Type is VRFIPRange, not valid otherwise Network string `json:"network,omitempty"` // CIDR the size of the network to reserve from an existing VRF ip_range. // * Required when Type is VRFIPRange, not valid otherwise // * Minimum range is 22-29, with 30-31 supported and necessary for virtual-circuits CIDR int `json:"cidr,omitempty"` }
IPReservationCreateRequest represents the body of an IP reservation request.
type IPReservationRequest ¶
type IPReservationRequest = IPReservationCreateRequest
IPReservationRequest represents the body of an IP reservation request Deprecated: use IPReservationCreateRequest
type IPReservationState ¶ added in v0.21.0
type IPReservationState string
const ( // IPReservationStatePending fixed string representation of pending IPReservationStatePending IPReservationState = "pending" // IPReservationStateCreated fixed string representation of created IPReservationStateCreated IPReservationState = "created" // IPReservationStateDenied fixed string representation of denied IPReservationStateDenied IPReservationState = "denied" )
type IPReservationType ¶ added in v0.23.0
type IPReservationType string
const ( // PublicIPv4 fixed string representation of public ipv4 PublicIPv4 IPReservationType = "public_ipv4" // PrivateIPv4 fixed string representation of private ipv4 PrivateIPv4 IPReservationType = "private_ipv4" // GlobalIPv4 fixed string representation of global ipv4 GlobalIPv4 IPReservationType = "global_ipv4" // PublicIPv6 fixed string representation of public ipv6 PublicIPv6 IPReservationType = "public_ipv6" // PrivateIPv6 fixed string representation of private ipv6 PrivateIPv6 IPReservationType = "private_ipv6" // GlobalIPv6 fixed string representation of global ipv6 GlobalIPv6 IPReservationType = "global_ipv6" // VRFIPRange fixed string representation of vrf (virtual routing and forwarding). This may be any VRF supported range, including public and RFC-1918 IPv4 and IPv6 ranges. VRFIPRange IPReservationType = "vrf" )
type Invitation ¶ added in v0.27.0
type Invitation struct { *Href `json:",inline"` ID string `json:"id,omitempty"` Invitation Href `json:"invitation,omitempty"` InvitedBy Href `json:"invited_by,omitempty"` Invitee string `json:"invitee,omitempty"` Nonce string `json:"nonce,omitempty"` Organization Href `json:"organization,omitempty"` Projects []Href `json:"projects,omitempty"` Roles []string `json:"roles,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` }
Invitation represents an Equinix Metal invitation
func (Invitation) String ¶ added in v0.27.0
func (u Invitation) String() string
type InvitationCreateRequest ¶ added in v0.27.0
type InvitationCreateRequest struct { // Invitee is the email address of the recipient Invitee string `json:"invitee"` Message string `json:"message,omitempty"` ProjectsIDs []string `json:"projects_ids,omitempty"` Roles []string `json:"roles,omitempty"` }
InvitationCreateRequest struct for InvitationService.Create
type InvitationService ¶ added in v0.27.0
type InvitationService interface { Create(string, *InvitationCreateRequest, *GetOptions) (*Invitation, *Response, error) List(string, *ListOptions) ([]Invitation, *Response, error) Get(string, *GetOptions) (*Invitation, *Response, error) Accept(string, *InvitationUpdateRequest) (*Invitation, *Response, error) Resend(string) (*Invitation, *Response, error) Delete(string) (*Response, error) }
InvitationService interface defines available invitation methods
type InvitationServiceOp ¶ added in v0.27.0
type InvitationServiceOp struct {
// contains filtered or unexported fields
}
InvitationServiceOp implements InvitationService
func (*InvitationServiceOp) Accept ¶ added in v0.27.0
func (s *InvitationServiceOp) Accept(id string, updateRequest *InvitationUpdateRequest) (*Invitation, *Response, error)
Update updates the current invitation
func (*InvitationServiceOp) Create ¶ added in v0.27.0
func (s *InvitationServiceOp) Create(organizationID string, createRequest *InvitationCreateRequest, opts *GetOptions) (*Invitation, *Response, error)
Create a Invitation with the given InvitationCreateRequest. New invitation VerificationStage will be AccountCreated, unless InvitationCreateRequest contains an valid InvitationID and Nonce in which case the VerificationStage will be Verified.
func (*InvitationServiceOp) Delete ¶ added in v0.27.0
func (s *InvitationServiceOp) Delete(id string) (*Response, error)
Update updates the current invitation
func (*InvitationServiceOp) Get ¶ added in v0.27.0
func (s *InvitationServiceOp) Get(invitationID string, opts *GetOptions) (*Invitation, *Response, error)
func (*InvitationServiceOp) List ¶ added in v0.27.0
func (s *InvitationServiceOp) List(organizationID string, opts *ListOptions) (invitations []Invitation, resp *Response, err error)
Lists open invitations to the project
func (*InvitationServiceOp) Resend ¶ added in v0.27.0
func (s *InvitationServiceOp) Resend(id string) (*Invitation, *Response, error)
Update updates the current invitation
type InvitationUpdateRequest ¶ added in v0.27.0
type InvitationUpdateRequest struct{}
InvitationUpdateRequest struct for InvitationService.Update
type IpAddressCommon ¶ added in v0.2.0
type IpAddressCommon struct { ID string `json:"id"` Address string `json:"address"` Gateway string `json:"gateway"` Network string `json:"network"` AddressFamily int `json:"address_family"` Netmask string `json:"netmask"` Public bool `json:"public"` CIDR int `json:"cidr"` Created string `json:"created_at,omitempty"` Updated string `json:"updated_at,omitempty"` Href string `json:"href"` Management bool `json:"management"` Manageable bool `json:"manageable"` Metro *Metro `json:"metro,omitempty"` Project Href `json:"project"` Global bool `json:"global_ip"` Tags []string `json:"tags,omitempty"` ParentBlock *ParentBlock `json:"parent_block,omitempty"` CustomData interface{} `json:"customdata,omitempty"` Type IPReservationType `json:"type"` VRF *VRF `json:"vrf,omitempty"` }
type ListOptions ¶
type ListOptions = GetOptions
type ListSortDirection ¶ added in v0.6.0
type ListSortDirection string
const ( SortDirectionAsc ListSortDirection = "asc" SortDirectionDesc ListSortDirection = "desc" )
type Member ¶ added in v0.28.0
type Member struct { *Href `json:",inline"` ID string `json:"id"` Roles []string `json:"roles"` ProjectsCount int `json:"projects_count"` User User `json:"user"` Organization Organization `json:"organization"` Projects []Project `json:"projects"` }
Member is the returned from organization/id/members
type MemberService ¶ added in v0.28.0
type MemberService interface { List(string, *ListOptions) ([]Member, *Response, error) Delete(string, string) (*Response, error) }
OrganizationService interface defines available organization methods
type MemberServiceOp ¶ added in v0.28.0
type MemberServiceOp struct {
// contains filtered or unexported fields
}
MemberServiceOp implements MemberService
func (*MemberServiceOp) Delete ¶ added in v0.28.0
func (s *MemberServiceOp) Delete(organizationID, memberID string) (*Response, error)
Delete removes the given member from the given organization
func (*MemberServiceOp) List ¶ added in v0.28.0
func (s *MemberServiceOp) List(organizationID string, opts *ListOptions) (orgs []Member, resp *Response, err error)
List returns the members in an organization
type Memory ¶
type Memory struct {
Total string `json:"total,omitempty"`
}
Memory - the RAM config details for specs on a plan
type MetalGateway ¶ added in v0.17.0
type MetalGateway struct { ID string `json:"id"` State MetalGatewayState `json:"state"` Project *Project `json:"project,omitempty"` VirtualNetwork *VirtualNetwork `json:"virtual_network,omitempty"` IPReservation *IPAddressReservation `json:"ip_reservation,omitempty"` Href string `json:"href"` CreatedAt string `json:"created_at,omitempty"` UpdatedAt string `json:"updated_at,omitempty"` VRF *VRF `json:"vrf,omitempty"` }
type MetalGatewayCreateRequest ¶ added in v0.17.0
type MetalGatewayCreateRequest struct { // VirtualNetworkID virtual network UUID. VirtualNetworkID string `json:"virtual_network_id"` // IPReservationID (optional) IP Reservation UUID (Public or VRF). Required for VRF. IPReservationID string `json:"ip_reservation_id,omitempty"` // PrivateIPv4SubnetSize (optional) Power of 2 between 8 and 128 (8, 16, 32, 64, 128). Invalid for VRF. PrivateIPv4SubnetSize int `json:"private_ipv4_subnet_size,omitempty"` }
type MetalGatewayLite ¶ added in v0.22.0
type MetalGatewayLite struct { ID string `json:"id,omitempty"` // The current state of the Metal Gateway. 'Ready' indicates the gateway record has been configured, but is currently not active on the network. 'Active' indicates the gateway has been configured on the network. 'Deleting' is a temporary state used to indicate that the gateway is in the process of being un-configured from the network, after which the gateway record will be deleted. State string `json:"state,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` // The gateway address with subnet CIDR value for this Metal Gateway. For example, a Metal Gateway using an IP reservation with block 10.1.2.0/27 would have a gateway address of 10.1.2.1/27. GatewayAddress string `json:"gateway_address,omitempty"` // The VLAN id of the Virtual Network record associated to this Metal Gateway. Example: 1001. VLAN int `json:"vlan,omitempty"` Href string `json:"href,omitempty"` }
MetalGatewayLite struct representation of a Metal Gateway
type MetalGatewayService ¶ added in v0.17.0
type MetalGatewayService interface { List(projectID string, opts *ListOptions) ([]MetalGateway, *Response, error) Create(projectID string, input *MetalGatewayCreateRequest) (*MetalGateway, *Response, error) Get(metalGatewayID string, opts *GetOptions) (*MetalGateway, *Response, error) Delete(metalGatewayID string) (*Response, error) }
type MetalGatewayServiceOp ¶ added in v0.17.0
type MetalGatewayServiceOp struct {
// contains filtered or unexported fields
}
func (*MetalGatewayServiceOp) Create ¶ added in v0.17.0
func (s *MetalGatewayServiceOp) Create(projectID string, input *MetalGatewayCreateRequest) (*MetalGateway, *Response, error)
func (*MetalGatewayServiceOp) Delete ¶ added in v0.17.0
func (s *MetalGatewayServiceOp) Delete(metalGatewayID string) (*Response, error)
func (*MetalGatewayServiceOp) Get ¶ added in v0.17.0
func (s *MetalGatewayServiceOp) Get(metalGatewayID string, opts *GetOptions) (*MetalGateway, *Response, error)
func (*MetalGatewayServiceOp) List ¶ added in v0.17.0
func (s *MetalGatewayServiceOp) List(projectID string, opts *ListOptions) (metalGateways []MetalGateway, resp *Response, err error)
type MetalGatewayState ¶ added in v0.17.0
type MetalGatewayState string
const ( MetalGatewayActive MetalGatewayState = "active" MetalGatewayReady MetalGatewayState = "ready" MetalGatewayDeleting MetalGatewayState = "deleting" )
type Metro ¶ added in v0.8.0
type Metro struct { ID string `json:"id"` Name string `json:"name,omitempty"` Code string `json:"code,omitempty"` Country string `json:"country,omitempty"` }
Metro represents an Equinix Metal metro
type MetroPricing ¶ added in v0.26.0
type MetroPricing map[string]AnnualReservationPricing
type MetroService ¶ added in v0.8.0
type MetroService interface {
List(*ListOptions) ([]Metro, *Response, error)
}
MetroService interface defines available metro methods
type MetroServiceOp ¶ added in v0.8.0
type MetroServiceOp struct {
// contains filtered or unexported fields
}
MetroServiceOp implements MetroService
func (*MetroServiceOp) List ¶ added in v0.8.0
func (s *MetroServiceOp) List(opts *ListOptions) ([]Metro, *Response, error)
List returns all metros
type NetworkInfo ¶ added in v0.2.0
type Notification ¶ added in v0.2.0
type Notification struct { ID string `json:"id,omitempty"` Type string `json:"type,omitempty"` Body string `json:"body,omitempty"` Severity string `json:"severity,omitempty"` Read bool `json:"read,omitempty"` Context string `json:"context,omitempty"` CreatedAt Timestamp `json:"created_at,omitempty"` UpdatedAt Timestamp `json:"updated_at,omitempty"` User Href `json:"user,omitempty"` Href string `json:"href,omitempty"` }
Notification struct
type NotificationService ¶ added in v0.2.0
type NotificationService interface { List(*ListOptions) ([]Notification, *Response, error) Get(string, *GetOptions) (*Notification, *Response, error) MarkAsRead(string) (*Notification, *Response, error) }
NotificationService interface defines available event functions
type NotificationServiceOp ¶ added in v0.2.0
type NotificationServiceOp struct {
// contains filtered or unexported fields
}
NotificationServiceOp implements NotificationService
func (*NotificationServiceOp) Get ¶ added in v0.2.0
func (s *NotificationServiceOp) Get(notificationID string, opts *GetOptions) (*Notification, *Response, error)
Get returns a notification by ID
func (*NotificationServiceOp) List ¶ added in v0.2.0
func (s *NotificationServiceOp) List(listOpt *ListOptions) ([]Notification, *Response, error)
List returns all notifications
func (*NotificationServiceOp) MarkAsRead ¶ added in v0.2.0
func (s *NotificationServiceOp) MarkAsRead(notificationID string) (*Notification, *Response, error)
Marks notification as read by ID
type OS ¶
type OS struct { Name string `json:"name"` Slug string `json:"slug"` Distro string `json:"distro"` Version string `json:"version"` ProvisionableOn []string `json:"provisionable_on"` }
OS represents an Equinix Metal operating system
type OSServiceOp ¶
type OSServiceOp struct {
// contains filtered or unexported fields
}
OSServiceOp implements OSService
type OptionsGetter ¶ added in v0.3.0
type OptionsGetter interface {
GetOptions() *GetOptions
}
OptionsGetter provides GetOptions
type Organization ¶ added in v0.2.0
type Organization struct { ID string `json:"id"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Website string `json:"website,omitempty"` Twitter string `json:"twitter,omitempty"` Created string `json:"created_at,omitempty"` Updated string `json:"updated_at,omitempty"` Address Address `json:"address,omitempty"` TaxID string `json:"tax_id,omitempty"` MainPhone string `json:"main_phone,omitempty"` BillingPhone string `json:"billing_phone,omitempty"` CreditAmount float64 `json:"credit_amount,omitempty"` Logo string `json:"logo,omitempty"` LogoThumb string `json:"logo_thumb,omitempty"` Projects []Project `json:"projects,omitempty"` URL string `json:"href,omitempty"` Members []Member `json:"members,omitempty"` Owners []User `json:"owners,omitempty"` PrimaryOwner User `json:"primary_owner,omitempty"` }
Organization represents an Equinix Metal organization
func (Organization) String ¶ added in v0.2.0
func (o Organization) String() string
type OrganizationCreateRequest ¶ added in v0.2.0
type OrganizationCreateRequest struct { Name string `json:"name"` Description string `json:"description,omitempty"` Website string `json:"website,omitempty"` Twitter string `json:"twitter,omitempty"` Logo string `json:"logo,omitempty"` Address Address `json:"address,omitempty"` }
OrganizationCreateRequest type used to create an Equinix Metal organization
func (OrganizationCreateRequest) String ¶ added in v0.2.0
func (o OrganizationCreateRequest) String() string
type OrganizationService ¶ added in v0.2.0
type OrganizationService interface { List(*ListOptions) ([]Organization, *Response, error) Get(string, *GetOptions) (*Organization, *Response, error) Create(*OrganizationCreateRequest) (*Organization, *Response, error) Update(string, *OrganizationUpdateRequest) (*Organization, *Response, error) Delete(string) (*Response, error) ListPaymentMethods(string) ([]PaymentMethod, *Response, error) ListEvents(string, *ListOptions) ([]Event, *Response, error) }
OrganizationService interface defines available organization methods
type OrganizationServiceOp ¶ added in v0.2.0
type OrganizationServiceOp struct {
// contains filtered or unexported fields
}
OrganizationServiceOp implements OrganizationService
func (*OrganizationServiceOp) Create ¶ added in v0.2.0
func (s *OrganizationServiceOp) Create(createRequest *OrganizationCreateRequest) (*Organization, *Response, error)
Create creates a new organization
func (*OrganizationServiceOp) Delete ¶ added in v0.2.0
func (s *OrganizationServiceOp) Delete(organizationID string) (*Response, error)
Delete deletes an organizationID
func (*OrganizationServiceOp) Get ¶ added in v0.2.0
func (s *OrganizationServiceOp) Get(organizationID string, opts *GetOptions) (*Organization, *Response, error)
Get returns a organization by id
func (*OrganizationServiceOp) List ¶ added in v0.2.0
func (s *OrganizationServiceOp) List(opts *ListOptions) (orgs []Organization, resp *Response, err error)
List returns the user's organizations
func (*OrganizationServiceOp) ListEvents ¶ added in v0.2.0
func (s *OrganizationServiceOp) ListEvents(organizationID string, listOpt *ListOptions) ([]Event, *Response, error)
ListEvents returns list of organization events
func (*OrganizationServiceOp) ListPaymentMethods ¶ added in v0.2.0
func (s *OrganizationServiceOp) ListPaymentMethods(organizationID string) ([]PaymentMethod, *Response, error)
ListPaymentMethods returns PaymentMethods for an organization
func (*OrganizationServiceOp) Update ¶ added in v0.2.0
func (s *OrganizationServiceOp) Update(id string, updateRequest *OrganizationUpdateRequest) (*Organization, *Response, error)
Update updates an organization
type OrganizationUpdateRequest ¶ added in v0.2.0
type OrganizationUpdateRequest struct { Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` Website *string `json:"website,omitempty"` Twitter *string `json:"twitter,omitempty"` Logo *string `json:"logo,omitempty"` Address *Address `json:"address,omitempty"` }
OrganizationUpdateRequest type used to update an Equinix Metal organization
func (OrganizationUpdateRequest) String ¶ added in v0.2.0
func (o OrganizationUpdateRequest) String() string
type ParentBlock ¶ added in v0.17.0
type ParentBlock struct { Network string `json:"network"` Netmask string `json:"netmask"` CIDR int `json:"cidr"` Href *string `json:"href,omitempty"` }
ParentBlock is the network block for the parent of an IP address
type PaymentMethod ¶ added in v0.2.0
type PaymentMethod struct { ID string `json:"id"` Name string `json:"name,omitempty"` Created string `json:"created_at,omitempty"` Updated string `json:"updated_at,omitempty"` Nonce string `json:"nonce,omitempty"` Default bool `json:"default,omitempty"` Organization Organization `json:"organization,omitempty"` Projects []Project `json:"projects,omitempty"` Type string `json:"type,omitempty"` CardholderName string `json:"cardholder_name,omitempty"` ExpMonth string `json:"expiration_month,omitempty"` ExpYear string `json:"expiration_year,omitempty"` Last4 string `json:"last_4,omitempty"` BillingAddress BillingAddress `json:"billing_address,omitempty"` URL string `json:"href,omitempty"` }
PaymentMethod represents an Equinix Metal payment method of an organization
func (PaymentMethod) String ¶ added in v0.2.0
func (pm PaymentMethod) String() string
type PaymentMethodCreateRequest ¶ added in v0.2.0
type PaymentMethodCreateRequest struct { Name string `json:"name"` Nonce string `json:"nonce"` CardholderName string `json:"cardholder_name,omitempty"` ExpMonth string `json:"expiration_month,omitempty"` ExpYear string `json:"expiration_year,omitempty"` BillingAddress string `json:"billing_address,omitempty"` }
PaymentMethodCreateRequest type used to create an Equinix Metal payment method of an organization
func (PaymentMethodCreateRequest) String ¶ added in v0.2.0
func (pm PaymentMethodCreateRequest) String() string
type PaymentMethodService ¶ added in v0.2.0
type PaymentMethodService interface { List() ([]PaymentMethod, *Response, error) Get(string) (*PaymentMethod, *Response, error) Create(*PaymentMethodCreateRequest) (*PaymentMethod, *Response, error) Update(string, *PaymentMethodUpdateRequest) (*PaymentMethod, *Response, error) Delete(string) (*Response, error) }
ProjectService interface defines available project methods
type PaymentMethodServiceOp ¶ added in v0.2.0
type PaymentMethodServiceOp struct { }
PaymentMethodServiceOp implements PaymentMethodService
type PaymentMethodUpdateRequest ¶ added in v0.2.0
type PaymentMethodUpdateRequest struct { Name *string `json:"name,omitempty"` CardholderName *string `json:"cardholder_name,omitempty"` ExpMonth *string `json:"expiration_month,omitempty"` ExpYear *string `json:"expiration_year,omitempty"` BillingAddress *string `json:"billing_address,omitempty"` }
PaymentMethodUpdateRequest type used to update an Equinix Metal payment method of an organization
func (PaymentMethodUpdateRequest) String ¶ added in v0.2.0
func (pm PaymentMethodUpdateRequest) String() string
type Plan ¶
type Plan struct { ID string `json:"id"` Slug string `json:"slug,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Line string `json:"line,omitempty"` Legacy bool `json:"legacy,omitempty"` Specs *Specs `json:"specs,omitempty"` Pricing *Pricing `json:"pricing,omitempty"` DeploymentTypes []string `json:"deployment_types"` Class string `json:"class"` AvailableIn []Facility `json:"available_in"` AvailableInMetros []Metro `json:"available_in_metros"` ReservationPricing *ReservationPricing `json:"reservation_pricing,omitempty"` Href string `json:"href,omitempty"` }
Plan represents an Equinix Metal service plan
type PlanService ¶
type PlanService interface { List(*ListOptions) ([]Plan, *Response, error) ProjectList(string, *ListOptions) ([]Plan, *Response, error) OrganizationList(string, *ListOptions) ([]Plan, *Response, error) }
PlanService interface defines available plan methods
type PlanServiceOp ¶
type PlanServiceOp struct {
// contains filtered or unexported fields
}
PlanServiceOp implements PlanService
func (*PlanServiceOp) List ¶
func (s *PlanServiceOp) List(opts *ListOptions) ([]Plan, *Response, error)
List method returns all available plans
func (*PlanServiceOp) OrganizationList ¶ added in v0.6.0
func (s *PlanServiceOp) OrganizationList(organizationID string, opts *ListOptions) ([]Plan, *Response, error)
OrganizationList method returns plans available in an organization
func (*PlanServiceOp) ProjectList ¶ added in v0.6.0
func (s *PlanServiceOp) ProjectList(projectID string, opts *ListOptions) ([]Plan, *Response, error)
ProjectList method returns plans available in a project
type Port ¶ added in v0.2.0
type Port struct { *Href `json:",inline"` // ID of the Port ID string `json:"id"` // Type is either "NetworkBondPort" for bond ports or "NetworkPort" for // bondable ethernet ports Type string `json:"type"` // Name of the interface for this port (such as "bond0" or "eth0") Name string `json:"name"` // Data about the port Data PortData `json:"data,omitempty"` // Indicates whether or not the bond can be broken on the port (when applicable). DisbondOperationSupported bool `json:"disbond_operation_supported,omitempty"` // NetworkType is either of layer2-bonded, layer2-individual, layer3, // hybrid, hybrid-bonded NetworkType string `json:"network_type,omitempty"` // NativeVirtualNetwork is the Native VLAN attached to the port // <https://metal.equinix.com/developers/docs/layer2-networking/native-vlan> NativeVirtualNetwork *VirtualNetwork `json:"native_virtual_network,omitempty"` // VLANs attached to the port AttachedVirtualNetworks []VirtualNetwork `json:"virtual_networks,omitempty"` // Bond details for ports with a NetworkPort type Bond *BondData `json:"bond,omitempty"` }
Port is a hardware port associated with a reserved or instantiated hardware device.
type PortAssignRequest ¶ added in v0.2.0
type PortService ¶ added in v0.7.0
type PortService interface { Assign(string, string) (*Port, *Response, error) Unassign(string, string) (*Port, *Response, error) AssignNative(string, string) (*Port, *Response, error) UnassignNative(string) (*Port, *Response, error) Bond(string, bool) (*Port, *Response, error) Disbond(string, bool) (*Port, *Response, error) ConvertToLayerTwo(string) (*Port, *Response, error) ConvertToLayerThree(string, []AddressRequest) (*Port, *Response, error) Get(string, *GetOptions) (*Port, *Response, error) }
PortService handles operations on a port
type PortServiceOp ¶ added in v0.7.0
type PortServiceOp struct {
// contains filtered or unexported fields
}
func (*PortServiceOp) Assign ¶ added in v0.7.0
func (i *PortServiceOp) Assign(portID, vlanID string) (*Port, *Response, error)
Assign adds a VLAN to a port
func (*PortServiceOp) AssignNative ¶ added in v0.7.0
func (i *PortServiceOp) AssignNative(portID, vlanID string) (*Port, *Response, error)
AssignNative assigns a virtual network to the port as a "native VLAN" The VLAN being assigned MUST first be added as a vlan using Assign() before you may assign it as the native VLAN
func (*PortServiceOp) ConvertToLayerThree ¶ added in v0.7.0
func (i *PortServiceOp) ConvertToLayerThree(portID string, ips []AddressRequest) (*Port, *Response, error)
ConvertToLayerThree converts a bond port to Layer 3. VLANs must first be unassigned.
func (*PortServiceOp) ConvertToLayerTwo ¶ added in v0.7.0
func (i *PortServiceOp) ConvertToLayerTwo(portID string) (*Port, *Response, error)
ConvertToLayerTwo converts a bond port to Layer 2. IP assignments of the port will be removed.
portID is the UUID of a Bonding Port
func (*PortServiceOp) Get ¶ added in v0.7.0
func (s *PortServiceOp) Get(portID string, opts *GetOptions) (*Port, *Response, error)
Get returns a port by id
func (*PortServiceOp) Unassign ¶ added in v0.7.0
func (i *PortServiceOp) Unassign(portID, vlanID string) (*Port, *Response, error)
Unassign removes a VLAN from the port
func (*PortServiceOp) UnassignNative ¶ added in v0.7.0
func (i *PortServiceOp) UnassignNative(portID string) (*Port, *Response, error)
UnassignNative removes native VLAN from the supplied port
type Project ¶
type Project struct { ID string `json:"id"` Name string `json:"name,omitempty"` Organization Organization `json:"organization,omitempty"` Created string `json:"created_at,omitempty"` Updated string `json:"updated_at,omitempty"` Users []User `json:"members,omitempty"` Devices []Device `json:"devices,omitempty"` SSHKeys []SSHKey `json:"ssh_keys,omitempty"` URL string `json:"href,omitempty"` PaymentMethod PaymentMethod `json:"payment_method,omitempty"` BackendTransfer bool `json:"backend_transfer_enabled"` }
Project represents an Equinix Metal project
type ProjectCreateRequest ¶
type ProjectCreateRequest struct { Name string `json:"name"` PaymentMethodID string `json:"payment_method_id,omitempty"` OrganizationID string `json:"organization_id,omitempty"` }
ProjectCreateRequest type used to create an Equinix Metal project
func (ProjectCreateRequest) String ¶
func (p ProjectCreateRequest) String() string
type ProjectIPService ¶ added in v0.2.0
type ProjectIPService interface { Get(reservationID string, getOpt *GetOptions) (*IPAddressReservation, *Response, error) List(projectID string, opts *ListOptions) ([]IPAddressReservation, *Response, error) // Deprecated Use Create instead of Request Request(projectID string, ipReservationReq *IPReservationRequest) (*IPAddressReservation, *Response, error) Create(projectID string, ipReservationReq *IPReservationCreateRequest) (*IPAddressReservation, *Response, error) Delete(ipReservationID string) (*Response, error) // Deprecated Use Delete instead of Remove Remove(ipReservationID string) (*Response, error) Update(assignmentID string, updateRequest *IPAddressUpdateRequest, opt *GetOptions) (*IPAddressReservation, *Response, error) AvailableAddresses(ipReservationID string, r *AvailableRequest) ([]string, *Response, error) }
ProjectIPService handles reservation of IP address blocks for a project.
type ProjectIPServiceOp ¶ added in v0.2.0
type ProjectIPServiceOp struct {
// contains filtered or unexported fields
}
ProjectIPServiceOp is interface for IP assignment methods.
func (*ProjectIPServiceOp) AvailableAddresses ¶ added in v0.2.0
func (i *ProjectIPServiceOp) AvailableAddresses(ipReservationID string, r *AvailableRequest) ([]string, *Response, error)
AvailableAddresses lists addresses available from a reserved block
func (*ProjectIPServiceOp) Create ¶ added in v0.23.0
func (i *ProjectIPServiceOp) Create(projectID string, ipReservationReq *IPReservationCreateRequest) (*IPAddressReservation, *Response, error)
Create creates a request for more IP space for a project in order to have additional IP addresses to assign to devices.
func (*ProjectIPServiceOp) Delete ¶ added in v0.23.0
func (i *ProjectIPServiceOp) Delete(ipReservationID string) (*Response, error)
Delete removes the requests for specific IP within a project
func (*ProjectIPServiceOp) Get ¶ added in v0.2.0
func (i *ProjectIPServiceOp) Get(reservationID string, opts *GetOptions) (*IPAddressReservation, *Response, error)
Get returns reservation by ID.
func (*ProjectIPServiceOp) List ¶ added in v0.2.0
func (i *ProjectIPServiceOp) List(projectID string, opts *ListOptions) ([]IPAddressReservation, *Response, error)
List provides a list of IP resevations for a single project. opts be filtered to limit the type of reservations returned: opts.Filter("type", "vrf")
func (*ProjectIPServiceOp) Remove ¶ added in v0.2.0
func (i *ProjectIPServiceOp) Remove(ipReservationID string) (*Response, error)
Remove removes an IP reservation from the project. Deprecated: Use Delete instead.
func (*ProjectIPServiceOp) Request
deprecated
added in
v0.2.0
func (i *ProjectIPServiceOp) Request(projectID string, ipReservationReq *IPReservationRequest) (*IPAddressReservation, *Response, error)
Request requests more IP space for a project in order to have additional IP addresses to assign to devices.
Deprecated: Use Create instead.
func (*ProjectIPServiceOp) Update ¶ added in v0.22.0
func (i *ProjectIPServiceOp) Update(reservationID string, updateRequest *IPAddressUpdateRequest, opts *GetOptions) (*IPAddressReservation, *Response, error)
Update updates an existing IP reservation.
type ProjectService ¶
type ProjectService interface { List(listOpt *ListOptions) ([]Project, *Response, error) Get(string, *GetOptions) (*Project, *Response, error) Create(*ProjectCreateRequest) (*Project, *Response, error) Update(string, *ProjectUpdateRequest) (*Project, *Response, error) Delete(string) (*Response, error) ListBGPSessions(projectID string, listOpt *ListOptions) ([]BGPSession, *Response, error) DiscoverBGPSessions(projectID string, getOpt *GetOptions) (*BGPDiscoverResponse, *Response, error) ListEvents(string, *ListOptions) ([]Event, *Response, error) ListSSHKeys(projectID string, searchOpt *SearchOptions) ([]SSHKey, *Response, error) }
ProjectService interface defines available project methods
type ProjectServiceOp ¶
type ProjectServiceOp struct {
// contains filtered or unexported fields
}
ProjectServiceOp implements ProjectService
func (*ProjectServiceOp) Create ¶
func (s *ProjectServiceOp) Create(createRequest *ProjectCreateRequest) (*Project, *Response, error)
Create creates a new project
func (*ProjectServiceOp) Delete ¶
func (s *ProjectServiceOp) Delete(projectID string) (*Response, error)
Delete deletes a project
func (*ProjectServiceOp) DiscoverBGPSessions ¶ added in v0.23.0
func (p *ProjectServiceOp) DiscoverBGPSessions(projectID string, opts *GetOptions) (*BGPDiscoverResponse, *Response, error)
Discover refreshes BGP session status
func (*ProjectServiceOp) Get ¶
func (s *ProjectServiceOp) Get(projectID string, opts *GetOptions) (*Project, *Response, error)
Get returns a project by id
func (*ProjectServiceOp) List ¶
func (s *ProjectServiceOp) List(opts *ListOptions) (projects []Project, resp *Response, err error)
List returns the user's projects
func (*ProjectServiceOp) ListBGPSessions ¶ added in v0.2.0
func (s *ProjectServiceOp) ListBGPSessions(projectID string, opts *ListOptions) (bgpSessions []BGPSession, resp *Response, err error)
ListBGPSessions returns all BGP Sessions associated with the project
func (*ProjectServiceOp) ListEvents ¶ added in v0.2.0
func (s *ProjectServiceOp) ListEvents(projectID string, listOpt *ListOptions) ([]Event, *Response, error)
ListEvents returns list of project events
func (*ProjectServiceOp) ListSSHKeys ¶ added in v0.3.0
func (s *ProjectServiceOp) ListSSHKeys(projectID string, opts *SearchOptions) (sshKeys []SSHKey, resp *Response, err error)
ListSSHKeys returns all SSH Keys associated with the project
func (*ProjectServiceOp) Update ¶
func (s *ProjectServiceOp) Update(id string, updateRequest *ProjectUpdateRequest) (*Project, *Response, error)
Update updates a project
type ProjectUpdateRequest ¶
type ProjectUpdateRequest struct { Name *string `json:"name,omitempty"` PaymentMethodID *string `json:"payment_method_id,omitempty"` BackendTransfer *bool `json:"backend_transfer_enabled,omitempty"` }
ProjectUpdateRequest type used to update an Equinix Metal project
func (ProjectUpdateRequest) String ¶
func (p ProjectUpdateRequest) String() string
type ProjectVirtualNetworkService ¶ added in v0.2.0
type ProjectVirtualNetworkService interface { List(projectID string, opts *ListOptions) (*VirtualNetworkListResponse, *Response, error) Create(*VirtualNetworkCreateRequest) (*VirtualNetwork, *Response, error) Get(string, *GetOptions) (*VirtualNetwork, *Response, error) Delete(virtualNetworkID string) (*Response, error) }
DevicePortService handles operations on a port which belongs to a particular device
type ProjectVirtualNetworkServiceOp ¶ added in v0.2.0
type ProjectVirtualNetworkServiceOp struct {
// contains filtered or unexported fields
}
func (*ProjectVirtualNetworkServiceOp) Create ¶ added in v0.2.0
func (i *ProjectVirtualNetworkServiceOp) Create(input *VirtualNetworkCreateRequest) (*VirtualNetwork, *Response, error)
func (*ProjectVirtualNetworkServiceOp) Delete ¶ added in v0.2.0
func (i *ProjectVirtualNetworkServiceOp) Delete(virtualNetworkID string) (*Response, error)
func (*ProjectVirtualNetworkServiceOp) Get ¶ added in v0.2.0
func (i *ProjectVirtualNetworkServiceOp) Get(vlanID string, opts *GetOptions) (*VirtualNetwork, *Response, error)
func (*ProjectVirtualNetworkServiceOp) List ¶ added in v0.2.0
func (i *ProjectVirtualNetworkServiceOp) List(projectID string, opts *ListOptions) (*VirtualNetworkListResponse, *Response, error)
type QueryAppender ¶ added in v0.6.0
type Rate ¶
type Rate struct { RequestLimit int `json:"request_limit"` RequestsRemaining int `json:"requests_remaining"` Reset Timestamp `json:"rate_reset"` }
Rate provides the API request rate limit details
type ReservationPricing ¶ added in v0.26.0
type ReservationPricing struct { AnnualReservationPricing Metros MetroPricing }
ReservationPricing - The reserved pricing for a plan
func (ReservationPricing) String ¶ added in v0.26.0
func (r ReservationPricing) String() string
func (*ReservationPricing) UnmarshalJSON ¶ added in v0.26.0
func (r *ReservationPricing) UnmarshalJSON(data []byte) error
UnmarshalJSON - Custom unmarshal function to set up the ReservationPricing object
type SSHKey ¶
type SSHKey struct { ID string `json:"id"` Label string `json:"label"` Key string `json:"key"` FingerPrint string `json:"fingerprint"` Created string `json:"created_at"` Updated string `json:"updated_at"` Owner Href URL string `json:"href,omitempty"` }
SSHKey represents a user's ssh key
type SSHKeyCreateRequest ¶
type SSHKeyCreateRequest struct { Label string `json:"label"` Key string `json:"key"` ProjectID string `json:"-"` }
SSHKeyCreateRequest type used to create an ssh key
func (SSHKeyCreateRequest) String ¶
func (s SSHKeyCreateRequest) String() string
type SSHKeyService ¶
type SSHKeyService interface { List() ([]SSHKey, *Response, error) ProjectList(string) ([]SSHKey, *Response, error) Get(string, *GetOptions) (*SSHKey, *Response, error) Create(*SSHKeyCreateRequest) (*SSHKey, *Response, error) Update(string, *SSHKeyUpdateRequest) (*SSHKey, *Response, error) Delete(string) (*Response, error) }
SSHKeyService interface defines available device methods
type SSHKeyServiceOp ¶
type SSHKeyServiceOp struct {
// contains filtered or unexported fields
}
SSHKeyServiceOp implements SSHKeyService
func (*SSHKeyServiceOp) Create ¶
func (s *SSHKeyServiceOp) Create(createRequest *SSHKeyCreateRequest) (*SSHKey, *Response, error)
Create creates a new ssh key
func (*SSHKeyServiceOp) Delete ¶
func (s *SSHKeyServiceOp) Delete(sshKeyID string) (*Response, error)
Delete deletes an ssh key
func (*SSHKeyServiceOp) Get ¶
func (s *SSHKeyServiceOp) Get(sshKeyID string, opts *GetOptions) (*SSHKey, *Response, error)
Get returns an ssh key by id
func (*SSHKeyServiceOp) List ¶
func (s *SSHKeyServiceOp) List() ([]SSHKey, *Response, error)
List returns a user's ssh keys
func (*SSHKeyServiceOp) ProjectList ¶ added in v0.2.0
func (s *SSHKeyServiceOp) ProjectList(projectID string) ([]SSHKey, *Response, error)
ProjectList lists ssh keys of a project Deprecated: Use ProjectServiceOp.ListSSHKeys
func (*SSHKeyServiceOp) Update ¶
func (s *SSHKeyServiceOp) Update(id string, updateRequest *SSHKeyUpdateRequest) (*SSHKey, *Response, error)
Update updates an ssh key
type SSHKeyUpdateRequest ¶
type SSHKeyUpdateRequest struct { Label *string `json:"label,omitempty"` Key *string `json:"key,omitempty"` }
SSHKeyUpdateRequest type used to update an ssh key
func (SSHKeyUpdateRequest) String ¶
func (s SSHKeyUpdateRequest) String() string
type SearchOptions ¶ added in v0.3.0
type SearchOptions = GetOptions
type ServerInfo ¶ added in v0.2.0
type ServerInfo struct { Facility string `json:"facility,omitempty"` Metro string `json:"metro,omitempty"` Plan string `json:"plan,omitempty"` Quantity int `json:"quantity,omitempty"` Available bool `json:"available,omitempty"` }
ServerInfo struct
type SnapshotPolicy ¶
type SnapshotPolicy struct { ID string `json:"id"` Href string `json:"href"` SnapshotFrequency string `json:"snapshot_frequency,omitempty"` SnapshotCount int `json:"snapshot_count,omitempty"` }
SnapshotPolicy used to execute actions on volume
type SocialAccounts ¶ added in v0.17.0
type SocialAccounts struct { GitHub string `json:"github,omitempty"` LinkedIn string `json:"linkedin,omitempty"` Twitter string `json:"twitter,omitempty"` Gravatar string `json:"gravatar,omitempty"` Keybase string `json:"keybase,omitempty"` }
SocialAccounts are social usernames or urls
type Specs ¶
type Specs struct { Cpus []*Cpus `json:"cpus,omitempty"` Memory *Memory `json:"memory,omitempty"` Drives []*Drives `json:"drives,omitempty"` Nics []*Nics `json:"nics,omitempty"` Features *Features `json:"features,omitempty"` }
Specs - the server specs for a plan
type SpotMarketRequest ¶ added in v0.2.0
type SpotMarketRequestCreateRequest ¶ added in v0.2.0
type SpotMarketRequestCreateRequest struct { DevicesMax int `json:"devices_max"` DevicesMin int `json:"devices_min"` EndAt *Timestamp `json:"end_at,omitempty"` FacilityIDs []string `json:"facilities,omitempty"` Metro string `json:"metro,omitempty"` MaxBidPrice float64 `json:"max_bid_price"` Parameters SpotMarketRequestInstanceParameters `json:"instance_parameters"` }
type SpotMarketRequestInstanceParameters ¶ added in v0.2.0
type SpotMarketRequestInstanceParameters struct { AlwaysPXE bool `json:"always_pxe,omitempty"` IPXEScriptURL string `json:"ipxe_script_url,omitempty"` BillingCycle string `json:"billing_cycle"` CustomData string `json:"customdata,omitempty"` Description string `json:"description,omitempty"` Features []string `json:"features,omitempty"` Hostname string `json:"hostname,omitempty"` Hostnames []string `json:"hostnames,omitempty"` Locked bool `json:"locked,omitempty"` OperatingSystem string `json:"operating_system"` Plan string `json:"plan"` ProjectSSHKeys []string `json:"project_ssh_keys,omitempty"` Tags []string `json:"tags"` TerminationTime *Timestamp `json:"termination_time,omitempty"` UserSSHKeys []string `json:"user_ssh_keys,omitempty"` UserData string `json:"userdata"` }
type SpotMarketRequestService ¶ added in v0.2.0
type SpotMarketRequestService interface { List(string, *ListOptions) ([]SpotMarketRequest, *Response, error) Create(*SpotMarketRequestCreateRequest, string) (*SpotMarketRequest, *Response, error) Delete(string, bool) (*Response, error) Get(string, *GetOptions) (*SpotMarketRequest, *Response, error) }
type SpotMarketRequestServiceOp ¶ added in v0.2.0
type SpotMarketRequestServiceOp struct {
// contains filtered or unexported fields
}
func (*SpotMarketRequestServiceOp) Create ¶ added in v0.2.0
func (s *SpotMarketRequestServiceOp) Create(cr *SpotMarketRequestCreateRequest, pID string) (*SpotMarketRequest, *Response, error)
func (*SpotMarketRequestServiceOp) Delete ¶ added in v0.2.0
func (s *SpotMarketRequestServiceOp) Delete(id string, forceDelete bool) (*Response, error)
func (*SpotMarketRequestServiceOp) Get ¶ added in v0.2.0
func (s *SpotMarketRequestServiceOp) Get(id string, opts *GetOptions) (*SpotMarketRequest, *Response, error)
func (*SpotMarketRequestServiceOp) List ¶ added in v0.2.0
func (s *SpotMarketRequestServiceOp) List(pID string, opts *ListOptions) ([]SpotMarketRequest, *Response, error)
type SpotMarketService ¶ added in v0.2.0
type SpotMarketService interface { // Prices gets current spot market prices by facility. // // Deprecated: Use PricesByFacility Prices() (PriceMap, *Response, error) // PricesByFacility gets current spot market prices by facility. The map is // indexed by facility code and then plan name. PricesByFacility() (PriceMap, *Response, error) // PricesByMetro gets current spot market prices by metro. The map is // indexed by metro code and then plan name. PricesByMetro() (PriceMap, *Response, error) }
SpotMarketService expooses Spot Market methods
type SpotMarketServiceOp ¶ added in v0.2.0
type SpotMarketServiceOp struct {
// contains filtered or unexported fields
}
SpotMarketServiceOp implements SpotMarketService
func (*SpotMarketServiceOp) Prices
deprecated
added in
v0.2.0
func (s *SpotMarketServiceOp) Prices() (PriceMap, *Response, error)
Prices gets current spot market prices by facility.
Deprecated: Use PricesByFacility which this function thinly wraps.
func (*SpotMarketServiceOp) PricesByFacility ¶ added in v0.12.0
func (s *SpotMarketServiceOp) PricesByFacility() (PriceMap, *Response, error)
PricesByFacility gets current spot market prices by facility. The map is indexed by facility code and then plan name.
price := client.SpotMarket.PricesByFacility()["ny5"]["c3.medium.x86"]
func (*SpotMarketServiceOp) PricesByMetro ¶ added in v0.12.0
func (s *SpotMarketServiceOp) PricesByMetro() (PriceMap, *Response, error)
PricesByMetro gets current spot market prices by metro. The map is indexed by metro code and then plan name.
price := client.SpotMarket.PricesByMetro()["sv"]["c3.medium.x86"]
type Timestamp ¶
Timestamp represents a time that can be unmarshalled from a JSON string formatted as either an RFC3339 or Unix timestamp. All exported methods of time.Time can be called on Timestamp.
func (*Timestamp) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface. Time is expected in RFC3339 or Unix format.
type TwoFactorAuthService ¶ added in v0.2.0
type TwoFactorAuthService interface { EnableApp(string) (*Response, error) DisableApp(string) (*Response, error) EnableSms(string) (*Response, error) DisableSms(string) (*Response, error) ReceiveSms() (*Response, error) SeedApp() (string, *Response, error) }
TwoFactorAuthService interface defines available two factor authentication functions
type TwoFactorAuthServiceOp ¶ added in v0.2.0
type TwoFactorAuthServiceOp struct {
// contains filtered or unexported fields
}
TwoFactorAuthServiceOp implements TwoFactorAuthService
func (*TwoFactorAuthServiceOp) DisableApp ¶ added in v0.2.0
func (s *TwoFactorAuthServiceOp) DisableApp(token string) (resp *Response, err error)
DisableApp function disables two factor auth using
func (*TwoFactorAuthServiceOp) DisableSms ¶ added in v0.2.0
func (s *TwoFactorAuthServiceOp) DisableSms(token string) (resp *Response, err error)
DisableSms function disables two factor auth using
func (*TwoFactorAuthServiceOp) EnableApp ¶ added in v0.2.0
func (s *TwoFactorAuthServiceOp) EnableApp(token string) (resp *Response, err error)
EnableApp function enables two factor auth using authenticatior app
func (*TwoFactorAuthServiceOp) EnableSms ¶ added in v0.2.0
func (s *TwoFactorAuthServiceOp) EnableSms(token string) (resp *Response, err error)
EnableSms function enables two factor auth using sms
func (*TwoFactorAuthServiceOp) ReceiveSms ¶ added in v0.2.0
func (s *TwoFactorAuthServiceOp) ReceiveSms() (resp *Response, err error)
ReceiveSms orders the auth service to issue an SMS token
type UpdateBGPSessionRequest ¶ added in v0.30.0
type UpdateBGPSessionRequest struct {
DefaultRoute bool `json:"default_route"`
}
UpdateBGPSessionRequest struct
type User ¶
type User struct { ID string `json:"id"` ShortID string `json:"short_id"` FirstName string `json:"first_name,omitempty"` LastName string `json:"last_name,omitempty"` FullName string `json:"full_name,omitempty"` Email string `json:"email,omitempty"` SocialAccounts *SocialAccounts `json:"social_accounts,omitempty"` CustomData interface{} `json:"customdata,omitempty"` OptIn *bool `json:"opt_in,omitempty"` OptInUpdatedAt string `json:"opt_in_updated_at,omitempty"` DefaultProjectID *string `json:"default_project_id,omitempty"` NumberOfSSHKeys int `json:"number_of_ssh_keys,omitempty"` Language *string `json:"language,omitempty"` // MailingAddress TODO: format VerificationStage string `json:"verification_stage,omitempty"` MaxProjects *int `json:"max_projects,omitempty"` LastLogin string `json:"last_login_at,omitempty"` // Features effect the behavior of the API and UI Features []string `json:"features,omitempty"` // TwoFactorAuth is the form of two factor auth, "app" or "sms" // Renamed from TwoFactor in packngo v0.16 to match API TwoFactorAuth string `json:"two_factor_auth,omitempty"` DefaultOrganizationID string `json:"default_organization_id,omitempty"` AvatarURL string `json:"avatar_url,omitempty"` AvatarThumbURL string `json:"avatar_thumb_url,omitempty"` Created string `json:"created_at,omitempty"` Updated string `json:"updated_at,omitempty"` TimeZone string `json:"timezone,omitempty"` Emails []Email `json:"emails,omitempty"` PhoneNumber string `json:"phone_number,omitempty"` URL string `json:"href,omitempty"` Restricted bool `json:"restricted,omitempty"` Staff bool `json:"staff,omitempty"` }
User represents an Equinix Metal user
type UserCreateRequest ¶ added in v0.27.0
type UserCreateRequest struct { InvitationID string `json:"invitation_id,omitempty"` Nonce string `json:"nonce,omitempty"` FirstName string `json:"first_name,omitempty"` LastName string `json:"last_name,omitempty"` Password string `json:"password,omitempty"` Customdata *interface{} `json:"customdata,omitempty"` Emails []EmailRequest `json:"emails,omitempty"` }
UserCreateRequest struct for UserService.Create
type UserLite ¶ added in v0.20.0
type UserLite struct { *Href `json:",inline"` ID string `json:"id"` ShortID string `json:"short_id"` FirstName string `json:"first_name,omitempty"` LastName string `json:"last_name,omitempty"` FullName string `json:"full_name,omitempty"` Email string `json:"email,omitempty"` CreatedAt *Timestamp `json:"created_at,omitempty"` UpdatedAt *Timestamp `json:"updated_at,omitempty"` Level string `json:"level,omitempty"` AvatarThumbURL string `json:"avatar_thumb_url,omitempty"` }
UserLite is an abbreviated listing of an Equinix Metal user
type UserService ¶
type UserService interface { Create(*UserCreateRequest) (*User, *Response, error) Current() (*User, *Response, error) List(*ListOptions) ([]User, *Response, error) Get(string, *GetOptions) (*User, *Response, error) Update(*UserUpdateRequest) (*User, *Response, error) }
UserService interface defines available user methods
type UserServiceOp ¶
type UserServiceOp struct {
// contains filtered or unexported fields
}
UserServiceOp implements UserService
func (*UserServiceOp) Create ¶ added in v0.27.0
func (s *UserServiceOp) Create(createRequest *UserCreateRequest) (*User, *Response, error)
Create a User with the given UserCreateRequest. New user VerificationStage will be AccountCreated, unless UserCreateRequest contains an valid InvitationID and Nonce in which case the VerificationStage will be Verified.
func (*UserServiceOp) Current ¶ added in v0.2.0
func (s *UserServiceOp) Current() (*User, *Response, error)
Returns the user object for the currently logged-in user.
func (*UserServiceOp) Get ¶
func (s *UserServiceOp) Get(userID string, opts *GetOptions) (*User, *Response, error)
func (*UserServiceOp) List ¶ added in v0.2.0
func (s *UserServiceOp) List(opts *ListOptions) (users []User, resp *Response, err error)
Get method gets a user by userID
func (*UserServiceOp) Update ¶ added in v0.17.0
func (s *UserServiceOp) Update(updateRequest *UserUpdateRequest) (*User, *Response, error)
Update updates the current user
type UserUpdateRequest ¶ added in v0.17.0
type UserUpdateRequest struct { FirstName *string `json:"first_name,omitempty"` LastName *string `json:"last_name,omitempty"` PhoneNumber *string `json:"phone_number,omitempty"` Timezone *string `json:"timezone,omitempty"` Password *string `json:"password,omitempty"` Avatar *string `json:"avatar,omitempty"` Customdata *interface{} `json:"customdata,omitempty"` }
UserUpdateRequest struct for UserService.Update
type VCCreateRequest ¶ added in v0.6.0
type VCCreateRequest struct { // VirtualNetworkID of the Virtual Network to connect to the Virtual Circuit (required when VRFID is not specified) VirtualNetworkID string `json:"vnid,omitempty"` // VRFID of the VRF to connect to the Virtual Circuit (required when VirtualNetworkID is not specified) VRFID string `json:"vrf_id,omitempty"` // PeerASN (optional, required with VRFID) The BGP ASN of the device the switch will peer with. Can be the used across several VCs, but cannot be the same as the local_asn. PeerASN int `json:"peer_asn,omitempty"` // Subnet (Required for VRF) A subnet from one of the IP blocks associated with the VRF that we // will help create an IP reservation for. Can only be either a /30 or /31. // * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip. // * For a /30 block, it will have four IP // addresses, but the first and last IP addresses are not usable. We will // default to the first usable IP address for the metal_ip. Subnet string `json:"subnet,omitempty"` // MetalIP (optional, required with VRFID) The IP address that’s set as “our” IP that is // configured on the rack_local_vlan SVI. Will default to the first usable // IP in the subnet. MetalIP string `json:"metal_ip,omitempty"` // CustomerIP (optional, requires VRFID) The IP address set as the customer IP which the CSR // switch will peer with. Will default to the other usable IP in the subnet. CustomerIP string `json:"customer_ip,omitempty"` // MD5 (optional, requires VRFID) The password that can be set for the VRF BGP peer MD5 string `json:"md5,omitempty"` NniVLAN int `json:"nni_vlan,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Tags []string `json:"tags,omitempty"` // Speed is a bps representation of the VirtualCircuit throughput. This is informational only, the field is a user-controlled description of the speed. It may be presented as a whole number with a bps, mpbs, or gbps suffix (or the respective initial). Speed string `json:"speed,omitempty"` }
type VCStatus ¶ added in v0.23.0
type VCStatus string
const ( // VC is being create but not ready yet VCStatusPending VCStatus = "pending" // VC is ready with a VLAN VCStatusActive VCStatus = "active" // VC is ready without a VLAN VCStatusWaiting VCStatus = "waiting_on_customer_vlan" // VC is being deleted VCStatusDeleting VCStatus = "deleting" // not sure what the following states mean, or whether they exist // someone from the API side could check VCStatusActivating VCStatus = "activating" VCStatusDeactivating VCStatus = "deactivating" VCStatusActivationFailed VCStatus = "activation_failed" VCStatusDeactivationFailed VCStatus = "dactivation_failed" )
type VCUpdateRequest ¶ added in v0.6.0
type VCUpdateRequest struct { Name *string `json:"name,omitempty"` Tags *[]string `json:"tags,omitempty"` Description *string `json:"description,omitempty"` VirtualNetworkID *string `json:"vnid,omitempty"` // Speed is a bps representation of the VirtualCircuit throughput. This is informational only, the field is a user-controlled description of the speed. It may be presented as a whole number with a bps, mpbs, or gbps suffix (or the respective initial). Speed string `json:"speed,omitempty"` }
type VLANAssignment ¶ added in v0.19.0
type VLANAssignment struct { // ID of the assignment ID string `json:"id,omitempty"` CreatedAt Timestamp `json:"created_at,omitempty"` UpdatedAt Timestamp `json:"updated_at,omitempty"` // Native indicates the VLAN is the native VLAN on the port and packets for this vlan will be untagged Native bool `json:"native,omitempty"` // State of the assignment State VLANAssignmentState `json:"state,omitempty"` // VLAN is the VirtualNetwork.VXLAN of the VLAN the assignment was made to VLAN int `json:"vlan,omitempty"` // Port is a reference to the Port the assignment was made on Port *Port `json:"port,omitempty"` // VirtualNetwork is a reference to the VLAN the assignment was made to VirtualNetwork *VirtualNetwork `json:"virtual_network,omitempty"` }
VLANAssignment struct for VLANAssignmentService.Get represents a port VLAN assignment that has been enacted
type VLANAssignmentBatch ¶ added in v0.19.0
type VLANAssignmentBatch struct { ID string `json:"id,omitempty"` ErrorMessages []string `json:"error_messages,omitempty"` Quantity int `json:"quantity,omitempty"` State VLANAssignmentBatchState `json:"state,omitempty"` CreatedAt Timestamp `json:"created_at,omitempty"` UpdatedAt Timestamp `json:"updated_at,omitempty"` Port *Port `json:"port,omitempty"` Project *Project `json:"project,omitempty"` VLANAssignments []BatchedVLANAssignment `json:"vlan_assignments,omitempty"` }
VLANAssignmentBatch struct for VLANAssignmentBatch
type VLANAssignmentBatchCreateRequest ¶ added in v0.19.0
type VLANAssignmentBatchCreateRequest struct {
VLANAssignments []VLANAssignmentCreateRequest `json:"vlan_assignments"`
}
VLANAssignmentBatchCreateRequest struct for VLANAssignmentBatch Create
type VLANAssignmentBatchState ¶ added in v0.19.0
type VLANAssignmentBatchState string
const ( VLANAssignmentBatchQueued VLANAssignmentBatchState = "queued" VLANAssignmentBatchInProgress VLANAssignmentBatchState = "in_progress" VLANAssignmentBatchCompleted VLANAssignmentBatchState = "completed" VLANAssignmentBatchFailed VLANAssignmentBatchState = "failed" )
type VLANAssignmentCreateRequest ¶ added in v0.19.0
type VLANAssignmentCreateRequest struct { VLAN string `json:"vlan,omitempty"` State VLANAssignmentState `json:"state,omitempty"` Native *bool `json:"native,omitempty"` }
VLANAssignmentCreateRequest struct for VLANAssignmentBatchCreateRequest
type VLANAssignmentService ¶ added in v0.19.0
type VLANAssignmentService interface { Get(string, string, *GetOptions) (*VLANAssignment, *Response, error) List(string, *ListOptions) ([]VLANAssignment, *Response, error) GetBatch(string, string, *GetOptions) (*VLANAssignmentBatch, *Response, error) ListBatch(string, *ListOptions) ([]VLANAssignmentBatch, *Response, error) CreateBatch(string, *VLANAssignmentBatchCreateRequest, *GetOptions) (*VLANAssignmentBatch, *Response, error) }
VLANAssignmentService handles operations on a VLANAssignment
type VLANAssignmentServiceOp ¶ added in v0.19.0
type VLANAssignmentServiceOp struct {
// contains filtered or unexported fields
}
func (*VLANAssignmentServiceOp) CreateBatch ¶ added in v0.19.0
func (s *VLANAssignmentServiceOp) CreateBatch(portID string, request *VLANAssignmentBatchCreateRequest, opts *GetOptions) (*VLANAssignmentBatch, *Response, error)
Create creates VLANAssignmentBatch objects
func (*VLANAssignmentServiceOp) Get ¶ added in v0.19.0
func (s *VLANAssignmentServiceOp) Get(portID, assignmentID string, opts *GetOptions) (*VLANAssignment, *Response, error)
Get returns a VLANAssignment by id
func (*VLANAssignmentServiceOp) GetBatch ¶ added in v0.19.0
func (s *VLANAssignmentServiceOp) GetBatch(portID, batchID string, opts *GetOptions) (*VLANAssignmentBatch, *Response, error)
Get returns a VLANAssignmentBatch by id
func (*VLANAssignmentServiceOp) List ¶ added in v0.19.0
func (s *VLANAssignmentServiceOp) List(portID string, opts *ListOptions) (results []VLANAssignment, resp *Response, err error)
List returns VLANAssignment
func (*VLANAssignmentServiceOp) ListBatch ¶ added in v0.19.0
func (s *VLANAssignmentServiceOp) ListBatch(portID string, opts *ListOptions) (results []VLANAssignmentBatch, resp *Response, err error)
List returns VLANAssignmentBatches
type VLANAssignmentState ¶ added in v0.19.0
type VLANAssignmentState string
const ( VLANAssignmentAssigned VLANAssignmentState = "assigned" VLANAssignmentUnassigned VLANAssignmentState = "unassigned" )
type VRF ¶ added in v0.23.0
type VRF struct { ID string `json:"id"` Name string `json:"name"` Description string `json:"description"` LocalASN int `json:"local_asn,omitempty"` IPRanges []string `json:"ip_ranges,omitempty"` Project *Project `json:"project,omitempty"` Metro *Metro `json:"metro,omitempty"` Href string `json:"href"` CreatedAt string `json:"created_at,omitempty"` UpdatedAt string `json:"updated_at,omitempty"` }
type VRFCreateRequest ¶ added in v0.23.0
type VRFCreateRequest struct { // Metro id or code Metro string `json:"metro"` // Name is the name of the VRF. It must be unique per project. Name string `json:"name"` // Description of the VRF to be created. Description string `json:"description"` // LocalASN is the ASN of the local network. LocalASN int `json:"local_asn,omitempty"` // IPRanges is a list of all IPv4 and IPv6 Ranges that will be available to // BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of // /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must // not overlap other ranges within the VRF. IPRanges []string `json:"ip_ranges,omitempty"` }
type VRFService ¶ added in v0.23.0
type VRFService interface { List(projectID string, opts *ListOptions) ([]VRF, *Response, error) Create(projectID string, input *VRFCreateRequest) (*VRF, *Response, error) Update(vrfID string, update *VRFUpdateRequest) (*VRF, *Response, error) Get(vrfID string, opts *GetOptions) (*VRF, *Response, error) ListIPs(vrfID string, opts *GetOptions) ([]IPAddressReservation, *Response, error) Delete(vrfID string) (*Response, error) }
type VRFServiceOp ¶ added in v0.23.0
type VRFServiceOp struct {
// contains filtered or unexported fields
}
func (*VRFServiceOp) Create ¶ added in v0.23.0
func (s *VRFServiceOp) Create(projectID string, input *VRFCreateRequest) (*VRF, *Response, error)
func (*VRFServiceOp) Delete ¶ added in v0.23.0
func (s *VRFServiceOp) Delete(vrfID string) (*Response, error)
func (*VRFServiceOp) Get ¶ added in v0.23.0
func (s *VRFServiceOp) Get(vrfID string, opts *GetOptions) (*VRF, *Response, error)
func (*VRFServiceOp) List ¶ added in v0.23.0
func (s *VRFServiceOp) List(projectID string, opts *ListOptions) (vrfs []VRF, resp *Response, err error)
func (*VRFServiceOp) ListIPs ¶ added in v0.23.0
func (s *VRFServiceOp) ListIPs(vrfID string, opts *ListOptions) (ips []IPAddressReservation, resp *Response, err error)
func (*VRFServiceOp) Update ¶ added in v0.23.0
func (s *VRFServiceOp) Update(vrfID string, updateRequest *VRFUpdateRequest) (*VRF, *Response, error)
Update updates an existing VRF
type VRFUpdateRequest ¶ added in v0.23.0
type VRFUpdateRequest struct { // Name is the name of the VRF. It must be unique per project. Name *string `json:"name,omitempty"` // Description of the VRF to be created. Description *string `json:"description,omitempty"` // LocalASN is the ASN of the local network. LocalASN *int `json:"local_asn,omitempty"` // IPRanges is a list of all IPv4 and IPv6 Ranges that will be available to // BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of // /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must // not overlap other ranges within the VRF. IPRanges *[]string `json:"ip_ranges,omitempty"` }
type VirtualCircuit ¶ added in v0.6.0
type VirtualCircuit struct { ID string `json:"id"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` // Speed of the VirtualCircuit in bps Speed int `json:"speed,omitempty"` Status VCStatus `json:"status,omitempty"` VNID int `json:"vnid,omitempty"` NniVNID int `json:"nni_vnid,omitempty"` NniVLAN int `json:"nni_vlan,omitempty"` Project *Project `json:"project,omitempty"` Port *ConnectionPort `json:"port,omitempty"` VirtualNetwork *VirtualNetwork `json:"virtual_network,omitempty"` Tags []string `json:"tags,omitempty"` // VRF connected to the Virtual Circuit VRF *VRF `json:"vrf,omitempty"` // PeerASN (optional, required with VRFID) The BGP ASN of the device the switch will peer with. Can be the used across several VCs, but cannot be the same as the local_asn. PeerASN int `json:"peer_asn,omitempty"` // Subnet (returned with VRF) A subnet from one of the IP blocks associated with the VRF that we // will help create an IP reservation for. Can only be either a /30 or /31. // * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip. // * For a /30 block, it will have four IP // addresses, but the first and last IP addresses are not usable. We will // default to the first usable IP address for the metal_ip. Subnet string `json:"subnet,omitempty"` // MetalIP (returned with VRF) The IP address that’s set as “our” IP that is // configured on the rack_local_vlan SVI. Will default to the first usable // IP in the subnet. MetalIP string `json:"metal_ip,omitempty"` // CustomerIP (returned with VRF) The IP address set as the customer IP which the CSR // switch will peer with. Will default to the other usable IP in the subnet. CustomerIP string `json:"customer_ip,omitempty"` // MD5 (returned with VRF) The password that can be set for the VRF BGP peer MD5 string `json:"md5,omitempty"` }
type VirtualCircuitService ¶ added in v0.6.0
type VirtualCircuitService interface { Create(string, string, string, *VCCreateRequest, *GetOptions) (*VirtualCircuit, *Response, error) Get(string, *GetOptions) (*VirtualCircuit, *Response, error) Events(string, *GetOptions) ([]Event, *Response, error) Delete(string) (*Response, error) Update(string, *VCUpdateRequest, *GetOptions) (*VirtualCircuit, *Response, error) }
type VirtualCircuitServiceOp ¶ added in v0.6.0
type VirtualCircuitServiceOp struct {
// contains filtered or unexported fields
}
func (*VirtualCircuitServiceOp) Create ¶ added in v0.6.0
func (s *VirtualCircuitServiceOp) Create(projectID, connID, portID string, request *VCCreateRequest, opts *GetOptions) (*VirtualCircuit, *Response, error)
func (*VirtualCircuitServiceOp) Delete ¶ added in v0.6.0
func (s *VirtualCircuitServiceOp) Delete(id string) (*Response, error)
func (*VirtualCircuitServiceOp) Events ¶ added in v0.6.0
func (s *VirtualCircuitServiceOp) Events(id string, opts *GetOptions) ([]Event, *Response, error)
func (*VirtualCircuitServiceOp) Get ¶ added in v0.6.0
func (s *VirtualCircuitServiceOp) Get(id string, opts *GetOptions) (*VirtualCircuit, *Response, error)
func (*VirtualCircuitServiceOp) Update ¶ added in v0.6.0
func (s *VirtualCircuitServiceOp) Update(vcID string, req *VCUpdateRequest, opts *GetOptions) (*VirtualCircuit, *Response, error)
type VirtualNetwork ¶ added in v0.2.0
type VirtualNetwork struct { ID string `json:"id"` Description string `json:"description,omitempty"` // TODO: field can be null VXLAN int `json:"vxlan,omitempty"` FacilityCode string `json:"facility_code,omitempty"` MetroCode string `json:"metro_code,omitempty"` CreatedAt string `json:"created_at,omitempty"` Href string `json:"href"` Project *Project `json:"assigned_to,omitempty"` Facility *Facility `json:"facility,omitempty"` Metro *Metro `json:"metro,omitempty"` Instances []*Device `json:"instances,omitempty"` }
type VirtualNetworkCreateRequest ¶ added in v0.2.0
type VirtualNetworkCreateRequest struct { // ProjectID of the project where the VLAN will be made available. ProjectID string `json:"project_id"` // Description is a user supplied description of the VLAN. Description string `json:"description"` // Facility in which to create the VLAN. Mutually exclusive with Metro. Facility string `json:"facility,omitempty"` // Metro in which to create the VLAN. Mutually exclusive with Facility. Metro string `json:"metro,omitempty"` // VXLAN is the VLAN ID. VXLAN may be specified when Metro is defined. It is remotely incremented otherwise. Must be unique per Metro. VXLAN int `json:"vxlan,omitempty"` }
type VirtualNetworkListResponse ¶ added in v0.2.0
type VirtualNetworkListResponse struct {
VirtualNetworks []VirtualNetwork `json:"virtual_networks"`
}
type Volume ¶
type Volume struct { Attachments []*VolumeAttachment `json:"attachments,omitempty"` BillingCycle string `json:"billing_cycle,omitempty"` Created string `json:"created_at,omitempty"` Description string `json:"description,omitempty"` Facility *Facility `json:"facility,omitempty"` Href string `json:"href,omitempty"` ID string `json:"id"` Locked bool `json:"locked,omitempty"` Name string `json:"name,omitempty"` Plan *Plan `json:"plan,omitempty"` Project *Project `json:"project,omitempty"` Size int `json:"size,omitempty"` SnapshotPolicies []*SnapshotPolicy `json:"snapshot_policies,omitempty"` State string `json:"state,omitempty"` Updated string `json:"updated_at,omitempty"` }
Volume represents a volume
type VolumeAttachment ¶ added in v0.2.0
type VolumeAttachment struct { Href string `json:"href"` ID string `json:"id"` Volume Volume `json:"volume"` Device Device `json:"device"` }
VolumeAttachment is a type from Equinix Metal API
type VolumeAttachmentService ¶ added in v0.2.0
type VolumeAttachmentService interface { Get(string, *GetOptions) (*VolumeAttachment, *Response, error) Create(string, string) (*VolumeAttachment, *Response, error) Delete(string) (*Response, error) }
VolumeAttachmentService defines attachment methdods
type VolumeAttachmentServiceOp ¶ added in v0.2.0
type VolumeAttachmentServiceOp struct {
// contains filtered or unexported fields
}
VolumeAttachmentServiceOp implements VolumeService
func (*VolumeAttachmentServiceOp) Create ¶ added in v0.2.0
func (v *VolumeAttachmentServiceOp) Create(volumeID, deviceID string) (*VolumeAttachment, *Response, error)
Create Attachment, i.e. attach volume to a device
func (*VolumeAttachmentServiceOp) Delete ¶ added in v0.2.0
func (v *VolumeAttachmentServiceOp) Delete(attachmentID string) (*Response, error)
Delete deletes attachment by id
func (*VolumeAttachmentServiceOp) Get ¶ added in v0.2.0
func (v *VolumeAttachmentServiceOp) Get(attachmentID string, opts *GetOptions) (*VolumeAttachment, *Response, error)
Get gets attachment by id
type VolumeCreateRequest ¶
type VolumeCreateRequest struct { BillingCycle string `json:"billing_cycle"` Description string `json:"description,omitempty"` Locked bool `json:"locked,omitempty"` Size int `json:"size"` PlanID string `json:"plan_id"` FacilityID string `json:"facility_id"` SnapshotPolicies []*SnapshotPolicy `json:"snapshot_policies,omitempty"` }
VolumeCreateRequest type used to create an Equinix Metal volume
func (VolumeCreateRequest) String ¶
func (v VolumeCreateRequest) String() string
type VolumeService ¶
type VolumeService interface { List(string, *ListOptions) ([]Volume, *Response, error) Get(string, *GetOptions) (*Volume, *Response, error) Update(string, *VolumeUpdateRequest) (*Volume, *Response, error) Delete(string) (*Response, error) Create(*VolumeCreateRequest, string) (*Volume, *Response, error) Lock(string) (*Response, error) Unlock(string) (*Response, error) }
VolumeService interface defines available Volume methods
type VolumeServiceOp ¶
type VolumeServiceOp struct {
// contains filtered or unexported fields
}
VolumeServiceOp implements VolumeService
func (*VolumeServiceOp) Create ¶
func (v *VolumeServiceOp) Create(createRequest *VolumeCreateRequest, projectID string) (*Volume, *Response, error)
Create creates a new volume for a project
func (*VolumeServiceOp) Delete ¶
func (v *VolumeServiceOp) Delete(volumeID string) (*Response, error)
Delete deletes a volume
func (*VolumeServiceOp) Get ¶
func (v *VolumeServiceOp) Get(volumeID string, opts *GetOptions) (*Volume, *Response, error)
Get returns a volume by id
func (*VolumeServiceOp) List ¶ added in v0.2.0
func (v *VolumeServiceOp) List(projectID string, opts *ListOptions) (volumes []Volume, resp *Response, err error)
List returns the volumes for a project
func (*VolumeServiceOp) Lock ¶ added in v0.2.0
func (v *VolumeServiceOp) Lock(id string) (*Response, error)
Lock sets a volume to "locked"
func (*VolumeServiceOp) Unlock ¶ added in v0.2.0
func (v *VolumeServiceOp) Unlock(id string) (*Response, error)
Unlock sets a volume to "unlocked"
func (*VolumeServiceOp) Update ¶
func (v *VolumeServiceOp) Update(id string, updateRequest *VolumeUpdateRequest) (*Volume, *Response, error)
Update updates a volume
type VolumeUpdateRequest ¶
type VolumeUpdateRequest struct { Description *string `json:"description,omitempty"` PlanID *string `json:"plan_id,omitempty"` Size *int `json:"size,omitempty"` BillingCycle *string `json:"billing_cycle,omitempty"` }
VolumeUpdateRequest type used to update an Equinix Metal volume
func (VolumeUpdateRequest) String ¶
func (v VolumeUpdateRequest) String() string
Source Files
¶
- api_call_options.go
- apikeys.go
- batches.go
- bgp_configs.go
- bgp_sessions.go
- billing_address.go
- capacities.go
- clientopt.go
- connections.go
- device_ports.go
- devices.go
- doc.go
- email.go
- events.go
- fabric_service_tokens.go
- facilities.go
- hardware_reservations.go
- invitations.go
- ip.go
- members.go
- metal_gateway.go
- metros.go
- notifications.go
- operatingsystems.go
- organizations.go
- packngo.go
- payment_methods.go
- plans.go
- ports.go
- projects.go
- rate.go
- spotmarket.go
- spotmarketrequest.go
- sshkeys.go
- timestamp.go
- two_factor_auth.go
- user.go
- utils.go
- version.go
- virtualcircuits.go
- virtualnetworks.go
- vlan_assignments.go
- volumes.go
- vrf.go
Directories
¶
Path | Synopsis |
---|---|
Package metadata implements the Equinix Metal Metadata API available to Equinix Metal devices at https://metadata.platformequinix.com/metadata.
|
Package metadata implements the Equinix Metal Metadata API available to Equinix Metal devices at https://metadata.platformequinix.com/metadata. |